Skip to content

Expose scoped RushSession reporter producers - #5988

Open
Sean Larkin (TheLarkInn) wants to merge 1 commit into
copilot/reporter-r2b-frontend-host-controlsfrom
copilot/reporter-r3a-session-sink
Open

Expose scoped RushSession reporter producers#5988
Sean Larkin (TheLarkInn) wants to merge 1 commit into
copilot/reporter-r2b-frontend-host-controlsfrom
copilot/reporter-r3a-session-sink

Conversation

@TheLarkInn

Copy link
Copy Markdown
Member

Part of #5976

Stack parent: #5985

Summary

  • accept an optional typed reporter sink/session identity at the frontend-to-engine launch boundary
  • expose source-bound scoped reporters/loggers through RushSession and command-bound reporters to Rush actions
  • give each plugin a RushSession facade whose package/version/plugin source is derived from trusted loader metadata
  • retain legacy terminal/logger APIs and no-sink behavior unchanged
  • keep rush-sdk declaration proxy compatibility for the new beta producer types

Validation

  • rush install
  • rush test --only @rushstack/rush-reporter --only @microsoft/rush-lib --only @rushstack/rush-sdk
  • rush build --to @microsoft/rush-lib --to @rushstack/rush-sdk
  • rush check
  • rush change --verify

Compatibility 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

  • lifecycle, diagnostic, telemetry, result, or exit-status emission (R3B)
  • operation stream wiring (R5)
  • reporter selection/configuration or frontend controls (R2)
  • terminal API removal (R9)

@TheLarkInn

Copy link
Copy Markdown
Member Author

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.

@TheLarkInn

Copy link
Copy Markdown
Member Author

Combined deep review of current head eb6ae446f1.

  1. CRITICAL RushFrontend.ts:52-55 passes reporterEventSink, while Rush.launch() reads reporter. The real frontend path produces no structured session or plugin events. Pass reporter: { eventSink, sessionId }.
  2. HIGH RushFrontend.test.ts:58-78 asserts the ignored key through an unsafe cast. Test the typed reporter contract and real launch path.
  3. HIGH RushSession.ts contains empty source metadata guards that continue with invalid path or version data. Fail explicitly with the repository internal error pattern.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
@TheLarkInn
Sean Larkin (TheLarkInn) force-pushed the copilot/reporter-r3a-session-sink branch from eb6ae44 to 07f17e4 比较 August 28, 2026 16:02
@TheLarkInn

Copy link
Copy Markdown
Member Author

Rebased the single R3A commit onto #5989 head 62d9e7af04ca0ae9d176ba07b745322288f1be72. Fixed the typed frontend-to-engine reporter: { eventSink, sessionId } handoff, added real launchRushFrontendAsync() to Rush.launch() boundary coverage with one preserved session id, removed unsafe sink-key assertions, and confirmed explicit InternalError source guards. Reporter, rush-lib, rush-sdk, and apps/rush tests and builds pass, along with API review, rush check, and stacked change verification.

@TheLarkInn

Copy link
Copy Markdown
Member Author

Final combined review of 07f17e4c7f found no critical, high, medium, or useful low issues. The typed frontend-to-engine contract, session identity, source validation, scoped producer boundary, no-sink compatibility, and launch integration coverage are review-clean.

注册 for free to join this conversation on GitHub. Already have an account? 登录 to comment

标签

None yet

项目

Status: Needs triage

Development

Successfully merging this pull request may close these issues.

1 participant