test(update): re-pin launcher invariants to the transactional install contract - #2081
Merged
Conversation
… contract #2079 replaced the direct global npm install spawn with the staged transactionalNpmUpdate call, breaking three source-invariant pins that anchored on the removed spawn line (dev-head CI run 32204396229). The invariants themselves still hold — stop precedes the destructive step, the history-restore warning precedes it, and every npm spawn goes through the hardened npmInvocation resolver — so the pins now anchor on the transactional call and the runNpm callback's invocation spawn.
Contributor
|
✅ Deterministic PR hygiene checks passed. |
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix-forward for the red dev-head CI (run 32204396229) introduced by #2079: three source-invariant tests anchored on the removed direct
npm install -gspawn line. The invariants themselves still hold on the new transactional path — the proxy stop precedes the destructive step, the history-restore warning precedes it, and every npm spawn resolves through the hardenednpmInvocation— so the pins now anchor ontransactionalNpmUpdate({and therunNpmcallback'sspawnSync(invocation.file, invocation.args.Verification
bun test tests/update-stop-first.test.ts tests/ocx-launcher-source.test.ts tests/update-transactional.test.ts— 30 pass / 0 fail (was 3 fail on dev head)bun test tests/update-job.test.ts tests/install-scripts.test.ts— 63 pass / 0 fail (adjacent pins unaffected)Checklist