Skip to content

feat(ui): live capture view — streaming timeline #59

Description

@sepehr-safari

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions