Repository navigation
Conversation
Scope update recovery to stable service-home authority across worker, Node and Bun paths. Preserve stopped cold updates, require compatible inspection before delegation, and release recovery leases before caller exit. Document the recovery contract and add focused regression coverage.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Thanks @luvs01. Scoping update recovery to the service home that owns it fills a real gap, and the shared policy module is easy to follow. Two problems block it at
Repro: |
|
✅ Deterministic PR hygiene checks passed. |
|
The two regression points are addressed in Initial unknown service-home evidence now permits an otherwise-authorized package-only update while refusing service/tray control, repair, and restart. Changed authority and unresolved ownership/teardown still block replacement. The worker and child propagate restrictions in both directions, and the existing v1 probe remains compatible with old updaters through a separate package-only capability probe. The lease fixtures now declare service-home evidence without weakening their original stop/replacement/recovery assertions, and the stale source oracle is corrected. The final focused candidate run recorded 302 pass / 1 Windows skip / 1 fail (exit 1). The remaining sandboxed staged-update recovery failure also occurs on the recorded baseline: the history coordinator refuses an unsafe namespace. Our baseline two-file reproduction was 39 pass / 1 fail, rather than 40 pass / 0 fail; the preceding PR head added the ten regressions described in your report. The PR body records the exact command, successful static/docs checks, and coverage limits. Exact-head hosted CI is pending; full-suite and native service smoke are unverified, and the PR remains Draft. |
|
Recorded Bun 1.4.3 validation on the candidate:
Full suite, |
|
Being carried into #7215 with your authorship preserved; this PR will be closed when the bundle lands. |
|
Remote validation of the carry in #7215 found that this change fails 9 existing dev tests in tests/update/update-job.test.ts and tests/update/update-restart-lease.test.ts (it refuses an automatic service restart where dev expects the direct-start fallback). #7154 is held out of that bundle and stays open; the other carried PRs land without it. |
|
Recorded controlled comparison: baseline This reproduces and fixes 7 of the 9 reported failures, not all nine. Could you share the exact failing test names and logs for the remaining two so we can check them against this correction? Full-suite, native-platform, and maintainer-host reruns were not performed; the earlier staged-recovery sandbox failure was not rechecked. New-head hosted CI is not yet passing evidence, and the PR remains Draft. |
…remote-list RFC (#7186, #7203, #6157) (#7215) Carried from #7186, #7203, #6157 (one commit per source PR, original authors preserved). #7154 and #7184 held out. Remote exact-head validation (hosted GitHub Actions stalled; local tests not run by maintainer rule): union candidate codex/prr-integ-6 (368006f, tree 27fdc37) on mini (Windows) and lidge (Linux), typecheck + full suite, compared with base-dev 4ae4936 on each host. Co-authored-by: Epinephrine <luvs01@hanmail.net> Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
Summary
Verification
Published correction:
29f34140627d788676a0be51b37c740918949945; sole parent:aef76f43fc7593a37f9ad944eefcaf9b495b6453; tree:8f03a3a3a28add62eb1f1ed313285798f30f0f96. GitHub reports a valid Verified signature and authorluvs01. The 18-file correction matches the validated candidate, including every blob and mode (bin/ocx.mjsremains100755). Correction patch SHA256:0df594b99a4aee77087f92569d740c0697eb18cd4246d0d3e76f833a5f1d048f.Recorded candidate validation used official Bun 1.4.3. This is prepared-candidate evidence, not a claim that tests were rerun during publication.
Result: 302 passed, 1 skipped, 1 failed; 1683 assertions, 304 tests across 14 files; exit 1. The skip requires a native Windows directory junction. The failure is the sandboxed staged-update recovery case: the history coordinator refuses an unsafe namespace and aborts the fixture's stop. It also fails on baseline
7640a942b35044c974e534b84d5a8049f4a8ae9a; it is not counted as a pass or waived as a product guarantee.For the maintainer's two-file reproduction, the recorded baseline was 39 passed / 1 failed, while the preceding published HEAD was 29 passed / 11 failed. The ten additional failures were nine updater fixtures and the stale
const/letsource oracle. Focused subsets overlap the final run and are not added to its total.Additional final-candidate checks exited 0:
bun node_modules/typescript/bin/tsc --noEmit,bun scripts/privacy-scan.ts,bun scripts/file-size-ratchet.ts,bun scripts/structure-ssot.ts, andgit diff HEAD --check. The isolated documentation build completed with 577 pages and 81,200 internal links checked. The actual Node capability probe succeeded with a nonexistent Bun override; its extra-argument variant exited 2 without installing Bun or operating a service.The full suite and
test:changedwrapper were not run. Focused direct commands were used during concurrent isolated work to cover updater, lease, worker, home, Desktop, and source-oracle behavior without wrapper-driven installation. Broader exact-head hosted CI and maintainer/security review remain necessary. At publication, Cross-platform CI run 38730943337 was pending; Catalog run 38730943278 and React Doctor run 38730943201 were queued, all on this exact correction HEAD. No hosted pass is claimed.Tests used injected effects and sandbox fixtures. No live service manager, user installation, application, or provider was operated. Native macOS/Linux/Windows service smoke remains unverified. Already-running old Node parents require compatible guarded launchers for automatic delegation. Capability declarations trust installed files and do not attest tampering. Existing inspection timeout bounds are unchanged. Keep the PR in Draft pending assessment of the baseline failure, broader checks, and review.
Checklist