[FEATURE] Ephemeral output channel for team lead narration (visible to user, excluded from context)
Problem Statement
In multi-agent team sessions, team leads sometimes narrate agent interactions to help the user follow the discussion flow — summarizing what was forwarded where, synthesizing agent responses, and showing routing decisions. This narration is valuable for user visibility but consumes context window space, creating a tension: more transparency means less working context for the actual task.
Currently, all team lead text output is treated equally — task-relevant reasoning and user-facing narration both occupy the same context. There's no way to distinguish "this is for the user's awareness" from "this is part of my working memory."
Proposed Solution
A lightweight mechanism for team leads (or any agent) to emit output that is:
- Rendered visibly to the user in the conversation
- Excluded from context compression / not retained as working context
This could take several forms:
- A
UserNotetool with content that renders but doesn't persist in context - A
visible_onlyorephemeralflag on text output blocks - A sidebar or annotation layer in the TUI
The key property: the user sees it, but it doesn't cost context window space for the agent.
Alternative Solutions
Current workarounds used in team sessions:
- Team lead manually narrates in plain text (works but consumes context)
- Using SendMessage
summaryfield for compact previews (limited to 5-10 words) - Task status
activeFormfor spinner text (not designed for substantive content) - Writing narration to external files (loses real-time visibility)
None of these cleanly separate "user-facing narration" from "agent working context."
Use Case Example
- User starts a 3-agent team session for a complex task
- Team lead receives a message from agent A with analysis results
- Team lead wants to tell the user: "← agent-A: recommends approach X for reasons Y, Z. Forwarding to agent-B for review."
- With this feature, that narration line renders in the conversation but doesn't consume context
- Over a 30+ message session, this saves significant context space while keeping the user fully informed of the discussion flow
Additional Context
This is especially relevant as team sessions grow longer. The auto-compaction system may discard narration lines that the user found useful, or retain them at the cost of more important working context. An explicit ephemeral channel would let the system make better decisions about what to keep.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗