rushd: WS3/WS4 integration with Reporter prerequisites - #6018
rushd: WS3/WS4 integration with Reporter prerequisites#6018Sean Larkin (TheLarkInn) wants to merge 214 commits into
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
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
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
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
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Make the demo independent of inherited reporter controls, verify exclusive output destinations, and correct log-level, alias-position, and latest-log guidance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Validate non-public diagnostic codes against the registry, bucket unknown categories, and bound retained telemetry dimensions deterministically. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
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
Keep protocol metadata root-owned, gate mixed-privacy diagnostics, and bound producer attribution with trusted deterministic retention. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
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
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
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
Derive bounded producer retention priority from parent-session provenance instead of child-controlled package namespaces. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d6318e80-5da9-4858-a147-817e8692f10e
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
Address #6019 review 5154313653 with manager-owned synchronous failure handling, lifecycle cancellation, bounded cleanup and optional/required failure regressions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Address PR #6018 discussion 3968334854 with the verified WS3 correction. Resource cleanup failure is sticky across workspace admission and disposal, preventing endpoint release and successor startup while still draining the command error. Preserve ordinary failed mutation restarts and the independent engine cleanup correction. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Retain request-local terminal context and conservative pre-execution native TTY fallback, share graph admission budgets across generation preflight, and add bounded cancellable log following. Parent integration preserves cleanup-ownership fencing and passes the focused native/client regressions; a test-worker teardown warning remains under investigation before publication. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
…ilures 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
Address #5998 review 5154326282. Document the shell-wide preview selection and cleanup for individual examples while preserving the already-seeded integration driver. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Preserve rollback control ownership and reserved streams, initialize root reporting before fallible configuration, and finalize success only after public telemetry hooks settle. Keep current stream binding, bootstrap handling, native engine guards, typed-sink draining, and the already integrated daemon/client fixes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
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
Capture the listener owned by the injected workspace-cleanup failure test, preserve assertions that live ownership blocks restart, join client and host cleanup, and release the fixture listener last. This prevents the integrated WS3 sticky-ownership behavior from leaking a listening pipe into the Jest worker without weakening production ownership. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Cache one manager-owned close promise per registration, including rejection, and avoid flushing closed entries. Ensure disposal still closes attempted reporters when an earlier lifecycle action rejects. Preserve the host's existing eager FileReporter close and final-artifact sequencing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Classify additional reserved stdout outputs as machine-readable and explicitly reserved, retaining file-primary behavior and command-JSON passthrough when no reporter owns stdout. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
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
Add false-default repository activation and typed per-operation Node descriptors with raw argv, bounded implementation-tree invalidation, native NoOp/shard preservation, and measurable warm ranking. Keep watch-only IPC and native/rebuild defaults unchanged. Preserve streamed Unicode and reject missing IPC readiness without replay. Verified the unmocked public CLI on Linux and actual Windows, including measured telemetry versus LRU eviction, persistent PIDs, direct/inherited/rig reloads, output, cancellation, and ownership. No Reporter gates or parent-owned OperationGraph/parser files changed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Require separate repository and operation opt-ins, launch actual Node with raw argv, and retire bounded implementation trees through generation ownership. Preserve shell/rebuild/watch/shard defaults and non-cacheable IPC semantics. The composed public-client retention, invalidation, cancellation, protocol and ownership selections pass; original delivery also includes actual Windows production-CLI evidence. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Combine primary presentation head 7050e04 while retaining both attempted-initialization and abort-controller state. Exclude the competing 1926 shared-close implementation and its local prerequisite. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Forward the original startup failure into manager-owned disposal. Publish its memoized promise before abort listeners run, synchronously cancel every attempted entry with an Error reason, then join serialized once-only cleanup while retaining AggregateError reporting. Preserve normal-close null reasons and the eager full-detail-file artifact sequence. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Redact source tool/file labels that duplicate explicitly secret parameter values while preserving unrelated local-sensitive details. Restore the strict combined R8 privacy gate without changing fixtures, thresholds, or comparison baselines. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Cover both sequential close/disposal orders with synchronous rejected-close caching and verify optional runtime failures remain abort-only until normal shutdown. Existing blocked-lifecycle, concurrent cleanup, unstarted-entry and original-error regressions remain intact. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Move redirected Windows follow output through a bounded acknowledged output-only process, keeping the CLI event loop and log-file cleanup independent of blocked stdout. Join the writer on cancellation and handle parent loss without orphaning it. Preserve snapshots, file redirection and explicit I/O failures; verify actual Windows 24 and 26 signal-handler delivery and unchanged cancellation deadlines. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Combine bootstrap disposal and retention, truthful AI qualification, diagnostic and spool fixes, Heft transport behavior, and local demo selection. Preserve the minimal shared close cache, serialized lifecycle, original startup failure, and synchronous cancellation without the competing runtime-close implementation or local fixture histories. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
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
Use the same secret-alias formatter and regressions as the corrected owning PRs, retaining shared initialization cleanup and current daemon behavior. Final local validation passes the full Reporter functional/performance suite, frontend/client/SDK/protocol suites and affected native/daemon selections; all strict AI qualification gates remain unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Test-only follow-up on parent-selected 4822a34. Preserve all seven dbdca alias regressions and add the non-subsumed boundary case for an unrelated private-looking absolute path/tool alongside a secret token. The helper remains byte-identical to published core. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Capture the Linux writer identity before owner death and use bounded process/resource inspection instead of treating kill(pid, 0) as exit proof. Keep the original three-second deadline and watchdog through verification, recognize resource-free zombies, and avoid following or signalling a reused PID. Add focused helper tests; production cancellation is unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Keep actual raw-byte measurements and all quality budgets unchanged. Drop only an unrendered metadata-only start acknowledgement superseded by the completed result; preserve every final field, supplied log reference, active-command status and ordered watch history. Align the three-pass file-backed qualification setup hook with the existing bounded 15-second integration allowance, without changing production deadlines or individual quality gates. Verified on actual Windows Node 24.11.1 and 26.7.0 plus Linux: the raw Windows legacy ratio falls from 51.4593 percent to 48.1435 percent, with final records and both baselines unchanged; 67 focused output/qualification/performance tests pass per platform. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Select roles from measured scores and calculate a bounded cache-hit plan that establishes strict opposite recency without executing unchanged work. Use real timed pressure work and a one-shot live RSS allocation barrier so delayed sampling and Windows startup variance cannot choose the expected winner. Keep production scoring, the 512 MiB budget, the 60-second test limit, and exact child/watcher retention assertions unchanged. Verified four retention cases on Linux22 and actual Windows24/26, plus the other twelve public IPC cases. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Integrate main 968beba (#5941) while retaining reporter discovery/version metadata, lifetime-owned listener release, atomic lease downgrades, fail-closed host cleanup and restart, streaming UTF-8 decoding, stderr routing, newline fidelity and shared operation headers. Resolve the seven conflicts and the auto-merged version-selector reference with native private members; keep strict lint and public behavior intact. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
Merge main 67ca939 (#5939) into f338af9, retaining the inherited #5941 tooling synchronization and all reviewed followups. Reconcile twelve conflicted files and auto-merged accesses with native private declarations. Preserve early reporter ownership and late telemetry failures, generation-safe native execution, explicit Node IPC/raw argv/UTF-8/readiness, awaited resource ownership, and unexpected or empty AggregateError cleanup handling. Keep RushSession's encapsulated WeakMap facade state rather than adding incompatible private brands, and retain existing integration helpers instead of superseded inline paths. Adapt representation-dependent tests to real constructors, public hooks, gated close/join behavior and observable detached-record semantics. Validation: full rush-lib 971, frontend 128, targeted daemon 115, public client 125, renderer 13 and SDK 6 tests; build, types, API review, rush check and change verification passed. No gates, defaults or test deadlines changed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4747f826-8c83-495d-80df-3d1168662e10
|
Final review/fix handoff: all14 logical-stack PRs were reviewed against their linked issues, and all23 review findings were posted before their fixes, corrected on the owning PRs, verified, and resolved. The bounded upstream reconciliation is now published at 111aa48, including main67ca939091. CI34407038542 passed all six complete platform workflows, including both Windows runtimes, package-manager integration, README verification, second-checkout tests and repeated-cache checks. Current-head CodeQL and CLA also pass; no unresolved review threads remain. The original output, privacy, actionability, memory/performance and cancellation gates were preserved. Scope limits remain documented: explicit opt-in Node IPC is unsharded/non-cacheable with a bounded implementation tree; ownership-unverifiable handoffs stay protected; no default-selection or full-epic cutover is claimed. This is not an independent approval, PR merge or npm release. Required maintainer/code-owner approval, dependency-ordered landing, and retargeting #6019 away from its temporary review baseline remain separate gates. |
Purpose
Implementation for #5894, focused on WS3 (#5898) and WS4 (#5899), with the Reporter prerequisites from #5858.
Tracks #5898 and #5899. The reviewed correction checkpoint has passed hosted validation; issue closure and merging remain subject to maintainer acceptance of the documented scope and subsequent upstream reconciliation.
Acceptance review status
A fresh review of all 14 PRs identified 23 actionable findings, posted on their owning PRs before fixes. Correction commits are now published on their owning Reporter PRs and integrated here at
f338af94aa563b93690720c2e226e8cfb6346bdf. This includes unexpected aggregate cleanup failures, sticky mutation-worker ownership, client terminal/admission/log-follow behavior, real opt-in production telemetry, and the Reporter foundation, presentation, bootstrap, Heft, qualification and documentation corrections.All 16 Reporter component/follow-up findings have passed corrected-head six-platform validation and are resolved. #5991's single investigated unchanged-benchmark retry passed without a source or threshold change. #5999's actual Windows output correction is published at
f637c707c5; its first new-head run34390898209passed all six complete workflows. The original Windows ratio failure and setup-timeout evidence remain recorded rather than being relabeled as passes.All 23 review findings are now fixed, published, verified and resolved. The seven integration findings passed CI
34396595826onf338af94aa, with all six complete workflows, CodeQL and CLA successful. This head includes the actual-platform follow-ups andmain@968beba488from #5941. Independent component reviews and merge/release gates remain separate.Upstream subsequently advanced to
main@67ca939091(#5939, rush-lib native-private members) while that matrix was running. Its bounded reconciliation is published as111aa48943811a873e600b178d029a138628fd7f, with parentsf338af94aaand67ca939091. That exact head has now also passed all six complete workflows in CI34407038542, plus CodeQL and CLA. No prior checkpoint result is substituted for the current-head result.The existing
rushandrushxdefaults are unchanged. The separaterush-clientandrushx-clientbinaries remain opt-in. This does not perform the Rush 6 cutover or close the full epic.Implemented
build/rebuildexecution and real Rushx package scripts, with immutable request inputs, byte-preserving global streams, stdin credits/EOF, cancellation, queue controls, and fail-closed no-replay behavior.daemon.watch, and live generation/reload/resource status without initializing a cold graph.Reporter dependency stack
This branch preserves all original Reporter branch histories. Their changes remain in this diff until the existing PR stack lands; this integration PR is not a substitute for reviewing that stack.
R9 (#5982), R11 (#5984), and WS5 (#5900) remain subject to their actual review, compatibility, and release/ecosystem gates. No legacy-removal or default-selection gate is bypassed.
The Reporter stack has been restacked onto
main@77abfe24with guarded pushes and preserved backup refs. The scoped follow-up fixes are in #6019. Independent approval and dependency-ordered landing remain separate from this integration PR.This PR is ready for review. Independent approval and the Reporter prerequisite landing order still apply before merge; the opt-in clients do not require the later default-selection cutover.
Windows correction batch
LockFileWindows implementation now uses actual kernel exclusive sharing instead of assuming exclusive creation remains exclusive after opening. A dirty companion preserves interrupted-owner state across close/delete handoffs. This correction applies to all WindowsLockFileconsumers, not only the daemon; no native addon or dependency is added.rush purgeretains its own active repository lock and Windows dirty companion while removing other temporary files. The regression verifies that purging does not delete live ownership or bypass the mutex.Pathvalues. Startup handoff treats sharing-denied ownership reads as unknown, not released, and retries only within the existing deadline. Owned child resources are joined before bounded Windows fixture cleanup.cmd.exeto forward the descriptor. Graph CLI scenarios are separated, Windows cancellation exercises the actual CLI signal handler, and graph reload setup is separated from its assertions. Production startup deadlines and no-replay rules are unchanged.core.autocrlf=falselocally so host-global Windows settings do not produce LF-to-CRLF warnings. User Git settings and CI warnings-as-errors are unchanged. The real native graph suite uses an explicit 15-second integration budget after repeated setup timeouts, without changing assertions, cleanup limits, or production deadlines.ps --sid, never resends signals while waiting, and surfaces inspection/timeout failures.Current correction validation
Current verified head:
111aa48943811a873e600b178d029a138628fd7f. Current CI:34407038542, SUCCESS. All six platform jobs passed the complete build/test, package-manager, README, second-checkout and repeated-cache stages, with current-head CodeQL and CLA also successful. All review threads are resolved; independent maintainer approval and dependency-ordered landing remain outstanding.The bounded rush-lib reconciliation resolves 41 conflict hunks across 12 files and checks 658 incoming native-private members, with no stale converted accesses. It retains the WeakMap-backed scoped RushSession facade state, all reviewed lifecycle/ownership behavior, public APIs, thresholds and deadlines. Local validation includes the full 971-case Rush-lib suite plus frontend, daemon, public client, renderer and SDK checks. The parent independently reran 522 coupled/full-package cases; these counts overlap and are not summed as distinct coverage.
Verified review checkpoint:
f338af94aa563b93690720c2e226e8cfb6346bdf. Hosted CI:34396595826, SUCCESS. All six platform jobs completed the full build/test, package-manager, README, second-checkout and repeated-cache stages; that exact head's CodeQL and CLA also passed. Separate local affected-package selections report 1,177 passes and no failures: 465 Reporter functional/performance, 128 frontend, 192 standalone-client, 357 daemon, 22 transport and 13 terminal-renderer cases. The daemon runner reported 358 total cases with one not executed. The local selections are not substituted for the completed hosted matrix.The exact built local AI corpus passes all unchanged gates: 45.8605% of legacy bytes, 43.4462% of plaintext bytes, 100% actionability/privacy/full-log/determinism, and a 34,100-byte maximum invocation boundary against 65,536 bytes. Actual Windows 24 and 26 measure 48.1435% of legacy bytes and pass the same gates. Only already-superseded, unrendered metadata-only start acknowledgements are coalesced; final fields, supplied log paths, active status and watch order remain intact. All 13 comparison fixtures, both baselines, the 3% wall-time gate and the 32 MiB gate are unchanged.
The production telemetry path has real public-CLI evidence on Linux and Windows: persistent PIDs and positive measured RSS/timing, independently calculated scores, opposite score/recency order, and different actual eviction under telemetry versus LRU, including joined child/watcher cleanup. The final retention fixture selects roles from actual measurements and computes at most three unchanged public requests to establish strict opposite order without additional script execution. Real pressure work uses a one-shot live RSS barrier rather than a stale allocation estimate. Both Windows 24 and 26 also prove the reversed-label case. Production scoring, the 512 MiB test budget, the 60-second test limit and exact winner/closure assertions are unchanged; no runner, clock or RSS injection supplies the evidence.
CI
34360232913on the preceding36d3889452head passed all four Linux configurations but exposed Windows log-follow cancellation behind blocked stdout. The correction now uses a bounded, acknowledged, output-only process for redirected Windows following, keeping the CLI responsive and joining the writer before exit 130. The actual Linux, Windows 24 and Windows 26 selections each pass 16 cases, including the unchanged watchdog, real handler delivery, broken pipes, file redirection and parent-loss cleanup. The CLI itself is not watchdog-killed or relabeled as a successful cancellation.The retained-ownership fixture closes its captured listener only after joining cleanup. The output-writer owner-loss fixture now checks captured process identity and executable/resource exit within its original three-second deadline, instead of treating PID existence as liveness. A controlled Linux subreaper reproduced the old assertion failure with a resource-free zombie; the CI logs alone did not establish that state. The fix rejects live writers or retained descriptor tables and avoids following a reused PID. Production cancellation and fail-closed ownership remain unchanged.
The latest upstream private-member refactor introduced seven textual conflicts plus one auto-merged stale version-field reference. Their reconciliation retains reporter opt-in/temp-folder metadata, lifetime-owned listener release, atomic lease downgrades, failed-cleanup ownership, restart completion, streaming UTF-8 decoding, stderr/newline fidelity and shared operation headers while adopting native private members. Strict package lint rules were not suppressed or weakened.
Historical green baseline
Hosted regression acceptance passed on
7d503052a5162a572504dc4143058320cbfdd0d9, run34288591055. This integratesmain@78b650d6(the upstream Heft/core native-private-member refactors). The three Heft conflicts were resolved without dropping negotiated child reporting or scoped diagnostic accounting.The results below belong only to that earlier main-synchronization head, not the current correction head. The previous accepted baseline,
ba5753a9f146325deccb49e5aea485c6ba5aa3e2/ run34217211265, remains recorded separately.Every job on the historical
7d503052a5baseline completed the full repository build/test run, package-manager integration, generated README verification, second-checkout update/build/test, and repeated build-cache verification. CodeQL and license/CLA also passed on that exact head.Coverage includes actual CLI install/update, native coexistence, same-PID reloads, new-PID successors, startup-client death, ownership failures, graph-token races, real warm policies, ordinary CLI status, native Windows mutex/purge behavior, and exact Rushx parity through physical paths and 8.3 aliases.
All blocking Reporter qualification and performance gates remain enforced. Earlier failure logs and diagnostic observations are retained separately; the historical green run used committed test budgets and the full workflow, without temporary diagnostic overrides or relaxed quality thresholds. It does not replace the fresh acceptance findings or the new correction-head checks.
The opt-in registry integration also exercised a genuine published foreign-engine installation and runtime/protocol attestation. Incompatible installed engines are refused rather than relabeled as supported.
Deliberate safety boundaries
daemon.usePersistentIpcRunnersand a per-operationdaemonIpcdescriptor. It supports unsharded incremental operations, uses raw argv without shell reinterpretation, and remains non-cacheable. Rebuild, native NoOp/missing-script behavior, preassigned shards and existing watch-only IPC behavior are preserved.daemon.watchcontrols host project observation, not autonomous script execution or native Rush watch mode.