Repository navigation
test(ui-sdk): exercise literal /tmp regardless of runner TMPDIR - #2389
Conversation
|
2026-10-18: automatic main-push CI run 39082348526, attempt 1 passes all 15 selected jobs on squash Packaging is the sole planner-excluded job for this test-only change. Every selected category executes successfully, with no retained execution. The ten browser skips are the existing soft-keyboard cases excluded only from the fine-pointer project; all execute in coarse and mixed projects. The selected unit runs have zero failures or skips. This verifies the actual main integration independently of the earlier PR proof. #2387 remains closed, with milestone 0.44.0 preserved on the issue and PR. The separate Storage investigations remain open. |
Closes #2387
What changed
The native runtime-placement fixture now creates its inside-
/tmpruntime, alias and unrelated host sentinel beneath literal/tmp. Previously it usedtmpdir(), so a runner with relocatedTMPDIRtested a path outside the mount while asserting that the private/tmpmount hid it. The fixture now tests the namespace boundary named by its existing assertions.Why this shape
The launcher already overlays literal
/tmp; its bare mode intentionally retains the rest of the host read-only. Only the test path and its explanatory comment change, and the unused import is removed. All six launcher modes, inside/outside/alias controls, read-only runtime, hidden sentinel, worker isolation, exact allowance, capability, brain access, reserved-path and masked-alias assertions remain unchanged. No product policy or timeout changes.Proof
Clean candidate
2c3913504382ab54e97586f1fbfc26f87a442aff, tree6950afd2ff88c8bd5bca35be9755c92380fa3f17, based on main775eb17aab740fa759c2182f306c38fc17acbcbe. Linux, Bun 1.4.3, installed native bubblewrap, normal offline preload.TMPDIRbeneath/var/tmpproduces 3 pass / 1 fail / 95 assertions. The actual native matrix reachesOWNED_RUNTIME_DOES_NOT_EXPOSE_HOST_TMP: expectedhidden, receivedvisible. Identical source withTMPDIR=/tmppasses 4 tests / 253 assertions.TMPDIR(2.10 / 2.27 seconds).TMPDIR, the actual native matrix fails the same hidden-sentinel assertion (3 pass / 1 fail / 104 assertions). Restore the production launcher byte-for-byte; all 4 tests / 253 assertions pass again in 2.53 seconds. All commands remove their owned fixture directories.bun run check:pr --base origin/mainpasses on the clean committed candidate with relocatedTMPDIRin 21.40 seconds: lint/leakage/metadata/contribution gates, 73 fast tests / 592 assertions, and all 4 affected native tests / 253 assertions. No failures or skips. The command records the actual base775eb17aab740fa759c2182f306c38fc17acbcbe.Hosted confirmation
Automatic ready PR CI run 39081799475, attempt 1, passes every selected job: changeset 117540091959; verify 117540233468; unit shards 117540233477 / 117540233452 / 117540233458 / 117540233502; aggregate proof 117540964423. All seven actual checkout logs identify
bdf835777dd54f113471f95605039899e9a01c3d; immutable GitHub/local objects and the aggregate agree on parents775eb17aab740fa759c2182f306c38fc17acbcbe/2c3913504382ab54e97586f1fbfc26f87a442aff, tree6950afd2ff88c8bd5bca35be9755c92380fa3f17. Live main is still that tested base at verification.Unit (1) executes the actual native matrix successfully; strict types and all selected affected unit/integration proof pass. Packaging, browser/layout/captures/endurance and the separate runtime categories are planner-intended exclusions for this one test-file change, independently accepted by the successful aggregate. They are not represented as executed proof. The current head's contract gate passes on head checkout
2c3913504382ab54e97586f1fbfc26f87a442aff; its initial creation run was superseded by the label event.No consumer changeset: this changes one unshipped test file. No repository citation names a moved line in this fixture. The same-file audit finds and removes its sole configurable temporary-root assumption; the remaining
/tmpreferences already name the actual tested mount.Checklist
docs/reflect the change, or nothing documented moved.Anything left open
No remaining acceptance gap for #2387. The actual squash and automatic main-push proof are recorded below. The earlier Storage #2172 preflight remains failed until its own candidate is qualified with the correction; this isolated proof does not replace it. The distinct #2334 and #2380 investigations remain unresolved.
Automatic main-push confirmation
2026-10-18: automatic main-push CI run 39082348526, attempt 1 passes all 15 selected jobs on squash
68e12f27eb249c9fe7262a498a0397c04bbda8f4. Every selected job's actual checkout log and the aggregate identify that SHA. The immutable API/local object agree on parent775eb17aab740fa759c2182f306c38fc17acbcbeand tree6950afd2ff88c8bd5bca35be9755c92380fa3f17.Packaging is the sole planner-excluded job for this test-only change. Every selected category executes successfully, with no retained execution. The ten browser skips are the existing soft-keyboard cases excluded only from the fine-pointer project; all execute in coarse and mixed projects. The selected unit runs have zero failures or skips. This verifies the actual main integration independently of the earlier PR proof. #2387 remains closed, with milestone 0.44.0 preserved on the issue and PR. The separate Storage investigations remain open.