reword ack->mark-done terminology on mark_todos_done and get_loose_ends

This commit is contained in:
damocles 2026-08-16 17:47:25 +02:00 committed by mara
commit 5e7f74e92d

View file

@ -347,14 +347,15 @@ impl AgentServer {
at turn start to remember what you owe / what's owed to you without scrolling \ 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 \ 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. Each `question` or `reminder` row can be cancelled by \
passing its id + kind to `cancel_loose_end`. Empty result is reported clearly. Todos \ passing its id + kind to `cancel_loose_end`. Empty result is reported clearly.\n\
cap at 40 rows; a trailer line says how many more are pending clear the shown ones \ Todos are a to-do list, not an inbox to empty on sight a row that's still \
with `mark_todos_done`, then call again for the rest.\n\ genuinely in flight (a running bash task, say) is expected to sit there and \
A row that is still genuinely in flight (a running bash task, say) doesn't need an \ doesn't need marking done early; only mark done the ones you've actually \
early ack only mark done the ones you've actually resolved. A real content change \ reviewed and resolved. A real content change (like a task finishing) resurfaces \
(like a task finishing) un-acks and resurfaces the same row on its own, so acking it \ the same row on its own regardless of whether you marked it done while it was \
while it's still running buys nothing and just costs you a second, redundant call \ still running, so doing that buys nothing and just costs a redundant call later. \
later.\n\ Todos cap at 40 rows; a trailer line says how many more are pending mark the \
reviewed ones done with `mark_todos_done`, then call again for the rest.\n\
Pass `agent: \"<name>\"` to inspect a specific peer agent's threads. Direct \ Pass `agent: \"<name>\"` to inspect a specific peer agent's threads. Direct \
child agents are always accessible. For non-children, the `query_agent_state` \ child agents are always accessible. For non-children, the `query_agent_state` \
capability is required without it the request is rejected with an error." capability is required without it the request is rejected with an error."
@ -554,19 +555,19 @@ impl AgentServer {
} }
#[tool( #[tool(
description = "Bulk-clear specific todos by id in one call, instead of \ description = "Bulk-mark specific todos done by id in one call, instead of \
`cancel_loose_end`ing each one. List-based, not range-based no `ack_until`-style \ `cancel_loose_end`ing each one. List-based, not range-based no `ack_until`-style \
'clear below id N' for todos, since a blind range-clear risks acking something you \ 'clear below id N' for todos, since a blind range-clear risks marking something \
never saw. Pass the ids you've actually reviewed (typically what `get_loose_ends` \ done that you never actually reviewed. Pass the ids you've actually reviewed \
just showed); unknown/already-acked ids are silently skipped. Returns how many were \ (typically what `get_loose_ends` just showed); unknown/already-done ids are \
newly acked." silently skipped. Returns how many were newly marked done."
)] )]
async fn mark_todos_done(&self, Parameters(args): Parameters<MarkTodosDoneArgs>) -> String { async fn mark_todos_done(&self, Parameters(args): Parameters<MarkTodosDoneArgs>) -> String {
let log = format!("{args:?}"); let log = format!("{args:?}");
run_tool_envelope("mark_todos_done", log, async move { run_tool_envelope("mark_todos_done", log, async move {
match mark_local_todos_done(args.ids).await { match mark_local_todos_done(args.ids).await {
Some(hive_agent_sock::Response::Acked { count }) => { Some(hive_agent_sock::Response::Acked { count }) => {
format!("acked {count} todo(s)") format!("marked {count} todo(s) done")
} }
Some(hive_agent_sock::Response::Err { message }) => { Some(hive_agent_sock::Response::Err { message }) => {
format!("mark_todos_done failed: {message}") format!("mark_todos_done failed: {message}")