Repository navigation
test(ci): qualify browser retention and snapshot fault ownership - #2293
Conversation
…ut-binding-resume # Conflicts: # tests/workspace-lease.test.ts
…26-native-input-binding-resume
…26-native-input-binding-resume
|
Current voice adapter confirmation run 39023395726 at head Unit (3), job Unit (4), job Resume #2070 by incorporating the delivered restart repair and #2293 after it lands, verifying both named failures and the voice contracts, then requesting current selected confirmation. Keep the diagram proof correction with its existing owner; no gate weakening or unchanged failing-job rerun is proposed. |
|
Delivered by merged PR #2293 at squash #2126/#2190/#2340/#2355 close through the PR. PR and all completed/advanced issues, including already-completed #1837, read back at 0.44.0 after closure. Automatic main-push CI 39068036318 has started; its full result is pending and separate from the successful PR experiment. No push to the merged branch or manual dispatch follows. |
Closes #2126. Closes #2190. Refs #1837. Closes #2340. Closes #2355.
Browser proof must execute fresh while its native producer has ambient filesystem inputs, installed inputs differ, or its Worker audit is stale. This change qualifies the complete selected browser domain for guarded same-PR retention: the native SVG/PNG/PDF producer runs in a separate network-disabled, read-only container with only private source, copied dependencies, captured Bun and an initially empty output directory. Browser consumers validate and write the captured artifact bytes. Execution bootstrap acquires and verifies the canonical RepoDigest; metadata lookup and native execution never pull.
The canonical image parser is side-effect-free and shared by current capture verification, historical cost refresh and the real workspace-lease execution consumer. Unknown ownership, computed bindings and competing named exports refuse. Historical runner, producer and package declarations come from the same immutable checkout; legacy provenance keeps its original execution identity. No compatibility image tag or additional authority is introduced.
The candidate incorporates delivered main PR #2352: ordinary compilation when build inputs are unqualified, bounded callout cases that drain their entire owned work, async React teardown, and the auth-snapshot fixture correction. Conflict resolution preserves this PR's exact document guards, producer pins and repeat-observer fixture copies. The native inputs remain unchanged. No new native, capture or broad local execution is claimed for the final auth-only integration.
Frozen candidate and qualification
ca8b4e0dc814ade2eaaa178f08d45a2942e9c8b257a12a415f07188fb1d3d4c8658d435d7994a9bf2a0b77f675da2f01c32adba3f4920650a5ee09fa795abd5839096c4c451db7ff42ea5264b3ad7652439f8c927858505708a597b5e8502b6ffb3c575f2e9a1c93dea8dbf5ceda93ece367da9d542cb10b1c9ac32b0c2758c046f2b69d5f33b66521baf3098db5f44256b73ec96961c98d381e6245bf65590d9d594d238c2c7b6e01e038a26402a676ccf16a1caf596f1179bdc9fbThe selected browser domain is 309 project/file pairs from 374 discovered pairs, with 231/78 partitions and 2,295 closure files. The Chromium/WebKit callout pairs retain all original geometry, source/index, column and capture obligations under the existing 15-second budget. Layout remains a separate fresh category. The enforced PDF Worker exception remains the sole unresolved input; no additional unknown is waived.
The complete installation comparison found exactly 220 file-mode differences between the earlier local and hosted copies, with identical paths and content. A fresh private copy normalized only those observed modes and then matched the complete hosted installation identity. Actual offline native SVG, 1440×1176 PNG and one-page PDF with both expected fonts passed on that installation/runtime. Original installation and shared cache remain untouched. Cause and full comparison, private-copy qualification.
The delivered callout/build source changes were explicitly reviewed in the Worker material. Directory, external and native identities remain equal; stale audit admission refuses before the new qualification. The main integration changes only two auth-fixture blobs relative to the prepared candidate; the later #2355 correction changes only the device-local runtime test. These paths are outside the qualified browser material. The final complete offline Inputs deeply equal both actual successful AE7 browser receipts at fingerprint
23c4b733169e118ff5a12944c8505a856ccc9f33b141d78021365e1764008f56under the copied prior hosted runner label. This final source comparison is an offline projection; the distinct actual hosted baseline and prior failed retained follow-up are described below.Source-bound validation
a42f807e2d2b4411c59aa3e0d7b4a02bee55f5d0: 956 fast tests / 6,328 assertions and 584 feedback tests / 7,679 assertions. That receipt is preserved with its actual source, not relabeled as a new run.b03e6550688723f644b5efc4b97d243c832963a0passes 31 focused tests / 285 assertions and strict types. The reviewed audit update passes eight tests / 34 assertions at762fe6e0cc06c2ba33235ddd345e82050b032ef0; final main integrationae7dfacc2cbae1936083638d8665844c970175f9passes those eight tests / 34 assertions and strict types. No broad refresh follows the auth-only delta.8d6dcb0bfd62980183180c600dc3f9b48b386a8fcovers the exact native e850 source with unchanged installation/runtime. Later projections establish unchanged native inputs without claiming another execution.735cf331e9e833871e136e430110456f62e41a60.Actual hosted experiment
Historical CI 39045731249 remains FAILED and ineligible: checkout
9c13dc97540b8529f5d3e257b67e077cb0222bd8, tree34fa110a1d081ea3ecf1e0292c9483dd2c162ff8, fourteen successful jobs plus browser (1) and aggregate failures. Browser (1) failed only the two old WebKit callout deadlines; the aggregate independently rejected the moved live base. Both browser shards admitted equal complete Inputs, but that did not establish whole-workflow eligibility. The delivered #2352 repairs resolve the concrete callout/teardown/auth blockers; their separate successful workflow is not this PR's baseline.Earlier parser/bootstrap/installation failures and cheap draft feedback remain separately attributed in #2126. Successful project-sync or cheap metadata is never CI confirmation. No failed, cancelled, incomplete or retained/skipped chain can authorize this experiment.
Fresh baseline CI 39056975850, attempt 1, completed SUCCESS with all sixteen jobs successful on head
ae7dfacc2cbae1936083638d8665844c970175f9. Actual synthetic checkoutaee687a092f8ec6dfc1c29e3914de3cc6a63b4b8, tree941c4c70c6ec28a1a19809e423aa192eca0a124a, has exact parents delivered main2a0b77f675da2f01c32adba3f4920650a5ee09faand that head. Both fresh browser jobs/checks (117467084915/117467084914) emit deeply equal complete Inputs at fingerprint23c4b733169e118ff5a12944c8505a856ccc9f33b141d78021365e1764008f56. Artifact API digests and ZIP CRCs match; all 309 browser project/file pairs execute exactly once (9,050 passed cases, ten existing pointer skips, no unhandled errors). All 1,075 unit files execute exactly once across eight private workers (14,540 passed cases, 28 existing explicit skips, no TODOs). The aggregate independently passes the complete selected membership.The historical
62fb9b368c64f55020ca205195c4b551ee39604afollow-up adds only the held seven-linedocs/process/testing.mdcontrol. Its scoped preflight passes with no affected runtime tests. The entire complete Inputs object deeply equals the actual successful baseline, and the nominal confirmation plan remains global with browser and every other category selected. Actual follow-up CI 39058613916, attempt 1, validates browser retention from that exact baseline and intentionally skips fresh browser execution while browser remains selected. Its current checkout ise80759902c18e0c64a345f842fcf6a18bd8709d3, with exact main/head parents and treefab3768222f8fc0848f461de6d25bb54c9824250. The entire complete Inputs object matches the actual baseline; the escaped ledger is 61,909 bytes. The independent aggregate reaches its selected-unit check after retained-domain revalidation, then correctly rejects the failed unit category. The workflow is FAILURE: twelve successful jobs, one validated browser skip, and unit (4) plus aggregate failures. The sole native assertion failure islocal-work-runtime.test.ts:515, immediate failed status after the expected AbortError (expected true, received false), tracked in #2355. Its original source/artifact and successful categories are preserved; no retry, complete-cycle success or merge is claimed. Browser retention never authorizes skipping unit, packaging, types, captures, runtime or endurance obligations; layout remains fresh.Corrected confirmation candidate
The #2355 repair addresses the concrete failing test without changing product status behavior. The original abort fixture restored its IndexedDB methods before checking failure and persisted data. A queued autosave could then commit successfully and correctly clear that failure. An actual native transaction trace plus a controlled queued-autosave completion reproduces the original immediate status assertion (the AbortError assertion passes). This is causal interleaving evidence; the raw failed hosted scheduling trace was not retained.
The fixture now keeps its records/readwrite abort fault through all original observations, restores complete property descriptors, and drains its owned native transaction cohort on success and failure. The existing 500 ms open-transaction check, immediate AbortError/status/disk assertions, two-tab release behavior and 120/180-second budgets remain. A genuine later autosave exercises the added guard. Omitting only that guard fails
ABORTED_SNAPSHOT_REJECTS_QUEUED_RECOVERY(expected true, received false); exact restoration passes all seven containing tests / 86 assertions. A separate early-body failure retains its named original error while proving one held transaction settled and all descriptors restored; that intentionally failed test is cleanup evidence, not green test evidence.Direct child
d0a65205db16fc05486e6a0cf46ef61650a6ca6fchanges onlypackages/ui-react/tests/local-work-runtime.test.ts. Strict types pass. Required scoped preflight against the already-tested parent62fb9b3passes 54 fast tests / 181 assertions and the exact one-file feedback selection (seven native tests / 86 assertions), including lint/env/changeset gates. The earlier broad and hosted receipts retain their source identities; no unrelated broad refresh is claimed. The coordinator independently reviewed the entire one-file diff and deeply compared every complete browser Inputs field with the successful baseline: fingerprint, runner, inventory, partitions and native source/installation/runtime all remain equal. Corrected fresh CI 39062246171, attempt 1, now passes all sixteen jobs, including the independent aggregate. Every actual job checks oute84e683b01b9cd4a01f3195d36e6f01942dce42a, tree6fb1e0e35a2751b15cb897ab3baf0d712cfdba57, with exact parents main2a0b77f675da2f01c32adba3f4920650a5ee09faand corrected headd0a65205db16fc05486e6a0cf46ef61650a6ca6f. Both browser shards execute fresh, with complete Inputs deeply equal at23c4b733169e118ff5a12944c8505a856ccc9f33b141d78021365e1764008f56. All 309 browser pairs execute exactly once (9,050 passes, ten existing skips, no unhandled errors); all 1,075 unit files execute exactly once across eight private workers (14,540 passes, 28 existing skips, no failures or TODOs), including all seven corrected device-local runtime cases. Actual artifact API digests, ZIP CRCs, discovery membership and aggregate validation pass. This is the corrected eligible fresh baseline; no retention or savings occurred in this run. The three-run bounded lookup correctly missed the older baseline after intervening cheap draft runs; its limit is unchanged.Current direct child
ca8b4e0dc814ade2eaaa178f08d45a2942e9c8b2adds only five documentation lines recording the persistence fault-fixture rule. Scoped preflight against the successful parent passes, with the explicit no-affected-tests result. Every complete browser Inputs field deeply equals the actual corrected baseline. This meaningful documentation follow-up will request one candidate confirmation within the existing lookup budget; its hosted retention and whole-workflow result are pending.The final cost audit separates avoided fresh browser runner consumption from event elapsed time. Corrected fresh baseline 39062246171 spends 1,729 job seconds on its two browser jobs (1,623.261 seconds inside proof commands); its aggregate job takes 25 seconds, including four seconds validating proof, and event-to-final-job time is 1,220 seconds. Historical failed retained follow-up 39058613916 avoided its equivalent-source 1,712 browser job seconds, but its stopped unit worker and failed aggregate cannot establish a completed green cycle or critical-path improvement. The current documentation follow-up remains pending. No completed green retention cycle or merge is claimed.
This PR changes proof infrastructure only, with no shipped package or consumer contract change and no changeset. PR #2293 and issues #2126/#2190/#2340/#2355/#1837 retain release 0.44.0. #2126/#2190 remain open until the complete successful retention cycle is established; #2355 is fixed and qualified but remains open pending delivery; #1837 retains its separately completed attribution result. Main, scheduled and manual runs keep fresh-execution obligations.
Completed cycle and merge assessment
Completed controlled retention cycle (2026-10-17): CI 39063935324, attempt 1, is SUCCESS at head
ca8b4e0dc814ade2eaaa178f08d45a2942e9c8b2. All fourteen executed jobs pass; browser remains selected and intentionally retained. Every actual execution job checks out1ae6164542ba50d19d4a8439ece88ff92ffce3b0, tree57a12a415f07188fb1d3d4c8658d435d7994a9bf, with exact parents main2a0b77f675da2f01c32adba3f4920650a5ee09faand that head. The aggregate independently validates complete equal browser Inputs and original source run39062246171/attempt1/jobs117482652349+117482652319. Retained jobs keep their original checkout identity and are not executions on the follow-up. Digest/CRC-verified current unit artifacts reconcile all 1,075 files exactly once across eight private workers: 14,540 passes, 28 existing explicit skips, zero TODOs. The fresh baseline covers all 309 browser pairs, 9,050 passes, ten existing pointer skips and no unhandled errors. Layout, captures, endurance, both native runtime categories, packaging, types and units execute fresh and pass.The completed experiment avoids 1,729 equivalent-source browser job seconds (1,623.261 proof-command seconds); lookup costs 27.290 seconds. Follow-up aggregate validation takes 43 seconds (60-second job), versus four seconds (25-second job) at baseline. Event-to-last-job elapsed is 1,253 seconds versus 1,220 seconds. This proves reduced browser runner consumption, with no elapsed-time improvement claimed. Prior failed workflows retain their original conclusions.
Live main subsequently advances only by
5c670c6f93842717c9a3723606ebcbd7aa52406f, fourteen documentation lines in AGENTS.md and docs/process/github.md requiring blocker priority inheritance. These do not change any runtime, workflow, proof input or selected test. The maintainer explicitly permits merging after one successful complete proof without full refreshes for such movement. The tested base/tree above remains unchanged in this evidence; actual squash parent/tree and scoped postmerge checks will be reconciled separately. Release 0.44.0 remains assigned to this PR and every completed or advanced issue.