Add direct Rush reporter demo path - #5997
Conversation
25891f4 to
e61332b
Compare
Sean Larkin (TheLarkInn)
left a comment
There was a problem hiding this comment.
Independent R5B review completed against #5978 and RFC phase 4.
Fixed in e61332b:
- command-specific --json remains the sole stdout owner; incompatible reporter combinations fail before launch;
- older repository engines force the legacy path and reporter teardown runs on selector failure;
- file/plaintext grouping is disk-backed without per-graph descriptor growth or unbounded heap retention; stale spools are retained/cleaned safely;
- watch errors use the semantic terminal, final artifact completeness precedes machine results, zero-width TTYs fall back to 80 columns, and AI parser failures retain actionable context;
- the demo now self-checks legacy rollback, plaintext/JSON/AI/file/quiet/failure/help/command-JSON output, one visible writer, chunk ordering, final flush, and owner-only logs.
Validation: build succeeded for @rushstack/rush-reporter, @microsoft/rush-lib, and @microsoft/rush; tests 304/773/28; rush check; rush change --verify --no-fetch; expanded demo and real TTY run passed. No unresolved review threads. Auto-merge remains disabled while #5996 and its ancestors are open.
e61332b to
e30aa36
Compare
|
Final restack correction: #5997 was force-replayed onto the exact current remote #5996 tip Final #5997 tip: Post-restack validation: reporter 304, rush-lib 773, apps/rush 28; expanded reporter demo; |
|
Combined deep review of current head
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
e30aa36 to
7159901
Compare
|
Review fixes published at Fixed: incompatible-engine controls remain explicit and are never silently stripped; Validation: reporter 314, rush-lib 786, apps/rush 70; all affected builds; direct demo matrix at |
|
Four-review gate on
Dismissible low follow-on: configuration discovery should use the effective |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
|
Round-two findings fixed at
Validation: reporter 317, rush-lib 787, apps/rush 71; all affected builds; direct demo |
|
Four-review rerun on Required fix: use an explicit cycle boundary or cycle identity that handles overlapping scheduling. Do not assume re-registration occurs after cycle completion. One dismissible low follow-on remains: make the AI final record consistently per-cycle or session-cumulative after fail-then-success watch recovery. The repeated command-name concern remains dismissed because no supported failing entry point was reproduced. |
Track explicit operation graph iteration identities across lifecycle events and isolate reporter totals, diagnostics, and output spools by watch cycle. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
|
Round-three findings fixed at
Validation: reporter 317, rush-lib 788, apps/rush 71; affected builds and daemon dependency chain; full demo |
|
Final combined review of One dismissible low follow-on remains: the exported |
Part of #5978
Stack
Parent: #5996 (
copilot/reporter-r5a-operation-adapter)This PR is based directly on the R5A operation adapter and intentionally excludes the parallel R6 #5993 bootstrap work. Keep auto-merge disabled while stack ancestors remain open.
Demo path
The direct current-version
rush buildpath now transfers visible operation presentation to the frontend-selected reporters when either an explicit non-legacy--reporteris present or the repositoryuseRushReporterexperiment is enabled.common/temp/rush-logs;StreamCollatorwrites to a no-op destination, preserving scheduling/writer completion semantics without duplicate terminal output;operationCompletedevents;RUSH_REPORTER=legacyremoves reporter controls before launching Rush and returns immediately to the existing legacy path.The file reporter spools active operation output to owner-only temporary files, then appends each operation as a grouped block in completion order. This preserves stdout/stderr chunk order without unbounded heap buffering.
Reproducible demo
The script exercises:
Observed result:
sessionCompleted.Repository opt-in remains
"useRushReporter": trueincommon/config/rush/experiments.json; removing it or settingRUSH_REPORTER=legacyprovides immediate rollback.Validation
rush test --only @rushstack/rush-reporter --only @microsoft/rush-lib --only @microsoft/rush --verboserush build --only @rushstack/rush-reporter --only @microsoft/rush-lib --only @microsoft/rush --verboserush checkrush change --verify --no-fetchcommandResult,commandCompleted, andsessionCompleted, with the actionable error in the full logCoverage includes success, cache hit, warnings, operation failure, blocked and aborted operations, silent operations, parallel grouping, stdout/stderr ordering, TTY/non-TTY behavior, quiet/verbose/debug controls, watch-cycle completion, and legacy flag-off parity.
Non-goals
install-run-rushor bootstrap handoff ownership (R6 / [rush reporter][R6A] Add bootstrap handoff and compatibility adapters #5993);