broker: sqlite-backed (survives hive-c0re restart)

This commit is contained in:
müde 2026-05-14 22:17:16 +02:00
parent af464e27f4
commit d220720f6a
6 changed files with 90 additions and 27 deletions

View file

@ -83,19 +83,26 @@ async fn serve(stream: UnixStream, agent: String, broker: Arc<Broker>) -> Result
fn dispatch(req: &AgentRequest, agent: &str, broker: &Broker) -> AgentResponse {
match req {
AgentRequest::Send { to, body } => {
broker.send(Message {
match broker.send(Message {
from: agent.to_owned(),
to: to.clone(),
body: body.clone(),
});
AgentResponse::Ok
}) {
Ok(()) => AgentResponse::Ok,
Err(e) => AgentResponse::Err {
message: format!("{e:#}"),
},
}
}
AgentRequest::Recv => match broker.recv(agent) {
Some(msg) => AgentResponse::Message {
Ok(Some(msg)) => AgentResponse::Message {
from: msg.from,
body: msg.body,
},
None => AgentResponse::Empty,
Ok(None) => AgentResponse::Empty,
Err(e) => AgentResponse::Err {
message: format!("{e:#}"),
},
},
}
}