type Message.from as Ident

This commit is contained in:
damocles 2026-07-22 20:12:50 +02:00 committed by mara
commit 4989bcdb5e
6 changed files with 43 additions and 24 deletions

View file

@ -1025,7 +1025,7 @@ impl Coordinator {
// doesn't bubble out and unwind the topology write.
if let Some(op) = old_parent.as_deref() {
let _ = self.broker.send(&hive_sh4re::Message {
from: hive_sh4re::SYSTEM_SENDER.to_owned(),
from: hive_sh4re::trusted_sender(hive_sh4re::SYSTEM_SENDER),
to: op.to_owned(),
body: format!("{child} moved out of your subtree to {new_label}"),
in_reply_to: None,
@ -1033,7 +1033,7 @@ impl Coordinator {
}
if let Some(np) = new_parent {
let _ = self.broker.send(&hive_sh4re::Message {
from: hive_sh4re::SYSTEM_SENDER.to_owned(),
from: hive_sh4re::trusted_sender(hive_sh4re::SYSTEM_SENDER),
to: np.to_owned(),
body: format!(
"{child} just moved into your subtree (was previously under {old_label})"
@ -1087,7 +1087,7 @@ impl Coordinator {
let new_label = new_parent.unwrap_or("<root>");
if let Some(op) = old_parent.as_deref() {
let _ = self.broker.send(&hive_sh4re::Message {
from: hive_sh4re::SYSTEM_SENDER.to_owned(),
from: hive_sh4re::trusted_sender(hive_sh4re::SYSTEM_SENDER),
to: op.to_owned(),
body: format!("{child} moved out of your subtree to {new_label}"),
in_reply_to: None,
@ -1095,7 +1095,7 @@ impl Coordinator {
}
if let Some(np) = new_parent {
let _ = self.broker.send(&hive_sh4re::Message {
from: hive_sh4re::SYSTEM_SENDER.to_owned(),
from: hive_sh4re::trusted_sender(hive_sh4re::SYSTEM_SENDER),
to: np.to_owned(),
body: format!(
"{child} just moved into your subtree (was previously under {old_label})"
@ -1349,7 +1349,7 @@ impl Coordinator {
still in your window."
);
if let Err(e) = self.broker.send(&hive_sh4re::Message {
from: hive_sh4re::SYSTEM_SENDER.to_owned(),
from: hive_sh4re::trusted_sender(hive_sh4re::SYSTEM_SENDER),
to: name.to_owned(),
body,
in_reply_to: None,
@ -1402,7 +1402,7 @@ impl Coordinator {
}
};
if let Err(e) = self.broker.send(&hive_sh4re::Message {
from: from.to_owned(),
from: hive_sh4re::trusted_sender(from),
to: agent.to_owned(),
body,
in_reply_to: None,
@ -1424,7 +1424,7 @@ impl Coordinator {
continue;
}
if let Err(e) = self.broker.send(&hive_sh4re::Message {
from: from.to_owned(),
from: hive_sh4re::trusted_sender(from),
to: agent_name.clone(),
body: broadcast_body.clone(),
in_reply_to: None,

View file

@ -164,7 +164,7 @@ pub(super) async fn post_op_send(
));
}
} else if let Err(e) = state.coord.broker.send(&hive_sh4re::Message {
from: hive_sh4re::OPERATOR_RECIPIENT.to_owned(),
from: hive_sh4re::trusted_sender(hive_sh4re::OPERATOR_RECIPIENT),
to: to.clone(),
body,
in_reply_to: None,

View file

@ -321,7 +321,7 @@ async fn handle_recv(
messages: deliveries
.into_iter()
.map(|d| hive_sh4re::DeliveredMessage {
from: d.message.from,
from: d.message.from.to_string(),
body: d.message.body,
id: d.id,
redelivered: d.redelivered,
@ -347,7 +347,7 @@ fn handle_wake(
body: &str,
) -> hive_core_agent_sock::Response {
match coord.broker.send(&Message {
from: from.to_owned(),
from: hive_sh4re::trusted_sender(from),
to: agent.to_owned(),
body: body.to_owned(),
in_reply_to: None,
@ -490,7 +490,7 @@ fn handle_operator_msg(
body: &str,
) -> hive_core_agent_sock::Response {
match coord.broker.send(&Message {
from: hive_sh4re::OPERATOR_RECIPIENT.to_owned(),
from: hive_sh4re::trusted_sender(hive_sh4re::OPERATOR_RECIPIENT),
to: agent.to_owned(),
body: body.to_owned(),
in_reply_to: None,
@ -955,7 +955,7 @@ pub(crate) fn fan_out_send(
continue;
}
if let Err(e) = coord.broker.send(&Message {
from: from.to_owned(),
from: hive_sh4re::trusted_sender(from),
to: target.clone(),
body: body.to_owned(),
in_reply_to,
@ -1040,7 +1040,7 @@ pub(crate) fn handle_send(
}
}
match coord.broker.send(&Message {
from: agent.to_owned(),
from: hive_sh4re::trusted_sender(agent),
to: resolved,
body: body.to_owned(),
in_reply_to,

View file

@ -277,12 +277,12 @@ impl Broker {
// Operator messages get elevated priority so they surface before
// queued wakes (bash completions, forge events, etc.) when the
// harness pops the next turn driver. All other senders stay at 0.
let priority: i64 = i64::from(message.from == "operator");
let priority: i64 = i64::from(message.from.as_str() == hive_sh4re::OPERATOR_RECIPIENT);
conn.execute(
"INSERT INTO messages (sender, recipient, body, sent_at, in_reply_to, priority) \
VALUES (?1, ?2, ?3, ?4, ?5, ?6)",
params![
message.from,
message.from.as_str(),
message.to,
message.body,
now,
@ -294,7 +294,7 @@ impl Broker {
drop(conn);
let _ = self.events.send(MessageEvent::Sent {
id: row_id,
from: message.from.clone(),
from: message.from.to_string(),
to: message.to.clone(),
body: message.body.clone(),
at: now,
@ -664,7 +664,7 @@ impl Broker {
id,
redelivered,
message: Message {
from,
from: hive_sh4re::trusted_sender(&from),
to,
body,
in_reply_to,
@ -678,7 +678,7 @@ impl Broker {
for d in &deliveries {
let _ = self.events.send(MessageEvent::Delivered {
id: d.id,
from: d.message.from.clone(),
from: d.message.from.to_string(),
to: d.message.to.clone(),
body: d.message.body.clone(),
at: now,
@ -1187,7 +1187,7 @@ mod tests {
fn msg(from: &str, to: &str, body: &str) -> Message {
Message {
from: from.to_owned(),
from: hive_types::Ident::parse(from).expect("test sender must be a valid ident"),
to: to.to_owned(),
body: body.to_owned(),
in_reply_to: None,
@ -1475,7 +1475,7 @@ mod tests {
assert_eq!(batch.len(), 3);
// Operator message surfaces first despite arriving last.
assert_eq!(batch[0].message.body, "stop what you're doing");
assert_eq!(batch[0].message.from, "operator");
assert_eq!(batch[0].message.from.as_str(), "operator");
// Remaining two in FIFO order.
assert_eq!(batch[1].message.body, "task done");
assert_eq!(batch[2].message.body, "new pr");

View file

@ -129,7 +129,7 @@ fn fire_schedule(coord: &Arc<Coordinator>, schedule: &Schedule, now: i64) {
Ok(false) => {}
}
let msg = Message {
from: "scheduled".to_owned(),
from: hive_sh4re::trusted_sender("scheduled"),
to: target.clone(),
body: schedule.body.clone(),
in_reply_to: None,
@ -227,7 +227,7 @@ fn notify_operator_missing_target(coord: &Coordinator, schedule: &Schedule, targ
body = schedule.body
);
let msg = Message {
from: "scheduled".to_owned(),
from: hive_sh4re::trusted_sender("scheduled"),
to: hive_sh4re::OPERATOR_RECIPIENT.to_owned(),
body,
in_reply_to: None,
@ -327,7 +327,7 @@ pub async fn fire_now(
continue;
}
let msg = Message {
from: "scheduled".to_owned(),
from: hive_sh4re::trusted_sender("scheduled"),
to: target.clone(),
body: schedule.body.clone(),
in_reply_to: None,