From 633e49bfc876670f65cc4f7b489c28d6541a09f9 Mon Sep 17 00:00:00 2001 From: Duncan Date: Wed, 30 Sep 2026 13:09:49 -0400 Subject: [PATCH 1/2] fix(agents): stop built-in prompts from teaching sleep polling An @mention wakes an agent only after its running tool call returns, so sleep/watch loops on CI or teammates delay every reply that arrives meanwhile. The base prompt and bundled CLI skill taught that loop; replace it with a hand-off-and-end-turn rule and a one-shot --since catch-up read. Co-authored-by: Will Pfleger Signed-off-by: Will Pfleger --- crates/buzz-acp/src/base_prompt.md | 4 ++-- desktop/src-tauri/src/managed_agents/nest_skill.md | 12 +++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/crates/buzz-acp/src/base_prompt.md b/crates/buzz-acp/src/base_prompt.md index 26aada32db3..1fb65206115 100644 --- a/crates/buzz-acp/src/base_prompt.md +++ b/crates/buzz-acp/src/base_prompt.md @@ -73,9 +73,9 @@ All replies and delegations — including task assignments to other agents — g - **Otherwise, publishing is optional and silence is usually correct.** When a message leaves you nothing new to contribute, end the turn without publishing. That is a success, not a failure. - **After a context compaction or session restart, resume silently** — rebuild state from your todos, memory, and the thread, and never post a message announcing the compaction, summarizing what was lost, or asking how to proceed. - **Never publish a bare acknowledgement.** A message whose only content is confirming, accepting, agreeing, aligning, signing off, or announcing your own silence adds nothing — and it re-triggers everyone you mention. Prohibited: "Got it", "Confirmed", "Acknowledged", "Clear and noted", "Aligned", "Standing by", "Parked", "I won't reply again", and any variation. If your draft contains nothing beyond acknowledgement, send nothing. If you are tempted to announce that you are done replying, that itself is the message not to send. -- After publishing a pickup message, keep working until you publish the verified result, blocker, or key decision or information that needs to be surfaced. +- After publishing a pickup message, keep working until you publish the result, handoff, blocker, or key decision or information that needs to be surfaced. - Use GitHub-flavored Markdown. Fenced code blocks with language tags for syntax highlighting. -- No push notifications — poll with `buzz messages get --channel --since `. +- An @mention wakes you, but not while a tool call is running. Never use a tool call (`sleep`, `--watch`) to wait on CI, teammates, or other external events; hand off and end your turn. To catch up once, use `buzz messages get --channel --since `. - Address people using the name shown in their own message header. Preserve it exactly; do not infer, expand, or look up a surname merely to address them. - Use top-level channel-visible posts for milestones teammates must act on: picked up, blocked + need input, PR up, done. - Praise in public; correct in the work, not the person. diff --git a/desktop/src-tauri/src/managed_agents/nest_skill.md b/desktop/src-tauri/src/managed_agents/nest_skill.md index 01f76229158..05e02a4f2da 100644 --- a/desktop/src-tauri/src/managed_agents/nest_skill.md +++ b/desktop/src-tauri/src/managed_agents/nest_skill.md @@ -163,13 +163,11 @@ Exit code 5 if the value changed since the hash was read (another agent wrote fi Flags: `--dry-run` to preview without writing, `--no-base-hash` to skip conflict detection (unsafe), `--allow-empty` to permit empty result after patch. -## Polling Pattern +## Catching Up -The relay has no push or webhook support. Poll with a `--since` cursor: +An @mention wakes you, so do not loop or sleep waiting for messages. To read what arrived since you last looked, do one read with a `--since` cursor: -1. `buzz messages get --channel --limit 50` — note the maximum `created_at` from results -2. Sleep 10-30 seconds -3. `buzz messages get --channel --since --limit 50` -4. Repeat, advancing `--since` each iteration +1. `buzz messages get --channel --since --limit 50` +2. Keep the maximum `created_at` from the results as the next cursor -Minimum interval: 5 seconds (relay rate limiting). Use 10s for low-latency, 30s for background monitoring. `feed get` always returns newest-first regardless of `--since`. +`feed get` always returns newest-first regardless of `--since`. From f6a4f364a72aef4dd6f22c7033857c657f15aaf6 Mon Sep 17 00:00:00 2001 From: Duncan Date: Wed, 30 Sep 2026 13:47:50 -0400 Subject: [PATCH 2/2] fix(desktop): bump nest skill version to refresh installed skill Co-authored-by: Will Pfleger Signed-off-by: Will Pfleger --- desktop/src-tauri/src/managed_agents/nest.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src-tauri/src/managed_agents/nest.rs b/desktop/src-tauri/src/managed_agents/nest.rs index adbc7794bb7..9cd1f4dcbd0 100644 --- a/desktop/src-tauri/src/managed_agents/nest.rs +++ b/desktop/src-tauri/src/managed_agents/nest.rs @@ -52,7 +52,7 @@ const NEST_AGENTS_VERSION: u32 = 5; /// Template content version for SKILL.md. /// Bump this when changing `nest_skill.md` to trigger refresh on existing installs. -const NEST_SKILL_VERSION: u32 = 5; +const NEST_SKILL_VERSION: u32 = 6; const BEGIN_MARKER: &str = "";