Skip to content

[rush reporter][R5] Ship the feature-flagged operation stream demo #5978

Description

Parent: #5858

Blocked by: #5975, #5976

Goal

Deliver the first end-to-end, demoable Rush reporter path for direct rush build invocations, fully reversible behind opt-in controls.

Approach

Reuse the existing OperationGraph.eventSink/OperationExecutionRecord hooks to adapt scheduler activity into OperationStreamEmitter semantic events. Do not rewrite scheduling. While the opt-in is disabled, retain the exact StreamCollator path. While enabled, keep any collator plumbing needed internally but route its destination to a sink that cannot produce duplicate terminal output; the selected reporters become the sole visible presentation owners. Remove the primary-path collator only after parity is proven.

Scope

  • Emit phase-aware operation registration, status transitions, raw stdout/stderr chunks, stream close, completion, and aggregate command-result events.
  • Wire the built-in default, plaintext, ai, json, file, and legacy reporters for the direct frontend path.
  • Demonstrate the compact default reporter (spinner/activity/result) and always-on full-detail file.
  • Preserve detailed grouping in plaintext/file reporters and keep problem-matcher input uncollated.
  • Cover success, cache hit, warning, failure, blocked operation, cancellation, and watch iteration behavior.

Acceptance criteria

  • Flag off: representative legacy golden output is byte-for-byte unchanged.
  • Flag on: reporters are the only visible writers; no duplicated or lost operation chunks.
  • The default interactive demo stays within the intended compact activity/result presentation and points to the full log.
  • Plaintext/file output reconstructs operation grouping from raw events.
  • AI output is remediation-first and includes the absolute full-log path on failure.
  • A one-command demo fixture documents both legacy and opt-in invocations.
  • The opt-in can be disabled without reverting code.

DAG

This is the demo milestone. Unblocks R7, R8, and R10.

Part of #5858.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementThe issue is asking for a new feature or design change

    Type

    No type

    Projects

    Status
    Needs triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions