Skip to content

[rush reporter][R3] Emit shadow RushSession lifecycle and diagnostics #5976

Description

Parent: #5858

Blocked by: #5974

Goal

Connect rush-lib to the reporter event contract in shadow mode, with no visible output change.

Scope

  • Expose a typed reporter event sink and scoped producers through RushSession, actions, and plugins without exposing concrete reporters.
  • Adapt command/session lifecycle, structured diagnostics, telemetry projection, and command-result/exit-status events into the canonical envelope.
  • Keep operation identity phase-aware: an operation is project × phase, not merely a project.
  • Bridge legacy hooks and AlreadyReportedError correlation while the legacy renderer remains authoritative.
  • Add parity tests for event ordering, telemetry fields, diagnostics, and exit status.

Acceptance criteria

  • Shadow emission can be enabled in tests without changing stdout/stderr.
  • First-party lifecycle and diagnostic paths emit stable, correlated envelopes.
  • Actions/plugins receive scoped producer APIs only.
  • Telemetry and derived exit status match legacy behavior for success, warning, failure, cancellation, and internal-error cases.
  • Phase-aware operation identifiers are stable across retries/watch iterations.

DAG

Unblocks R4, R5, and R7.

Part of #5858.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementThe issue is asking for a new feature or design change

    Type

    No type

    Projects

    Status
    Needs triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions