From a295fba09c89dab573fdd29a750a6a1bd3913ab3 Mon Sep 17 00:00:00 2001 From: damocles Date: Sat, 29 Aug 2026 21:38:52 +0200 Subject: [PATCH] hive-agent-mcp: drop stale ask/answer language from tool descriptions --- hive-agent-mcp/src/mcp/mod.rs | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/hive-agent-mcp/src/mcp/mod.rs b/hive-agent-mcp/src/mcp/mod.rs index c00e58a3..a82c6cf6 100644 --- a/hive-agent-mcp/src/mcp/mod.rs +++ b/hive-agent-mcp/src/mcp/mod.rs @@ -233,15 +233,14 @@ impl AgentServer { } #[tool( - description = "List loose ends pending against this agent: unanswered questions \ - where you are the asker (waiting on someone) or the target (someone's waiting on \ - you), pending reminders you scheduled, plus — for the manager only — pending \ + description = "List loose ends pending against this agent: pending reminders \ + you scheduled, plus — for the manager only — pending \ approvals you submitted that the operator hasn't acted on yet (agents with the \ `approvals` tool group also see their own pending approvals). Also lists active \ local tasks published by external MCP daemons (e.g. running bash tasks). Cheap sweep, no args. Useful \ at turn start to remember what you owe / what's owed to you without scrolling \ inbox history. Output is a short bulleted list with ids, ages in seconds, and \ - the relevant context. Each `question` or `reminder` row can be cancelled by \ + the relevant context. A `reminder` row can be cancelled by \ passing its id + kind to `cancel_loose_end`. Empty result is reported clearly.\n\ Todos are a to-do list, not an inbox to empty on sight — a row that's still \ genuinely in flight (a running bash task, say) is expected to sit there and \ @@ -355,20 +354,16 @@ impl AgentServer { .await } - #[tool( - description = "Cancel an open thread you own — a `question` you asked (the \ - asker gets `[cancelled by ]` as the answer and unblocks) or a `reminder` \ - you scheduled (hard-deleted before it fires). `kind` is `\"question\"` or \ - `\"reminder\"`; `id` is the row id from the matching `get_loose_ends` entry \ - or the `question_queued` reply you got when you submitted. Auth: you can only \ - cancel rows where you're the asker / owner. Returns `ok` or an error string.\n\ + #[tool(description = "Cancel an open thread you own — a `reminder` \ + you scheduled (hard-deleted before it fires). `kind` is `\"reminder\"`; \ + `id` is the row id from the matching `get_loose_ends` entry. Auth: you can only \ + cancel rows where you're the owner. Returns `ok` or an error string.\n\ `kind` may also be `\"approval\"` to withdraw a pending approval you submitted \ (before the operator acts on it) — root agent (`ruth`) only; the server rejects \ `approval` kind for all other callers.\n\ `kind` may also be `\"todo\"` to clear one of your own loose-ends-v2 todos (the id \ from a `get_loose_ends` `todo #N` line) — dials the in-agent socket directly, safe \ - to call repeatedly." - )] + to call repeatedly.")] async fn cancel_loose_end(&self, Parameters(args): Parameters) -> String { let log = format!("{args:?}"); let id = args.id;