Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e7f74e92d | ||
|
|
6f208c7301 |
1 changed files with 15 additions and 9 deletions
|
|
@ -347,9 +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 \
|
||||||
|
doesn't need marking done early; only mark done the ones you've actually \
|
||||||
|
reviewed and resolved. A real content change (like a task finishing) resurfaces \
|
||||||
|
the same row on its own regardless of whether you marked it done while it was \
|
||||||
|
still running, so doing that buys nothing and just costs a redundant call later. \
|
||||||
|
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."
|
||||||
|
|
@ -549,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}")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue