Add Rush reporter repository configuration - #5987
Conversation
|
Independent stack-base review found no actionable defects in the repository configuration/schema/API slice. Local rush-lib tests, rush check, and changefile verification passed. Combined validation with #5989 is clean. Stack gate: keep this PR based on copilot/reporter-r1a-package-wiring with auto-merge disabled until #5985 merges; then retarget to main and run full CI. Merge #5987 before #5989 so the public useRushReporter schema/API lands before the frontend consumes it. |
da8e9ca to
c647c7f
Compare
|
Combined deep review of current head No critical, high, or medium actionable findings. No useful low follow-ons. |
c647c7f to
daab290
Compare
daab290 to
167851c
Compare
4192233 to
e191fa7
Compare
|
Deep review of current head e191fa7 found no critical, high, or medium actionable issues. The only failed matrix job was a wall-time benchmark flake, and its failed job has been rerun. Merge remains gated by maintainer approval and rerun success. |
|
The isolated wall-time benchmark rerun passed. Current head e191fa7 is full-CI green and blocked only by maintainer approval. |
e191fa7 to
8c6b049
Compare
Follow up #5987 without changing configuration behavior; concurrent flag-file tests empty api/test/temp. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
|
Published Local validation: |
3b005ee to
a60f284
Compare
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Follow up #5987 without changing configuration behavior; concurrent flag-file tests empty api/test/temp. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
a60f284 to
991a481
Compare
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The configuration types, schemas, templates, defaults, and validation tests are consistent with the stated compatibility requirements.
Review tier: Balanced
Findings: None
What changed in this PR
Adds opt-in repository configuration for the experimental Rush reporter without changing runtime behavior.
Changes:
- Adds
useRushReporterexperiment configuration. - Adds typed
reporting.agentEnvironmentVariablessupport. - Adds schema, template, API report, and validation coverage.
| File | Description |
|---|---|
libraries/rush-lib/src/schemas/rush.schema.json |
Defines reporter configuration schema. |
libraries/rush-lib/src/schemas/experiments.schema.json |
Defines reporter opt-in schema. |
libraries/rush-lib/src/index.ts |
Exports the reporting configuration type. |
libraries/rush-lib/src/api/test/RushConfigurationReporting.test.ts |
Tests reporting configuration loading. |
libraries/rush-lib/src/api/test/ExperimentsConfiguration.test.ts |
Tests experiment parsing and defaults. |
libraries/rush-lib/src/api/RushConfiguration.ts |
Loads typed reporter settings. |
libraries/rush-lib/src/api/ExperimentsConfiguration.ts |
Adds the experiment type. |
libraries/rush-lib/assets/rush-init/rush.json |
Documents optional reporter settings. |
libraries/rush-lib/assets/rush-init/common/config/rush/experiments.json |
Documents the reporter opt-in. |
common/reviews/api/rush-lib.api.md |
Updates the public API report. |
common/changes/@microsoft/rush/copilot-reporter-r2a-experiment-config_2026-08-28-02-38.json |
Records the patch change. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
* Add Rush reporter repository configuration Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e * Isolate reporter configuration test fixtures from shared cleanup Follow up #5987 without changing configuration behavior; concurrent flag-file tests empty api/test/temp. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Refresh R2B reporter controls onto native-private trunk Preserve the exact published R2B slice and review corrections while reconciling native private members and replacing unbranded parser test objects with real execution paths. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Refresh R3A scoped producers onto native-private trunk Retain the exact scoped producer API and WeakMap-backed plugin facades while preserving native-private parser/plugin members and real launch-boundary coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Refresh R3B shadow lifecycle onto native-private trunk Preserve published early-failure, late-telemetry and operation-callback corrections; reconcile native lifecycle fields and telemetry references, with real branded parser regression coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Refresh R3C parity coverage onto native-private trunk Retain the published cancellation, identity, output and shadow parity slice on the reconciled R3B parent. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Clarify the frontend reporter channel identity contract Document both the typed event sink and the frontend-assigned sessionId in the cross-version handoff without changing its shape. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Preserve rollback flags and primary file detail defaults Share separated-value recognition with stripping so valueless controls cannot consume legacy flags, and use debug only as the unrequested primary file log-level default. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Connect watch cancellation to shadow parity observation Retain selected-action cancellation for subsequent shadow observations while preserving legacy process and telemetry results. Exercise a native watch session and compare raw terminal chunks and per-stream bytes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Fix shadow lifecycle error correlation and final registration Keep immutable errors intact, capture original pre-execution parser failures without changing legacy rendering, and observe final configured operation silence. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Respect command ownership when consuming reporter controls Consume --verbose only for known actions that do not define it and parse repository opt-in value controls only when they are not command-owned. Preserve native aliases, declared custom values, unresolved plugin namespaces, and pass-through arguments. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Refresh R2B reporter controls onto native-private trunk Preserve the exact published R2B slice and review corrections while reconciling native private members and replacing unbranded parser test objects with real execution paths. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Preserve rollback flags and primary file detail defaults Share separated-value recognition with stripping so valueless controls cannot consume legacy flags, and use debug only as the unrequested primary file log-level default. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Respect command ownership when consuming reporter controls Consume --verbose only for known actions that do not define it and parse repository opt-in value controls only when they are not command-owned. Preserve native aliases, declared custom values, unresolved plugin namespaces, and pass-through arguments. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Refresh R3A scoped producers onto native-private trunk Retain the exact scoped producer API and WeakMap-backed plugin facades while preserving native-private parser/plugin members and real launch-boundary coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Clarify the frontend reporter channel identity contract Document both the typed event sink and the frontend-assigned sessionId in the cross-version handoff without changing its shape. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Refresh R3B shadow lifecycle onto native-private trunk Preserve published early-failure, late-telemetry and operation-callback corrections; reconcile native lifecycle fields and telemetry references, with real branded parser regression coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Fix shadow lifecycle error correlation and final registration Keep immutable errors intact, capture original pre-execution parser failures without changing legacy rendering, and observe final configured operation silence. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Normalize Rush cwd before analyzing repository inputs Resolve physical cwd at parser entry so native Windows short names and directory aliases match Git repository paths. Keep real watch cancellation coverage and add symlink/junction regressions without mocking input analysis or watcher behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Use native realpath to expand Windows short directory names Native Node 24 and 26 validation showed that generic realpathSync and FileSystem.getRealPath retain 8.3 names. Use the existing native-realpath pattern to resolve the physical directory before configuration discovery. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Capture successful Git setup diagnostics in watch regression tests Explicit pipes prevent Git line-ending notices from being mirrored onto the parent test stderr. Real setup failures still throw with the original captured error text. Reproduced the actual Rush production gate with process-local core.autocrlf=true and core.safecrlf=warn: unchanged tests exited with warnings before the fix and passed cleanly after it, without changing CI warning policy or watch assertions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 * Compare physical dependency targets in package manager tests Resolve both expected and actual link locations using native-backed realpath before comparing them. Add a real directory-alias regression that still rejects wrong and missing targets, and run it alongside the unchanged npm and Yarn integration workflows. Reproduced the previous lexical mismatch before the fix; the regression and complete suite pass under an invocation-owned aliased temporary root. No production code, dependency versions, or CI gates changed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10 --------- Co-authored-by: TheLarkInn <TheLarkInn@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Part of #5975.
Stack
copilot/reporter-r1b-bootstrap-generation)copilot/reporter-r1a-package-wiring)This is the R2A child of #5986. Keep auto-merge disabled while either ancestor is open. After #5985 and #5986 merge in order, retarget this PR to
main, verify its slice and CI, then merge it before #5989.Changes
useRushReporteropt-in to experiments types, schema, andrush inittemplate.rush.jsonloading forreporting.agentEnvironmentVariables, including schema and template support.Validation
rush test --only @microsoft/rush-librush checkrush change --verify --no-fetchrush initfiles verified to omitreportinganduseRushReporterby default.gh pr diff 5987contains only the 11-file R2A configuration/schema slice.Compatibility and non-goals
Absent or false
useRushReporterpreserves legacy reporting behavior, and absentreportingconfiguration yields an empty agent-variable list. This PR only exposes typed repository configuration; it does not activate agent auto-selection, add frontend/CLI controls, or produce visible reporter output.