feat(#1106): transient wake for bash tasks — bypass broker sqlite
This commit is contained in:
parent
b9b58554e8
commit
a1c6736ba5
8 changed files with 102 additions and 19 deletions
|
|
@ -174,17 +174,31 @@ pub(crate) async fn dispatch_shared(
|
|||
message: format!("{e:#}"),
|
||||
},
|
||||
},
|
||||
hive_sh4re::Request::Wake { from, body } => match broker.send(&Message {
|
||||
from: from.clone(),
|
||||
to: agent.to_owned(),
|
||||
body: body.clone(),
|
||||
in_reply_to: None,
|
||||
}) {
|
||||
Ok(()) => hive_sh4re::Response::Ok,
|
||||
Err(e) => hive_sh4re::Response::Err {
|
||||
message: format!("{e:#}"),
|
||||
},
|
||||
},
|
||||
hive_sh4re::Request::Wake {
|
||||
from,
|
||||
body,
|
||||
transient,
|
||||
} => {
|
||||
if *transient {
|
||||
// Transient wakes bypass sqlite — they fire the broadcast
|
||||
// channel only. No redelivery on restart; no message history
|
||||
// entry. Used by bash task completions.
|
||||
broker.ping(agent, from, body);
|
||||
hive_sh4re::Response::Ok
|
||||
} else {
|
||||
match broker.send(&Message {
|
||||
from: from.clone(),
|
||||
to: agent.to_owned(),
|
||||
body: body.clone(),
|
||||
in_reply_to: None,
|
||||
}) {
|
||||
Ok(()) => hive_sh4re::Response::Ok,
|
||||
Err(e) => hive_sh4re::Response::Err {
|
||||
message: format!("{e:#}"),
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
hive_sh4re::Request::Recent { limit } => match broker.recent_for(agent, *limit) {
|
||||
Ok(rows) => hive_sh4re::Response::Recent { rows },
|
||||
Err(e) => hive_sh4re::Response::Err {
|
||||
|
|
|
|||
Loading…
Reference in a new issue