Agentic AI Atlasby a5c.ai
OverviewWikiGraphFor AgentsEdgesSearchWorkspace
/
GitHubDocsDiscord
iiRecord
Agentic AI Atlas · GAP-UX-001f: Streaming Output Panels
page:docs-harness-features-backlog-gaps-user-experience-gap-ux-001fa5c.ai
Search record views/
Record · tabs

Available views

II.Record viewspp. 1 - 1
overviewarticlejsongraph
III.Related pagespp. 1 - 1
II.
Page reference

page:docs-harness-features-backlog-gaps-user-experience-gap-ux-001f

Reading · 2 min

GAP-UX-001f: Streaming Output Panels reference

Real-time streaming panels that display output from delegated harness

Pagewiki/docs/harness-features-backlog/gaps/user-experience/GAP-UX-001f.mdOutgoing · 0Incoming · 1

GAP-UX-001f: Streaming Output Panels

FieldValue
Categoryuser-experience
PriorityHigh
EffortL
StatusMissing

Description

Real-time streaming panels that display output from delegated harness invocations as they execute. Split-pane or scrolling view showing what each dispatched subagent is doing, with live stdout/stderr capture.

CC Reference

CC has:

  • src/components/MessageResponse.tsx -- streams assistant responses token by token
  • src/components/VirtualMessageList.tsx -- virtualized scrolling for long output
  • src/components/ToolUseLoader.tsx -- loading indicator while tool executes
  • src/components/messages/UserBashOutputMessage.tsx -- formatted bash output
  • src/components/messages/HookProgressMessage.tsx -- hook execution streaming
  • src/components/CompactSummary.tsx -- compact view of large outputs

Current State

invokeHarness() in packages/sdk/src/harness/invoker.ts captures stdout/stderr only after the child process exits. No streaming during execution. No embedded SDK dashboard exists yet to show what a delegated harness is doing in real-time. Task results are visible only after completion.

Target State

An Ink StreamingPanel component that:

  • Attaches to child process stdout/stderr pipes from invokeHarness()
  • Renders output in a scrollable, bounded panel
  • Supports multiple panels for parallel effects (split view)
  • Truncates/virtualizes long output to stay within terminal bounds
  • Shows elapsed time and byte count
  • Color-codes stderr vs stdout
Code
┌─ S000005 generate-gap-files [running 45s] ─────────────────┐
│ Creating gaps/prompt-engineering/GAP-PROMPT-001.md          │
│ Creating gaps/prompt-engineering/GAP-PROMPT-002.md          │
│ Creating gaps/tools-capabilities/GAP-TOOLS-008.md           │
│ ...                                                         │
│ [streaming 2.3KB]                                          │
└─────────────────────────────────────────────────────────────┘

Dependencies

  • GAP-UX-001 -- Ink rendering foundation
  • GAP-SUBOBS-001 -- streaming capture from harnesses

Key Files

ComponentPath
Harness invokerpackages/sdk/src/harness/invoker.ts
Pi wrapperpackages/sdk/src/harness/piWrapper.ts (has subscribe())
Embedded SDK dashboard (new)packages/sdk/src/dashboard/
CC referencesrc/components/MessageResponse.tsx
CC referencesrc/components/VirtualMessageList.tsx

Recommendation

Phase 2-3. Requires changes to invokeHarness() to pipe stdout/stderr in real-time instead of buffering. Pi already has subscribe() for streaming events. The Ink panel needs virtualization for long output. Start with single-panel view, then add split-pane for parallel effects.

Article source

The article body is owned directly by this record.

Related pages

No related wiki pages for this record.

Shortcuts

Open overview
Open JSON
Open graph