Expose scoped RushSession reporter producers - #5988
Conversation
|
Independent R3 review against #5976/RFC phase 3: the slice is correctly limited to the optional frontend-to-engine sink plus trusted Rush/action/plugin producer facades. I found no source-identity spoofing, privacy, no-sink compatibility, error-handling, API, or visible-output defect. Stack-only diff is one commit over #5985; no unresolved review threads are present. Full local stack validation is recorded on child #5992. |
277edae to
eb6ae44
Compare
|
Combined deep review of current head
|
eb6ae44 to
07f17e4
Compare
|
Rebased the single R3A commit onto #5989 head |
|
Final combined review of |
9325875 to
39827fa
Compare
257d502 to
8a9585c
Compare
8a9585c to
8a54622
Compare
8a54622 to
007b113
Compare
007b113 to
23de51a
Compare
c8637e5 to
e3bf1e7
Compare
fe52c2d to
9c40269
Compare
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The implementation and tests consistently preserve legacy behavior; only a non-blocking documentation correction remains.
Review tier: Balanced
Findings: 1
New issues introduced by this change (1)
| Severity | Finding |
|---|---|
apps/rush/src/IRushFrontendLaunchOptions.ts — The remarks now misdescribe this contract as passing “only the typed producer sink,” but reporter… |
What changed in this PR
Adds opt-in, source-scoped reporter producers across the Rush frontend, engine, actions, and plugins while preserving legacy output.
Changes:
- Passes typed reporter sink and session identity into
rush-lib. - Exposes scoped reporters/loggers with trusted plugin identities.
- Adds API compatibility, dependency metadata, and focused tests.
| File | Description |
|---|---|
libraries/rush-sdk/src/test/__snapshots__/script.test.ts.snap |
Updates SDK exports snapshot. |
libraries/rush-sdk/package.json |
Adds reporter dependency. |
libraries/rush-lib/src/pluginFramework/RushSession.ts |
Implements scoped reporting and plugin facades. |
libraries/rush-lib/src/pluginFramework/RushSession.test.ts |
Tests reporting identity and compatibility. |
libraries/rush-lib/src/pluginFramework/PluginManager.ts |
Supplies source-bound plugin sessions. |
libraries/rush-lib/src/pluginFramework/PluginLoader/PluginLoaderBase.ts |
Resolves plugin package versions. |
libraries/rush-lib/src/index.ts |
Exports reporter producer APIs. |
libraries/rush-lib/src/cli/RushCommandLineParser.ts |
Passes reporting into sessions. |
libraries/rush-lib/src/cli/actions/BaseRushAction.ts |
Exposes command-scoped reporters. |
libraries/rush-lib/src/api/Rush.ts |
Extends the launch boundary. |
common/reviews/api/rush-lib.api.md |
Updates the API report. |
common/config/subspaces/default/pnpm-lock.yaml |
Updates default dependency state. |
common/config/subspaces/build-tests-subspace/repo-state.json |
Refreshes generated hashes. |
common/config/subspaces/build-tests-subspace/pnpm-lock.yaml |
Updates build-test dependency state. |
common/changes/@microsoft/rush/copilot-reporter-r3a-session-sink_2026-08-28-02-38.json |
Records the patch change. |
apps/rush/src/test/RushFrontend.test.ts |
Tests the typed launch handoff. |
apps/rush/src/RushFrontend.ts |
Creates and forwards session identity. |
apps/rush/src/IRushFrontendLaunchOptions.ts |
Defines the frontend launch contract. |
Files not reviewed (2)
- common/config/subspaces/build-tests-subspace/pnpm-lock.yaml: Generated file
- common/config/subspaces/default/pnpm-lock.yaml: Generated file
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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
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
7abfad2 to
47d4f36
Compare

Part of #5976
Stack parent: #5985
Summary
RushSessionand command-bound reporters to Rush actionsValidation
rush installrush test --only @rushstack/rush-reporter --only @microsoft/rush-lib --only @rushstack/rush-sdkrush build --to @microsoft/rush-lib --to @rushstack/rush-sdkrush checkrush change --verifyCompatibility guarantee
No reporter is created and no structured event is emitted unless the frontend explicitly supplies a sink. Existing
RushSession.getLogger(),RushSession.terminalProvider, and visible terminal output remain authoritative and unchanged.Non-goals