Scope (gated on #58 / ADR-0009)
A live capture surface in the inspector — a timeline that appends events as
capture streams, with start/stop controls and live failure surfacing — reusing
the S3 virtualized timeline and failure panels so a long live session stays
viewport-bounded. Events arrive via the channel ADR-0009 settles (a self-spawned
studio capture --ndjson worker, or the runner-eject path).
Contingency: if ADR-0009 finds no in-runner channel (#58 outcome ii),
this issue's GUI portion moves to the #33 runner-eject bucket; the headless
capture flagship (#57) is unaffected.
Deliverables (assuming a channel)
- A live-capture view/mode in
src/ui/: start/stop capture, connection state,
a streaming timeline that appends canonical events, a live failure list, and
a "recording to <path>" indicator.
- Back-pressure / bounds: cap retained live events (ring/window) so an unbounded
session can't exhaust memory; the on-disk recording is the full record.
Acceptance criteria
- Headless view tests drive the live model: injected events append to the
timeline; start/stop toggles state; the failure list updates; the view stays
viewport-bounded under a large synthetic live stream.
- Both
native build and native test green.
Dependencies
#58 (channel / ADR outcome), #56 (event source). Builds on S3 (#27–#32).
Scope (gated on #58 / ADR-0009)
A live capture surface in the inspector — a timeline that appends events as
capture streams, with start/stop controls and live failure surfacing — reusing
the S3 virtualized timeline and failure panels so a long live session stays
viewport-bounded. Events arrive via the channel ADR-0009 settles (a self-spawned
studio capture --ndjsonworker, or the runner-eject path).Deliverables (assuming a channel)
src/ui/: start/stop capture, connection state,a streaming timeline that appends canonical events, a live failure list, and
a "recording to
<path>" indicator.session can't exhaust memory; the on-disk recording is the full record.
Acceptance criteria
timeline; start/stop toggles state; the failure list updates; the view stays
viewport-bounded under a large synthetic live stream.
native buildandnative testgreen.Dependencies
#58 (channel / ADR outcome), #56 (event source). Builds on S3 (#27–#32).