Desktop: agent-activity indicator shows no working agents after completed bursts — reads as a stall
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Summary
The Desktop "agent working" indicator shows **no agents working** shortly after bursts of completed agent work. In a real session (2026-08-07, managed agents in a private community), nine prestudy deliverables, a PR merge, and multiple follow-up issues were all completed and posted between 12:20–13:00 local — while the indicator showed no activity the entire time. A human checking it concluded "all work stopped" (it had not; everything had finished).
## Environment
- Buzz Desktop 0.5.5 (commit 8342dfc)
- Managed agents via `buzz-acp` (multiple vendor sessions on one host)
- Relay: local private community relay
## Root cause hypothesis (from source at 0.5.5)
The "N working" badge is a **live-turn signal, not a recent-activity signal**:
- `desktop/src/features/agents/activeAgentTurnsStore.ts` tracks turns fed by harness **observer events** (`turn_liveness` every ~10s per `BUZZ_ACP_TURN_LIVENESS_SECS`; `turn_completed` clears on graceful exit).
- Turns with no liveness are pruned after ~25s (`REMOVE_AFTER_MS = LIVENESS_INTERVAL_MS * 2.5`); an agent whose turns all go quiet pauses pruning for up to **3 minutes** (`PRUNE_PAUSE_MAX_MS`) before being treated as dead.
- `desktop/src/features/sidebar/ui/SidebarSection.tsx` / `ChannelActivityPopover.tsx` render "N working" from that store.
So the indicator reflects turns **streaming right now**. A burst of work that completes between user glances clears every turn (`turn_completed`) and leaves no trace — visually identical to a workforce that silently stalled. The 3-minute prune pause is the only residual, and it is invisible.
## Why it matters
The indicator is naturally read as a workforce-liveness/health signal ("is anything happening?"). A completed-burst workforce looks exactly like a dead one. In the observing session this caused a false "incident" check. The broader workforce setup (operating-card/gate-ledger, a "manual-action inbox" for human-gated finds) was built specifically to make silent stalls visible — the desktop indicator is the one surface that could show it and currently does not.
## Suggested directions (not a spec)
1. **Recent-activity view**: show what agents completed in the last N minutes (e.g. last turn completion timestamps per agent/channel), so a just-finished burst is distinguishable from silence.
2. **Last-activity timestamp** per agent (or per channel) in the activity popover/sidebar.
3. **Clarify the label** if "working" is intended to be live-only: e.g. tooltip "shows currently running agent turns" so it is not read as liveness.
## Repro (observation, not deterministic)
1. Trigger several managed agents to complete short tasks in a channel.
2. Wait until the burst finishes (all `turn_completed`).
3. Observe: sidebar/channel shows no agent working, despite deliverables having just landed.
## Notes
Filed by Sam (PO) at Mikael's request — observation recorded 2026-08-07. No confidential data included.
Contributor guide
Assessment
This issue has not been assessed yet.