Skip to content

docs(spike): agent-activity legibility design (lane N) — processing indicator, subagent tabs, unified identity#43

Closed
miguelrisero wants to merge 1 commit into
mainfrom
chief/bc-agent-activity-design
Closed

docs(spike): agent-activity legibility design (lane N) — processing indicator, subagent tabs, unified identity#43
miguelrisero wants to merge 1 commit into
mainfrom
chief/bc-agent-activity-design

Conversation

@miguelrisero

Copy link
Copy Markdown
Owner

Design-only spike — no implementation. One markdown doc. Owner approves before any code lane spawns (same pattern as #38).

docs/superpowers/specs/2026-07-23-agent-activity-legibility-design.md

What this is

The web UI does not make agent activity legible. The owner named three things; this doc frames them as one theme and specs the whole model, grounded in code (file:line at origin/main @ 0fbc0965), ending in owner-facing OPEN QUESTIONS. It expands the seamless-sync doc's (#38) deferred Phase 3 — presence & polish and the subagent seam it explicitly excluded in v1 (agent-* sidechains).

Three facets

  1. Processing indicator ("in UIX mode you can't tell when the agent is processing"). Investigation verdict: an indicator exists but is invisible in CLI mode — the live is_running signal renders as a static "CLI session active" badge, not motion. The coarse fix runs end-to-end already, so it was pulled into its own fast lane Lane O (chief/bc-cli-working-indicator). This doc does not re-spec Lane O — it owns the finer remainder: patch-cadence "streaming", per-subagent activity, and how the indicator composes with the tabs (does a tab pulse while its subagent works?).
  2. Realtime subagent tabs — ACTIVE subagents as tabs, INACTIVE behind a drawer (owner's explicit nuance). Placed in a session-scoped strip inside the conversation/CLI pane, never the global nav, and bounded so it can't blow up the layout.
  3. Unified main-vs-subagent identity — a derived AgentRef generalizing the three disconnected axes today (subagent_type, executor AgentIcon, NativeFeedOrigin). Generalizes the existing quarantine panel; does not re-spec it (lanes L/M).

Crowded-UI constraint (first-class)

Honors PR #42 (8f153c7c): the mobile nav is already at its 7-tab ceiling with active-only labels (Navbar.tsx:289) and no overflow menu exists. Subagent tabs stay off the global nav, are bounded by MAX_ACTIVE_TABS + one overflow affordance, and degrade to a single summary line + the existing inline ChatSubagentEntry rows on mobile (no horizontal tab scroll introduced).

Not in this PR

No feature code, no migrations, no type changes — just the spec. Phasing, risk, and 11 numbered owner decisions are in §9–§11.

…ndicator, realtime subagent tabs, unified agent identity

Design-only spike (no implementation). Expands the seamless-sync doc's deferred Phase 3 (presence & polish) and the subagent seam it excluded in v1, into one activity-legibility model across three facets:

1. Processing indicator — coarse working cue is Lane O (chief/bc-cli-working-indicator); this doc owns the finer remainder (patch-cadence streaming, per-subagent activity, composition with tabs).
2. Realtime subagent tabs — ACTIVE subagents as session-scoped tabs, INACTIVE behind a drawer (owner's nuance); bounded to honor the crowded-UI ceiling (PR #42 active-only labels).
3. Unified main-vs-subagent identity — a derived AgentRef generalizing subagent_type + AgentIcon + NativeFeedOrigin; generalizes the existing quarantine panel, does not re-spec it.

Grounded in code (file:line at origin/main 0fbc096). Ends with owner-facing OPEN QUESTIONS. Awaiting owner approval before any implementation lane.
miguelrisero added a commit that referenced this pull request Jul 23, 2026
…activity) (#47)

* feat(chat): project subagent entries

* feat(chat): partition bounded subagent tabs

* feat(chat): track subagent completion linger

* feat(chat): render responsive subagent strip

* feat(chat): mount localized subagent strip

* fix(chat): preserve subagent linger deadline

* docs(spec): revise agent-activity spec to executor-only + per-tab, mark decided/as-built (Lane P)

Bring the design spike (PR #43) into this branch and record the two owner
decisions that override its recommendations: executor/UI-driven subagents only
(native/CLI sidechain out of scope) and per-tab activity. Add a §0 decision +
as-built section, mark §6.5 executor path implemented / native path deferred,
and resolve §10 Q2/Q3/Q4/Q5/Q8/Q9. Facets 1 & 3 and the native path remain
design-only.

* fix(chat): overlay mobile subagent drawer

* fix(chat): announce subagent drawer status

* fix(web-core): remove subagent tab live region

* fix(web-core): enforce exhaustive subagent status mapping

* fix(ui): respect reduced motion for subagent spinner
@miguelrisero

Copy link
Copy Markdown
Owner Author

Superseded by #47 (merged). The design shipped as an executor-only, per-tab realtime subagent strip per the owner's two decisions: tabs are for UI/executor agents only (a real CLI terminal already surfaces its own subagents), and each subagent tab shows its own activity. The revised, decided/as-built version of this spec landed inside #47.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant