openclaw/scripts/tests
Peter Steinberger e694fa756e
fix: protect live Gateways sharing an update installation (#160663)
* fix(update): refuse publication over live managed consumers

* fix(launchd): distinguish native logging metadata from authored environment

* fix: preserve staged update failures and uncertain child inputs

* fix(update): retire untouched preparation after publication refusal

Use the retained publication owner to disarm and retire a known pre-effect refusal, allowing the next update to enter. Preserve recovery evidence on unknown cleanup or a foreign replacement, including both failure causes. Receive the real fence dependency into declaration fixtures without invalidating relocation cache identities, and keep legacy refusal assertions aligned with the all-artifact diagnostic.

* fix(update): keep activation journals out of retained runtimes

* fix(update): preserve service availability through publication

Check known shared consumers before stopping the selected Gateway and retain the publication recheck. Adopt delegated Doctor stops in common finalization, preserve partial-stop failures, and keep uncertain recovery fenced. Update the native-reader fixture and document maintenance restoration.

* fix(update): retain live launchd observations across plist moves

Keep the native loaded command and PID available for shared-install publication refusal when the discovered plist differs. Selected-service correspondence still requires the exact current definition and grants no control over the other job.

Four causal regressions, 252 sibling cases, receiving 24 cases, scoped types/lint and independent review passed. Native synthetic GUI jobs preserved loaded identity across mismatched queries, refused selected correspondence, and retired cleanly.

* test(update): load adoption owners in restart outcome fixture

Common finalization now calls predecessor adoption. Add that production owner and its legacy-stop predicate to the explicit VM module graph so the existing backup-retirement checks reach their intended paths.

Original 9 failures/10 passes become19/19 passes; the exact Vitest wrapper, scoped lint/format and independent review also pass. Existing assertions and deadlines are unchanged.
2026-09-29 07:50:21 +00:00
..
update-restart-module-outcome.mjs fix: protect live Gateways sharing an update installation (#160663) 2026-09-29 07:50:21 +00:00
update-restart-swap-fixture.mjs fix(test): load the staged swap target in the update restart fixture 2026-09-28 00:19:15 -07:00