[rush reporter][R5] Ship the feature-flagged operation stream demo
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- nodejs, typescript
- Domain
- build-system, cli, tooling
Research direction
Start by tracing the named OperationGraph.eventSink and OperationExecutionRecord hooks into OperationStreamEmitter, then compare the existing StreamCollator path and built-in reporters. Use the direct rush build entry point and the one-command demo fixture to verify legacy and opt-in behavior. Done means parity when disabled, complete event coverage without duplicate output, and the documented reporter demonstrations pass.
Written by the indexing model from the issue text.
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, andlegacyreporters 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.
- Dominant language
- TypeScript
- Stars
- 6.5k
- Forks
- 708
- Avg merge
- 5d 19h
- Merged PRs (30d)
- 48
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/rushstack
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
All issues in microsoft/rushstack
Similar issues
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
dennys-bd/agent-hive#184 ·
-
Add: hunch Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
AbdelStark/awesome-typesafe#104 ·
-
ai-observability bug team/ai-observability
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
vicharanashala/fln#563 ·