Task-notifications from stopped agent-team runs leak into subsequent sessions, polluting coordinator attention and collapsing active-field-manager coordination into parallel monologues
Environment
- Claude Code, Opus 4.6 (1M context),
alwaysThinkingEnabled: true CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1- Parent (team lead) orchestrating four named subagents in a real team provisioned via
TeamCreate - Prior stopped session from same conversation: four pre-team
general-purposeagents spawned withAgenttool +name=, later resumed viaSendMessage, left running when user invokedstop
What happened
Sequence (compressed):
- Session-1 run: four named subagents spawned (no
team_name, pre-TeamCreate). Tool-coordination failed (separate issue #48160). Parent resumed them viaSendMessage. Some completed; some were mid-turn when user invokedstop(twice). - User directed: "Do not consolidate or salvage output from the failed run. Start clean."
- Session-2 run:
TeamCreateprovisioneddelivery-logs-fixplan. Four new team-member subagents spawned fresh. Round-trip verified with a probe. - For ~20 minutes after the user's
stop, zombie<task-notification>completion events from the session-1 agents continued firing into the coordinator's conversation (task-idsac24a41f79b70f22f,ac9fd63bea4fdd8bf,a4c588f4d6cc6565b,aa9257b1b3651f059), interleaved with legitimate<teammate-message>turns from the new team. - Zombies cross-messaged each other (they had received earlier
SendMessagerelays from the parent and were replying to each other's "intended-to-send" messages). Each fresh zombie completion re-triggered another zombie in a feedback loop. - The parent (coordinator) fell into a terse "zombie, discarding" acknowledgment pattern. That pattern persisted into the window when real team output arrived. Coordinator sent zero outbound
SendMessagecalls to the real team after spawning them. - Real team's four agents each auto-idled after producing their plan (normal per-turn idle behavior). Each emitted open-questions-for-team-lead asks. Coordinator answered none. Team sat idle.
- Net result: four independent monologues — the exact failure mode the project's codified active-field-manager protocol (
.claude/workflow.md:19-48) is designed to prevent. User returned to find nothing progressed.
Impact
- Team coordination completely broken despite a correctly-provisioned team. Zero real-time peer cross-examination. Zero follow-up on open questions.
- User's explicit requirement ("I kicked this off so it would be done when I was back") was missed.
- User had to stop a second time and manually diagnose the failure mode.
- Cost: ~20 minutes of wall-clock + compute burned on zombie cross-chatter; full team planning run now requires re-kick with coordinator explicitly disciplined.
Expected
(a) After user invokes stop, task-notifications from in-flight agents of that stopped run should NOT continue to arrive in any subsequent session turn. Either suppress them, or clearly flag them (<task-notification stopped="true"> or equivalent) so the coordinator can filter programmatically rather than by human pattern-match.
(b) Zombie agents should not be able to self-resume via cross-messaging after their origin session was stopped. Once the session that owns them is stopped, their mailbox should be drained and further auto-resumption blocked.
(c) When real team agents have idle state + unanswered open-questions-for-coordinator, the coordinator should get a first-class surfacing signal distinct from routine idle notifications — e.g., a single aggregated "team awaiting input" summary rather than N independent idle events that read as noise.
Actual
- Zombies fired for minutes after
stop, intermixed with real team output, same<task-notification>channel. - No visual/structural distinction between zombie completions, real team idle notifications, real team peer-DM summaries, and real team explicit open-questions-for-coordinator asks. All rendered as conversation turns.
- Coordinator's attention was trained by zombie volume into passive-ack mode, then failed to switch back to active-driver mode when real output arrived.
Workaround
Coordinator must manually recognize the zombie class, manually filter inbox mentally, and manually discipline against terse-ack loops. In practice this fails — cognitive load from zombie noise is exactly what kills active-driver mode. A project-level "active field manager" protocol alone isn't enough when the runtime actively undermines it.
Ask
- Primary: suppress or flag zombie task-notifications from stopped sessions. This is the load-bearing bug.
- Secondary: surface open-questions-for-coordinator as a first-class event distinct from idle notifications and peer-DM summaries.
- Tertiary: once the team detects ≥N agents idle with ≥M unanswered coordinator-asks for ≥T seconds, emit a coordinator-nudge event so the harness can push the field-manager back into active mode instead of silently sitting.
Evidence references
.claude/workflow.md:19-48— project-level active-field-manager protocol; documents the exact failure mode this bug manifests.- Transcript in affected session shows ~5 zombie
<task-notification>turns interleaved with 4+ real<teammate-message>idle-notification turns, coordinator emitting only one-line acks across the entire window, zeroSendMessageto the team.
Related
- Issue #48160 (same conversation, upstream failure: subagents missing
SendMessageat launch withoutTeamCreate+team_name). This second issue surfaced because the team was recreated properly; the stopped-run agents from the first attempt then continued firing and derailed the second attempt.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗