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.

Activity

  1. TheLarkInn commented on Aug 28, 2026

    @TheLarkInn
    MemberAuthor

    R3 implementation is complete and stacked in order: #5985 -> #5988 -> #5991 -> #5992. I independently reviewed #5988 and #5991 against this issue/RFC phase 3; no parent-slice defect required rewriting those branches. #5992 adds the exhaustive parity/integration matrix and fixes logical-cancellation derivation while preserving legacy output and authoritative process exit behavior. Local reporter/rush-lib/rush/rush-sdk tests, builds, API review, rush check, and change verification pass. Current blocker: #5985 has green CI and squash auto-merge enabled but still requires maintainer approval. Child PRs remain on their parent branches with only CLA checks; they must be retargeted to main one at a time after each parent merges, then pass full CI and approval before enabling squash auto-merge. The issue should remain open until all four PRs merge and parity is revalidated on main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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