diff --git a/hive-ag3nt/src/mcp.rs b/hive-ag3nt/src/mcp.rs index ace175aa..774fd6fd 100644 --- a/hive-ag3nt/src/mcp.rs +++ b/hive-ag3nt/src/mcp.rs @@ -129,22 +129,21 @@ pub fn format_recv(resp: Result) -> String { } /// Format helper for `get_loose_ends`: renders a short bulleted list -/// of pending approvals + questions + reminders. Empty list collapses -/// to a clear marker so claude doesn't go hunting for a payload that -/// isn't there. +/// of pending approvals + questions. Empty list collapses to a clear +/// marker so claude doesn't go hunting for a payload that isn't there. pub fn format_loose_ends(resp: Result) -> String { use std::fmt::Write as _; - let loose_ends = match resp { + let threads = match resp { Ok(SocketReply::LooseEnds(t)) => t, Ok(SocketReply::Err(m)) => return format!("get_loose_ends failed: {m}"), Ok(other) => return format!("get_loose_ends unexpected response: {other:?}"), Err(e) => return format!("get_loose_ends transport error: {e:#}"), }; - if loose_ends.is_empty() { - return "(no loose ends)".to_owned(); + if threads.is_empty() { + return "(no open threads)".to_owned(); } - let mut out = format!("{} loose end(s):\n", loose_ends.len()); - for t in &loose_ends { + let mut out = format!("{} open thread(s):\n", threads.len()); + for t in &threads { match t { hive_sh4re::LooseEnd::Approval { id, @@ -206,17 +205,6 @@ fn parse_loose_end_kind(raw: &str) -> Result &'static str { - match kind { - hive_sh4re::CancelLooseEndKind::Question => "question", - hive_sh4re::CancelLooseEndKind::Reminder => "reminder", - } -} - /// Format helper for `whoami`: renders the identity block as a short /// human-readable string. Skips fields that are `None` so the output /// doesn't carry dead placeholders. @@ -503,13 +491,13 @@ impl AgentServer { )] async fn cancel_loose_end(&self, Parameters(args): Parameters) -> String { let log = format!("{args:?}"); + let kind_label = args.kind.clone(); let id = args.id; run_tool_envelope("cancel_loose_end", log, async move { let kind = match parse_loose_end_kind(&args.kind) { Ok(k) => k, Err(e) => return e, }; - let kind_label = loose_end_kind_label(kind); let (resp, retries) = self .dispatch(hive_sh4re::AgentRequest::CancelLooseEnd { kind, id }) .await; @@ -1043,13 +1031,13 @@ impl ManagerServer { )] async fn cancel_loose_end(&self, Parameters(args): Parameters) -> String { let log = format!("{args:?}"); + let kind_label = args.kind.clone(); let id = args.id; run_tool_envelope("cancel_loose_end", log, async move { let kind = match parse_loose_end_kind(&args.kind) { Ok(k) => k, Err(e) => return e, }; - let kind_label = loose_end_kind_label(kind); let (resp, retries) = self .dispatch(hive_sh4re::ManagerRequest::CancelLooseEnd { kind, id }) .await;