Add Rush reporter frontend controls - #5989
Conversation
|
Stack integration review found and fixed three actionable issues in 42b0fae: frontend-only value flags no longer leak to repository-pinned engines; legacy verbosity combinations remain compatible, including under RUSH_REPORTER=legacy; and the repository useRushReporter opt-in is consumed before version selection with deterministic TTY/CI/non-TTY behavior while agent auto-selection stays disabled. Ordering gate: after #5985 merges and both PRs move to main, #5987 must merge before #5989 because #5987 owns the schema/API for the experiment that #5989 consumes. |
42b0fae to
c54a29b
Compare
|
Linearized stack update: rebased the two R2B-only commits onto fresh origin/copilot/reporter-r2a-experiment-config and force-pushed with lease. New head is c54a29b; base is now copilot/reporter-r2a-experiment-config. The GitHub diff exactly matches the local R2A-to-R2B file list, with no R2A schema/API files included. Combined targeted tests, rush check, and changefile verification pass. Auto-merge remains disabled while #5985 and #5987 are open. |
Create the authoritative frontend reporter host before version selection, register global reporter controls, and preserve legacy output unless a non-legacy reporter is explicitly selected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Consume the repository experiment before Rush version selection, keep agent detection out of pre-major defaults, strip frontend-only controls before engine handoff, and preserve legacy verbosity compatibility. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
c54a29b to
732e704
Compare
|
Combined deep review of current head
|
Stop reporter control scans at the pass-through separator and add an exactly-once frontend close contract across success, failure, and termination paths. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
|
Fixed both deep-review findings in 709357f. Reporter control scans and stripping now stop at the first standalone |
|
Four-review rerun on
Useful low follow-ons: close errors should not replace the command result, and current |
Keep reporter controls out of ts-command-line globals, gate incompatible engines before initialization, and enforce bounded signal and close-error behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
|
Round two fixed in 5f8ef5e. Reporter options are no longer ts-command-line globals, so existing build, rebuild, check, and repository custom parameters retain their action-owned behavior. Explicit non-legacy reporter requests reserve reporter value controls; implicit opt-in preserves custom output and log-level parameters. Incompatible engines now reject explicit reporters before initialization and otherwise stay on disabled legacy behavior. Lifecycle handlers are installed only when enabled, signals use one two-second wall-clock deadline, and close errors set failure state without replacing command errors. Tests passed: reporter 295, rush-lib 757, apps/rush 38, regenerated snapshots, rush check, and stacked-base change verification. |
|
Four-review rerun on
Auto-merge remains disabled. Descendant remediation stays paused. |
Preserve unsupported custom reporter values until frontend ownership is unambiguous, and narrow emergency legacy stripping to the reporter selection flag. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
|
Final focused ownership fix is in c732e19. Unsupported custom |
|
Four-review gate on Required fix: make the probe tolerant of missing values and raise One dismissible low follow-on remains: repository opt-in currently rejects contradictory legacy verbosity aliases that the legacy path accepts. |
Probe reporter ownership without requiring a value, then enforce strict reporter parsing only after frontend ownership is established. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
|
Final narrow fix is in 62d9e7a. The first reporter ownership probe now tolerates a value-less custom |
|
Final combined review of The repeated command-name concern was dismissed because no failing invocation was reproduced and the full frontend path verification found no affected supported entry point. This head is review-clean. Auto-merge remains disabled while ancestors are open. |
Summary
ReporterHost/ReporterManagerinapps/rushbefore Rush version selection and pass selectedrush-libonly anIReporterEventSink--reporter,--output,--log-level,--quiet,--verbose, and--debugcontrols while preserving command-specific--json--reporteror the repositoryuseRushReporterexperiment enables reporters, agent auto-selection remains disabled, andRUSH_REPORTER=legacystrips reporter-only controls before legacy-engine handoff-vmeanings forrush list,rush change, and phased build commandsStack
copilot/reporter-r2a-experiment-config)copilot/reporter-r1b-bootstrap-generation)copilot/reporter-r1a-package-wiring)This is the R2B child of #5987. Keep auto-merge disabled while any ancestor is open. Merge and retarget #5985, #5986, and #5987 in order; only after #5987 merges should this PR be retargeted to
mainand considered for auto-merge.Validation
rush build --to @microsoft/rush --verboserush test --only @microsoft/rush --only @microsoft/rush-lib --only @rushstack/rush-reporter --verbosenode libraries/reporter/scripts/generateBootstrapProtocol.js --checkrush checkrush change --verify --no-fetchgh pr diff 5989contains only the 18-file R2B frontend/control sliceLegacy safety
--reporter,--output, and--log-levelcontrols are removed before every Rush engine handoff, including repository-pinned older enginesRUSH_REPORTER=legacyremains the emergency override even when non-legacy or contradictory reporter controls are present--quiet --debugremain valid when the reporter path is disabledrush-pnpm --reporterandrushxarguments remain outside Rush reporter parsingRepository opt-in
useRushReporteris read before version selectionNon-goals
StreamCollatorreplacement (R5)Part of #5975