Skip to content

Add Rush reporter frontend controls - #5989

Merged
Sean Larkin (TheLarkInn) merged 3 commits into
mainfrom
copilot/reporter-r2b-frontend-host-controls
Sep 11, 2026
Merged

Add Rush reporter frontend controls#5989
Sean Larkin (TheLarkInn) merged 3 commits into
mainfrom
copilot/reporter-r2b-frontend-host-controls

Conversation

@TheLarkInn

@TheLarkInn Sean Larkin (TheLarkInn) commented Aug 28, 2026

Copy link
Copy Markdown
Member

Summary

  • create the authoritative ReporterHost/ReporterManager in apps/rush before Rush version selection and pass selected rush-lib only an IReporterEventSink
  • register and parse global --reporter, --output, --log-level, --quiet, --verbose, and --debug controls while preserving command-specific --json
  • keep the pre-major default on the legacy path; explicit non-legacy --reporter or the repository useRushReporter experiment enables reporters, agent auto-selection remains disabled, and RUSH_REPORTER=legacy strips reporter-only controls before legacy-engine handoff
  • retain existing -v meanings for rush list, rush change, and phased build commands

Stack

This is the R2B child of #5987. Keep auto-merge disabled while any ancestor is open. Merge and retarget #5985, #5986, and #5987 in order; only after #5987 merges should this PR be retargeted to main and considered for auto-merge.

Validation

  • rush build --to @microsoft/rush --verbose
  • rush test --only @microsoft/rush --only @microsoft/rush-lib --only @rushstack/rush-reporter --verbose
  • node libraries/reporter/scripts/generateBootstrapProtocol.js --check
  • rush check
  • rush change --verify --no-fetch
  • gh pr diff 5989 contains only the 18-file R2B frontend/control slice

Legacy safety

  • frontend-owned --reporter, --output, and --log-level controls are removed before every Rush engine handoff, including repository-pinned older engines
  • no opt-in registers a visible reporter, including TTY, non-TTY, CI, and agent environments
  • RUSH_REPORTER=legacy remains the emergency override even when non-legacy or contradictory reporter controls are present
  • legacy combinations such as --quiet --debug remain valid when the reporter path is disabled
  • rush-pnpm --reporter and rushx arguments remain outside Rush reporter parsing

Repository opt-in

  • useRushReporter is read before version selection
  • TTY selects the interactive reporter; CI and generic non-TTY select plaintext
  • agent detection is deliberately excluded from repository opt-in selection until R8

Non-goals

  • no bootstrap handoff replay or prelude work (R6)
  • no operation stream rendering or StreamCollator replacement (R5)

Part of #5975

@TheLarkInn

Copy link
Copy Markdown
Member Author

Stack integration review found and fixed three actionable issues in 42b0fae: frontend-only value flags no longer leak to repository-pinned engines; legacy verbosity combinations remain compatible, including under RUSH_REPORTER=legacy; and the repository useRushReporter opt-in is consumed before version selection with deterministic TTY/CI/non-TTY behavior while agent auto-selection stays disabled. Ordering gate: after #5985 merges and both PRs move to main, #5987 must merge before #5989 because #5987 owns the schema/API for the experiment that #5989 consumes.

@TheLarkInn
Sean Larkin (TheLarkInn) changed the base branch from copilot/reporter-r1a-package-wiring to copilot/reporter-r2a-experiment-config August 28, 2026 04:33
@TheLarkInn
Sean Larkin (TheLarkInn) force-pushed the copilot/reporter-r2b-frontend-host-controls branch from 42b0fae to c54a29b Compare August 28, 2026 04:33
@TheLarkInn

Copy link
Copy Markdown
Member Author

Linearized stack update: rebased the two R2B-only commits onto fresh origin/copilot/reporter-r2a-experiment-config and force-pushed with lease. New head is c54a29b; base is now copilot/reporter-r2a-experiment-config. The GitHub diff exactly matches the local R2A-to-R2B file list, with no R2A schema/API files included. Combined targeted tests, rush check, and changefile verification pass. Auto-merge remains disabled while #5985 and #5987 are open.

@TheLarkInn
Sean Larkin (TheLarkInn) force-pushed the copilot/reporter-r2b-frontend-host-controls branch from c54a29b to 732e704 Compare August 28, 2026 04:37
@TheLarkInn

Copy link
Copy Markdown
Member Author

Linear stack update: R2B is now head 732e704 based on #5987. Its GitHub diff is exactly the 18-file frontend/control slice. Final-tip build/tests, generation check, rush check, and change verification pass; auto-merge remains disabled while ancestors are open.

@TheLarkInn

Copy link
Copy Markdown
Member Author

Combined deep review of current head 732e7048f7.

  1. HIGH RushReporterHost.ts:184-244 parses and strips reporter-shaped arguments after the -- separator. Pass-through tool arguments can be consumed or rejected. Stop both scans at --.
  2. MEDIUM RushFrontend.ts:37-66 initializes frontend-owned reporters without an exactly-once success close path. Files, descriptors, and latest.log can remain incomplete until process exit. Add an awaitable close contract for success, failure, parser rejection, and termination.

@TheLarkInn

Copy link
Copy Markdown
Member Author

Fixed both deep-review findings in 709357f. Reporter control scans and stripping now stop at the first standalone --, preserving all pass-through arguments. Frontend-owned reporters now use one awaitable close promise across normal success, engine and parser failures, selector failures, explicit exits, older-engine beforeExit, and bounded signal termination. Tests passed: reporter 295, rush-lib 752, apps/rush 27, rush check, and stacked-base change verification.

@TheLarkInn

Copy link
Copy Markdown
Member Author

Four-review rerun on 709357fced confirms the original separator and normal close fixes. Five actionable findings remain:

  1. CRITICAL Global --verbose collides with existing action flags. rush build --verbose, rush rebuild --verbose, and rush check --verbose can fail as ambiguous. Preserve existing action syntax.
  2. HIGH Global reporter parameter names can collide with repository custom command parameters. Detect conflicts early or avoid parser-level collisions.
  3. HIGH An older selected engine can still initialize reporters, strip an explicit request, and never close on process.exit(). Reject unsupported explicit requests and keep old engines on a closed legacy path.
  4. MEDIUM A signal can join an existing longer close and miss the advertised two-second wall-clock deadline.
  5. MEDIUM Signal and beforeExit handlers are installed even when reporting is disabled, changing the no-opt-in legacy path.

Useful low follow-ons: close errors should not replace the command result, and current -- preservation is frontend-only because Rush actions do not yet consume a remainder. Descendant remediation stays paused.

@TheLarkInn

Copy link
Copy Markdown
Member Author

Round two fixed in 5f8ef5e. Reporter options are no longer ts-command-line globals, so existing build, rebuild, check, and repository custom parameters retain their action-owned behavior. Explicit non-legacy reporter requests reserve reporter value controls; implicit opt-in preserves custom output and log-level parameters. Incompatible engines now reject explicit reporters before initialization and otherwise stay on disabled legacy behavior. Lifecycle handlers are installed only when enabled, signals use one two-second wall-clock deadline, and close errors set failure state without replacing command errors. Tests passed: reporter 295, rush-lib 757, apps/rush 38, regenerated snapshots, rush check, and stacked-base change verification.

@TheLarkInn

Copy link
Copy Markdown
Member Author

Four-review rerun on 5f8ef5e948 confirms all prior compatibility and lifecycle fixes. Two related flag-ownership gaps remain:

  1. HIGH An unsupported --reporter value is still claimed by the frontend, breaking custom commands that historically own --reporter, including common test reporter values. Preserve it unless the frontend has an explicit supported reporter request or repository opt-in ownership.
  2. MEDIUM RUSH_REPORTER=legacy plus explicit --reporter=legacy can strip valid custom --output and --log-level parameters. Strip only the reporter selection flag in that case.

Auto-merge remains disabled. Descendant remediation stays paused.

@TheLarkInn

Copy link
Copy Markdown
Member Author

Final focused ownership fix is in c732e19. Unsupported custom --reporter values such as junit now pass through unchanged until repository opt-in, a supported reporter name, or a reporter-shaped output establishes frontend ownership. RUSH_REPORTER=legacy with explicit --reporter=legacy strips only the selection flag, preserving custom output, log-level, and verbose parameters. Incompatible engines retain the explicit failure and legacy-safe escape paths with clearer contract wording. Tests passed: reporter 295, rush-lib 757, apps/rush 44, parser snapshots, rush check, and stacked-base change verification.

@TheLarkInn

Copy link
Copy Markdown
Member Author

Four-review gate on c732e195b5 confirms the prior findings are fixed. One MEDIUM compatibility gap remains: a repository custom command that owns a value-less --reporter flag still fails during the frontend ownership probe before Rush loads the command definition.

Required fix: make the probe tolerant of missing values and raise requires a value only after frontend ownership is established. Add a custom flag fixture.

One dismissible low follow-on remains: repository opt-in currently rejects contradictory legacy verbosity aliases that the legacy path accepts.

@TheLarkInn
Sean Larkin (TheLarkInn) force-pushed the copilot/reporter-r2b-frontend-host-controls branch from 544110e to 1cef79b Compare September 3, 2026 20:14
@TheLarkInn
Sean Larkin (TheLarkInn) force-pushed the copilot/reporter-r2b-frontend-host-controls branch from 1cef79b to 1f4a982 Compare September 3, 2026 20:15
@TheLarkInn

Copy link
Copy Markdown
Member Author

Deep review of current head 1f4a982 found no critical, high, or medium actionable issues. Initialization failures now force a nonzero exit before reporter completion and close exactly once. Merge remains gated by #5987 and maintainer approval.

@TheLarkInn
Sean Larkin (TheLarkInn) force-pushed the copilot/reporter-r2b-frontend-host-controls branch from 1f4a982 to 61a3e54 Compare September 4, 2026 18:49
@TheLarkInn

Copy link
Copy Markdown
Member Author

Deep review found three high actionable issues on current head 61a3e54c73:

  1. High: apps/rush/src/MinimalRushConfiguration.ts, loadFromDefaultLocation(). Configuration discovery can write plaintext before JSON or AI output. This corrupts machine stdout and remains present on the [rush reporter][R6A] Add bootstrap handoff and compatibility adapters #5993 fork. Suppress discovery output before reporter selection and emit it only on the legacy path.
  2. High: libraries/rush-lib/src/cli/actions/ListAction.ts:128-193 and similar non-phased actions. Direct console and terminal writes bypass reporter ownership, corrupt machine output, and omit visible text from file logs. Add reporter-aware current-engine stream observation with safe passthrough for already-rendered human or command JSON output.
  3. High: libraries/rush-lib/src/api/EnvironmentConfiguration.ts, EnvironmentVariableNames and validate(). RUSH_REPORTER and RUSH_LOG_LEVEL are rejected by the strict environment allowlist. The emergency rollback can therefore break rushx and rush-pnpm. Register both as frontend-owned controls and add regression coverage.

@TheLarkInn Sean Larkin (TheLarkInn) left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

R2 acceptance review against #5975 and the documented emergency fallback/output-ownership contracts.

Comment thread apps/rush/src/RushReporterHost.ts
Comment thread apps/rush/src/RushReporterHost.ts
@TheLarkInn
Sean Larkin (TheLarkInn) force-pushed the copilot/reporter-r2b-frontend-host-controls branch from 28e30b0 to ebbb477 Compare September 10, 2026 01:30
@TheLarkInn

Copy link
Copy Markdown
Member Author

Stack6007 refresh completion: the eight core layers and three dependent side branches are published with their reviewed scopes, public API deltas and side-branch histories preserved. All11 current heads passed all66 complete platform workflows, including package-manager and repeated-cache stages; the trunk conflict at this PR is cleared and GitHub now reports it mergeable. Current R2B head is ebbb477, CI34425756818. The isolated unchanged benchmark failure passed one evidence-backed failed-job retry; no source assertion or performance threshold was altered. Original23 review findings remain resolved. Independent approvals and dependency-ordered landing are still required; no PR was merged or package released.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Repository opt-in controls, global verbose handling, rollback stripping, and file log-level behavior have unresolved correctness issues.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Balanced
Findings: 4 Medium severity

New issues introduced by this change (4)
Severity Finding
Medium severity apps/​rush/​src/​RushFrontend.ts — Only value controls are removed here, but --verbose is also interpreted as a reporter log-level…
Medium severity apps/​rush/​src/​RushReporterHost.ts — When rollback bypasses strict parsing, a value-less control can consume the following legacy flag.…
Medium severity apps/​rush/​src/​RushReporterHost.ts — Repository opt-in does not actually support the new value controls unless --reporter is also…
Medium severity apps/​rush/​src/​RushReporterHost.ts — The primary file reporter is wrapped at the selection's default normal level, which drops…
What changed in this PR

Adds frontend-owned reporter selection, lifecycle management, controls, and legacy compatibility before Rush engine selection.

Changes:

  • Introduces reporter host selection, output routing, and deterministic cleanup.
  • Passes reporter sink/close hooks into rush-lib.
  • Adds experiment loading, pass-through handling, documentation, and tests.
File Description
specs/​2026-07-12-rush-reporter-overhaul.md Documents stream targets and legacy override.
libraries/​rush-lib/​src/​cli/​test/​RushCommandLineParserReporterClose.test.ts Tests parser cleanup and controls.
libraries/​rush-lib/​src/​cli/​test/​RushCommandLineParser.test.ts Tests custom parameter preservation.
libraries/​rush-lib/​src/​cli/​test/​basicAndRunRebuildActionRepo/​custom-reporter-flag.js Captures custom flag arguments.
libraries/​rush-lib/​src/​cli/​test/​basicAndRunRebuildActionRepo/​common/​config/​rush/​command-line.json Defines custom reporter flag fixture.
libraries/​rush-lib/​src/​cli/​test/​basicAndRunBuildActionRepo/​custom-output.js Captures custom output arguments.
libraries/​rush-lib/​src/​cli/​test/​basicAndRunBuildActionRepo/​common/​config/​rush/​command-line.json Defines overlapping custom controls.
libraries/​rush-lib/​src/​cli/​RushCommandLineParser.ts Integrates reporter finalization.
libraries/​rush-lib/​src/​api/​Rush.ts Forwards the frontend close hook.
libraries/​reporter/​src/​test/​ExitStatus.test.ts Tests pass-through JSON handling.
libraries/​reporter/​src/​exit/​CommandJson.ts Stops control scanning at --.
common/​changes/​@rushstack/​rush-reporter/​reporter-r2b-json-controls_2026-09-07.json Records reporter package change.
common/​changes/​@microsoft/​rush/​reporter-foundation-controls_2026-09-09.json Records control compatibility change.
common/​changes/​@microsoft/​rush/​copilot-reporter-r2b-frontend-host-controls_2026-08-28-03-00.json Records frontend integration change.
apps/​rush/​src/​test/​sandbox/​repo/​common/​config/​rush/​experiments.json Enables reporter fixture experiment.
apps/​rush/​src/​test/​RushReporterHost.test.ts Tests reporter selection and outputs.
apps/​rush/​src/​test/​RushFrontend.test.ts Tests frontend lifecycle and handoff.
apps/​rush/​src/​test/​MinimalRushConfiguration.test.ts Tests experiment loading.
apps/​rush/​src/​start.ts Launches through the new frontend.
apps/​rush/​src/​start-dev.ts Uses the frontend in development.
apps/​rush/​src/​RushVersionSelector.ts Carries frontend launch options.
apps/​rush/​src/​RushReporterHost.ts Implements controls and reporter host.
apps/​rush/​src/​RushFrontend.ts Coordinates selection, handoff, and cleanup.
apps/​rush/​src/​RushCommandSelector.ts Uses the frontend launch contract.
apps/​rush/​src/​MinimalRushConfiguration.ts Reads repository reporter opt-in.
apps/​rush/​src/​IRushFrontendLaunchOptions.ts Defines the cross-version contract.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread apps/rush/src/RushFrontend.ts
Comment thread apps/rush/src/RushReporterHost.ts Outdated
Comment thread apps/rush/src/RushReporterHost.ts Outdated
Comment thread apps/rush/src/RushReporterHost.ts
Base automatically changed from copilot/reporter-r2a-experiment-config to main September 10, 2026 20:23
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
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
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
@TheLarkInn
Sean Larkin (TheLarkInn) force-pushed the copilot/reporter-r2b-frontend-host-controls branch from 68cab2b to 55e4328 Compare September 10, 2026 20:23
@TheLarkInn
Sean Larkin (TheLarkInn) merged commit bd9a9ad into main Sep 11, 2026
10 checks passed
@github-project-automation github-project-automation Bot moved this from Needs triage to Closed in Bug Triage Sep 11, 2026
@TheLarkInn
Sean Larkin (TheLarkInn) deleted the copilot/reporter-r2b-frontend-host-controls branch September 11, 2026 00:29
Sean Larkin (TheLarkInn) added a commit that referenced this pull request Sep 11, 2026
…#5993)

* Add Rush reporter repository configuration

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add Rush reporter frontend controls

Create the authoritative frontend reporter host before version selection, register global reporter controls, and preserve legacy output unless a non-legacy reporter is explicitly selected.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend integration

Consume the repository experiment before Rush version selection, keep agent detection out of pre-major defaults, strip frontend-only controls before engine handoff, and preserve legacy verbosity compatibility.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add reporter bootstrap handoff

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter bootstrap compatibility failures

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend argument and close lifecycle

Stop reporter control scans at the pass-through separator and add an exactly-once frontend close contract across success, failure, and termination paths.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve Rush CLI reporter compatibility

Keep reporter controls out of ts-command-line globals, gate incompatible engines before initialization, and enforce bounded signal and close-error behavior.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Refine reporter flag ownership

Preserve unsupported custom reporter values until frontend ownership is unambiguous, and narrow emergency legacy stripping to the reporter selection flag.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Tolerate value-less custom reporter flags

Probe reporter ownership without requiring a value, then enforce strict reporter parsing only after frontend ownership is established.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter bootstrap review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix bootstrap diagnostic privacy

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Route legacy bootstrap warnings to stderr

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Stop execution after parser initialization failure

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter engine compatibility routing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Force nonzero parser failure exits

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Expose scoped RushSession reporter producers

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

* Add Rush reporter frontend controls

Create the authoritative frontend reporter host before version selection, register global reporter controls, and preserve legacy output unless a non-legacy reporter is explicitly selected.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend integration

Consume the repository experiment before Rush version selection, keep agent detection out of pre-major defaults, strip frontend-only controls before engine handoff, and preserve legacy verbosity compatibility.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend argument and close lifecycle

Stop reporter control scans at the pass-through separator and add an exactly-once frontend close contract across success, failure, and termination paths.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve Rush CLI reporter compatibility

Keep reporter controls out of ts-command-line globals, gate incompatible engines before initialization, and enforce bounded signal and close-error behavior.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Refine reporter flag ownership

Preserve unsupported custom reporter values until frontend ownership is unambiguous, and narrow emergency legacy stripping to the reporter selection flag.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Tolerate value-less custom reporter flags

Probe reporter ownership without requiring a value, then enforce strict reporter parsing only after frontend ownership is established.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Stop execution after parser initialization failure

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Expose scoped RushSession reporter producers

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Force nonzero parser failure exits

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add the missing reporter change note for R2B JSON controls

The newly rerun CI for #5989 exposed the existing reporter-package change without its release note. Describe the already-implemented pass-through separator behavior; no runtime code or gate changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Expose scoped RushSession reporter producers

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* 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

* Add Rush reporter frontend controls

Create the authoritative frontend reporter host before version selection, register global reporter controls, and preserve legacy output unless a non-legacy reporter is explicitly selected.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend integration

Consume the repository experiment before Rush version selection, keep agent detection out of pre-major defaults, strip frontend-only controls before engine handoff, and preserve legacy verbosity compatibility.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend argument and close lifecycle

Stop reporter control scans at the pass-through separator and add an exactly-once frontend close contract across success, failure, and termination paths.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve Rush CLI reporter compatibility

Keep reporter controls out of ts-command-line globals, gate incompatible engines before initialization, and enforce bounded signal and close-error behavior.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Refine reporter flag ownership

Preserve unsupported custom reporter values until frontend ownership is unambiguous, and narrow emergency legacy stripping to the reporter selection flag.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Tolerate value-less custom reporter flags

Probe reporter ownership without requiring a value, then enforce strict reporter parsing only after frontend ownership is established.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Stop execution after parser initialization failure

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Force nonzero parser failure exits

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add the missing reporter change note for R2B JSON controls

The newly rerun CI for #5989 exposed the existing reporter-package change without its release note. Describe the already-implemented pass-through separator behavior; no runtime code or gate changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Expose scoped RushSession reporter producers

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter rollback and reserved stream destinations

Apply emergency legacy selection before strict reporter validation, preserve custom command controls, and honor canonical stdout/stderr destinations without treating them as paths.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Expose scoped RushSession reporter producers

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Adapt reporter bootstrap cleanup onto the corrected R6 parent

Replay a48ce82 while preserving corrected foundation stream ownership tests and limiting README changes to the six-line R6 cleanup paragraph.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Keep R6 cleanup regression independent of later host injection options

Inject the partial-initialization fixture through ReporterManager's existing initializer so the test replays onto the original R6 slice without importing a later host manager option.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Adapt shared reporter close state to the original R6 API

Replay cad7bfd without introducing the later _flushAndConfirmAsync API or expanding the six-line R6 README addition.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Serialize initialization disposal on each reporter lifecycle lane

Reserve the existing per-entry lifecycle tail for disposal while retaining raw failures for AggregateError reporting. Concurrent normal shutdown now waits behind a blocked disposal flush before sharing the cached close operation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Complete original R6 cleanup test imports

Import the existing reporter types and manager explicitly on the owning R6 slice; no later host API is introduced. Validated frontend, manager, bootstrap, capture and retention suites on the corrected R6 parent.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* 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

* 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

* 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

* Retain reporter control ownership through bootstrap fallback

Preserve the standalone flag strip list alongside consumed value controls in both real bootstrap compatibility fallback paths. Keep this combined-boundary fix on the corrected review baseline, outside the scoped 6019 follow-up delta.

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

* Fix R6 reentrant stdout, bootstrap output ownership and path privacy

Preserve machine reporter writes during legacy capture, recognize owned additional stdout outputs during bootstrap without claiming custom parameters, and classify version installation paths as local-sensitive. Keep legacy defaults and canonical full-detail logging unchanged.

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
Sean Larkin (TheLarkInn) added a commit that referenced this pull request Sep 12, 2026
* Add Rush reporter repository configuration

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add Rush reporter frontend controls

Create the authoritative frontend reporter host before version selection, register global reporter controls, and preserve legacy output unless a non-legacy reporter is explicitly selected.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend integration

Consume the repository experiment before Rush version selection, keep agent detection out of pre-major defaults, strip frontend-only controls before engine handoff, and preserve legacy verbosity compatibility.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit shadow Rush lifecycle events

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add feature-flagged operation event adapter

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation reporter stream edge cases

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Harden reporter demo integration

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Harden Heft negotiation fallback

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix structured Heft output archival

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend argument and close lifecycle

Stop reporter control scans at the pass-through separator and add an exactly-once frontend close contract across success, failure, and termination paths.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve Rush CLI reporter compatibility

Keep reporter controls out of ts-command-line globals, gate incompatible engines before initialization, and enforce bounded signal and close-error behavior.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Refine reporter flag ownership

Preserve unsupported custom reporter values until frontend ownership is unambiguous, and narrow emergency legacy stripping to the reporter selection flag.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Tolerate value-less custom reporter flags

Probe reporter ownership without requiring a value, then enforce strict reporter parsing only after frontend ownership is established.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation stream review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter demo review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter watch and lock handling

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix overlapping reporter watch cycles

Track explicit operation graph iteration identities across lifecycle events and isolate reporter totals, diagnostics, and output spools by watch cycle.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix Heft child reporter review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix acknowledgement close test race

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve fallback on acknowledgement failure

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Archive structured Heft diagnostics

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Harden Heft child trust boundary

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Stop execution after parser initialization failure

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Isolate overlapping reporter watch cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve reporter cycles across stream callbacks

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Redact secret human reporter messages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Force nonzero parser failure exits

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Expose scoped RushSession reporter producers

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit registrations for collapsed iterations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation sink callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation stream callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Align reporter completion with failure exit

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Complete shadow reporter parity coverage

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Forward daemon operation completion events

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Finalize machine privacy and zero-work cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Complete collapsed daemon operation cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add direct Rush reporter demo path

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve iteration callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Protect secret logs and callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Integrate negotiated Heft child reporting

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Use resolved iteration for matcher cleanup

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

* Fix Heft reporter pipe detection on Windows

Follow up #6000 and Reporter CI: Node reports S_IFIFO mode for inherited Windows pipes while Stats.isFIFO() returns false. Keep descriptor validation strict, add a mode-predicate regression, and require negative context tests to reach the acknowledgement handshake.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Add Rush reporter frontend controls

Create the authoritative frontend reporter host before version selection, register global reporter controls, and preserve legacy output unless a non-legacy reporter is explicitly selected.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend integration

Consume the repository experiment before Rush version selection, keep agent detection out of pre-major defaults, strip frontend-only controls before engine handoff, and preserve legacy verbosity compatibility.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend argument and close lifecycle

Stop reporter control scans at the pass-through separator and add an exactly-once frontend close contract across success, failure, and termination paths.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve Rush CLI reporter compatibility

Keep reporter controls out of ts-command-line globals, gate incompatible engines before initialization, and enforce bounded signal and close-error behavior.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Refine reporter flag ownership

Preserve unsupported custom reporter values until frontend ownership is unambiguous, and narrow emergency legacy stripping to the reporter selection flag.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Tolerate value-less custom reporter flags

Probe reporter ownership without requiring a value, then enforce strict reporter parsing only after frontend ownership is established.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Stop execution after parser initialization failure

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Expose scoped RushSession reporter producers

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit shadow Rush lifecycle events

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Isolate overlapping reporter watch cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation sink callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Align reporter completion with failure exit

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Complete shadow reporter parity coverage

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add feature-flagged operation event adapter

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation reporter stream edge cases

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation stream review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve reporter cycles across stream callbacks

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit registrations for collapsed iterations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation stream callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Forward daemon operation completion events

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Complete collapsed daemon operation cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add direct Rush reporter demo path

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Harden reporter demo integration

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Force nonzero parser failure exits

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter demo review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter watch and lock handling

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix overlapping reporter watch cycles

Track explicit operation graph iteration identities across lifecycle events and isolate reporter totals, diagnostics, and output spools by watch cycle.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Redact secret human reporter messages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Finalize machine privacy and zero-work cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve iteration callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Protect secret logs and callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add the missing reporter change note for R2B JSON controls

The newly rerun CI for #5989 exposed the existing reporter-package change without its release note. Describe the already-implemented pass-through separator behavior; no runtime code or gate changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Expose scoped RushSession reporter producers

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit shadow Rush lifecycle events

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Isolate overlapping reporter watch cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation sink callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Align reporter completion with failure exit

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Complete shadow reporter parity coverage

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add feature-flagged operation event adapter

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation reporter stream edge cases

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation stream review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve reporter cycles across stream callbacks

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit registrations for collapsed iterations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation stream callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Forward daemon operation completion events

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Complete collapsed daemon operation cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add direct Rush reporter demo path

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Harden reporter demo integration

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter demo review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter watch and lock handling

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix overlapping reporter watch cycles

Track explicit operation graph iteration identities across lifecycle events and isolate reporter totals, diagnostics, and output spools by watch cycle.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Redact secret human reporter messages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Finalize machine privacy and zero-work cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve iteration callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Protect secret logs and callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* 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

* Add Rush reporter frontend controls

Create the authoritative frontend reporter host before version selection, register global reporter controls, and preserve legacy output unless a non-legacy reporter is explicitly selected.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend integration

Consume the repository experiment before Rush version selection, keep agent detection out of pre-major defaults, strip frontend-only controls before engine handoff, and preserve legacy verbosity compatibility.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter frontend argument and close lifecycle

Stop reporter control scans at the pass-through separator and add an exactly-once frontend close contract across success, failure, and termination paths.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve Rush CLI reporter compatibility

Keep reporter controls out of ts-command-line globals, gate incompatible engines before initialization, and enforce bounded signal and close-error behavior.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Refine reporter flag ownership

Preserve unsupported custom reporter values until frontend ownership is unambiguous, and narrow emergency legacy stripping to the reporter selection flag.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Tolerate value-less custom reporter flags

Probe reporter ownership without requiring a value, then enforce strict reporter parsing only after frontend ownership is established.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Stop execution after parser initialization failure

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Force nonzero parser failure exits

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add the missing reporter change note for R2B JSON controls

The newly rerun CI for #5989 exposed the existing reporter-package change without its release note. Describe the already-implemented pass-through separator behavior; no runtime code or gate changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Expose scoped RushSession reporter producers

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit shadow Rush lifecycle events

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Isolate overlapping reporter watch cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation sink callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Align reporter completion with failure exit

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Complete shadow reporter parity coverage

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add feature-flagged operation event adapter

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation reporter stream edge cases

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation stream review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve reporter cycles across stream callbacks

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit registrations for collapsed iterations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation stream callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Forward daemon operation completion events

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Complete collapsed daemon operation cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Record Reporter operation forwarding release note

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Add direct Rush reporter demo path

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Harden reporter demo integration

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter demo review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter watch and lock handling

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix overlapping reporter watch cycles

Track explicit operation graph iteration identities across lifecycle events and isolate reporter totals, diagnostics, and output spools by watch cycle.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Redact secret human reporter messages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Finalize machine privacy and zero-work cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve iteration callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Protect secret logs and callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter rollback and reserved stream destinations

Apply emergency legacy selection before strict reporter validation, preserve custom command controls, and honor canonical stdout/stderr destinations without treating them as paths.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Expose scoped RushSession reporter producers

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit shadow Rush lifecycle events

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Isolate overlapping reporter watch cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation sink callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Align reporter completion with failure exit

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve reporter lifecycle across initialization and finalization failures

Create the root reporting context before repository setup, share correlated failure emission, and publish final completion only after telemetry hooks settle without changing native error handling.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Complete shadow reporter parity coverage

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Add feature-flagged operation event adapter

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation reporter stream edge cases

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix operation stream review findings

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve reporter cycles across stream callbacks

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Emit registrations for collapsed iterations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Keep operation stream callbacks compatible

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Forward daemon operation completion events

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Complete collapsed daemon operation cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Record Reporter operation forwarding release note

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Add direct Rush reporter demo path

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

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Harden reporter demo integration

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix reporter demo review findings

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

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Fix reporter watch and lock handling

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Fix overlapping reporter watch cycles

Track explicit operation graph iteration identities across lifecycle events and isolate reporter totals, diagnostics, and output spools by watch cycle.

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

Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Redact secret human reporter messages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Finalize machine privacy and zero-work cycles

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Preserve iteration callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Protect secret logs and callback compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e

* Adapt foundation regression coverage to restacked R5B

Preserve R5B emergency sanitization, file-primary stderr ownership, and typed-sink flush behavior while retaining the four foundation regression cases.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Lift shared human diagnostic formatting onto the R5B slice

Reporter-only subset of 1198341 for the posted presentation fixes. No Heft transport, demo, timers, output-observation guard, or manager drain changes are included.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Adapt bounded diagnostics and reliable writes to the owning R5B slice

Adapt a4cb979 onto staged R5B 06bc7c5 after the shared-only human formatter lift. Preserve original host/parser changes and exclude downstream timers, wasRendered filtering, protected drain, R7 transport and initializer disposal.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Adapt R7 transport and demo fixes to the owning PR

Replay only the remaining R7 subset of 1198341 after corrected R5B. Preserve Windows fallback/pipe behavior and add explicit local-version/baseEnv setup to the actual old driver. The real driver and descriptor/readability regressions pass without copying integrated files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Redact secret aliases from human diagnostic context

Prevent explicitly secret parameter values from reappearing through source labels, source paths or lower-classified template parameters. Preserve the original diagnostic and public context. The unchanged combined R8 corpus now passes all gates without AI, fixture or threshold changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* 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

* Refresh R5A operation reporting onto native-private trunk

Preserve operation stream/callback corrections and the owning forwarding consumer; reconcile native record/graph fields without changing scheduling or public contracts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Refresh corrected R5B reporters onto native-private trunk

Preserve the published diagnostics, UTF-8 writes, spooling, privacy, preview selection and operation-cycle fixes while reconciling native parser, watcher, and graph members.

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

* fix(rush): preserve discovery after malformed configuration

Address #5997 comment 3981283816 without emitting legacy discovery into explicitly owned reporter output.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* fix(rush): strip owned reporter controls from help

Address #5997 comment 3981283879 with selective help ownership, preserving custom values, rollback, and following flags. Exercise the real legacy help parser.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* test(reporter): preserve post-close artifact truthfulness

Document and guard the deliberately post-close completeness notification raised by #5997 comment 3981283923. Preserve production ordering and prove fsync/close failures never announce a complete artifact.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* fix(rush): retain unscoped output during operation deferral

Address #5996 comment 3981270424 by deferring only operation-scoped external chunks. Cover real adapter stdout/stderr and command-scoped output in JSON and detailed plaintext without duplicating collated operation output.

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

* fix(rush): preserve declared custom controls on help

Reproduce repository-opted-in custom/global and action help through the real frontend/parser. Use command definitions before interpreting reporter-shaped values, preserve mixed and unknown namespaces, and retain malformed configuration discovery guards.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* Preserve later full-log and root-help contracts in core staging

Remove only the propagation-added primary FileReporter filter: R5B's automatic full-detail log remains unfiltered at every selected level. Assert selected normal/debug independently from retained debug content. Distinguish no-action help from unknown-command ownership and cover both real root-help paths without changing owning refs.

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

* test(rush): join timed-out watch fixtures before teardown

Own the complete real watch test promise so Jest afterEach can cancel and join setup, parser execution, and finalization before releasing locks or resetting fixture files and mocks. Forward teardown cancellation only after production abort listeners are installed, and cover successful and failed finalization with deterministic gates.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* fix(reporter): validate negotiated Heft diagnostic identity

Require child diagnostic categories and supplied template keys to match the registered definition, preserving optional detail omission and severity overrides. Enforce positive safe integer source coordinates when present. Cover canonical controls and real accepted children that exit zero after sending forged identities or zero coordinates.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

* fix(reporter): redact forwarded secret aliases

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

Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10

Copilot-Session: 719d36bf-0fcf-419e-b464-844ddf140881

---------

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
Copilot-Session: 719d36bf-0fcf-419e-b464-844ddf140881
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Closed

Development

Successfully merging this pull request may close these issues.

3 participants