ReviewOS

home-lang/home

Bun parity: remaining open items to reach 100% test-suite pass

#66
Open chris opened this 14 days ago · 1753 comments
14 days ago

Native Bake full-suite checkpoint: source ccecdcf9b and 1,185 Git-verified evidence artifacts. All 24 unchanged Bake files pass 177 cases with zero failures/zero skips and two original TODOs; native output, exact identities and source inventory validate. Genuine frozen Home locks replace the empty React marker. The suite budget preserves per-test deadlines; spawned fixture cwd and production source-map retrieval are repaired. Canonical graph identities fix changed-dependency path aliases. Coordinator controls retain 29 complete journals; development/HMR/production pass. The fresh 157-file regression has 396 passing cases, 142 process checks, zero failures, 37 case skips and three file skips. Build, validators, ABI, lint and corpus integrity pass. The initial 175-pass/two-failure run remains retained. #902 is complete for this tranche; #901 keeps optimized native/platform gates and #564 keeps Linux TODO coverage. TODOs/skips receive zero pass credit. The full Bun feature/suite/all-platform objective remains open.

Tracking issue for the remaining work to reach 100% parity with Bun's official test suite (~/Code/bun; current native artifact source SHA 4982b91e3702094330f3be3883354c52b8c01323, original historical pin fd0b6f1a27), runnable here via home test. Each item has the root cause traced during investigation. We tackle them top-to-bottom; check off as landed (small fix:/feat: commits, pushed).

Current main checkpoint (2026-10-13)

Native console methods, buffered replay and cleared-realm lifetime (2026-10-13) landed in source 56df99d7f, merged integration be4364972, and verified evidence de6aea239. Canonical SDK records provide count/reset, typed timeLog/timeEnd and per-session buffered replay with actual stacks/timestamps. Owner attachment differs from VM console state; Runtime.disable suppresses notifications while preserving connected state. groupEnd/clear arguments match the native contract. Clearing the buffer and remote group now retires idle realm injected-script roots; actual still-bound handles, pending calls and paused debugger state prevent retirement. Unrelated object handles and an in-flight async call remain usable. Last frontend detach retires injected-script state, and the non-owning console registry retires across finalization threads. Both source and merged builds pass 56/56 steps; fresh merged validation passes all nine focused commands, six broad drivers, 33 native groups, seven Node/seven Home realm controls, 14 ABI tests/453 assertions and 32 report-validator tests. All 64 report outcomes match expected counts/errors/exits, including twelve negatives. Twenty unchanged originals retain 53 passed cases, one unchanged unsupported-method expectation failure and 17 passed process checks, with zero skips/TODO/filter/retries; #886 receives no pass credit. Failed Node oracle assumptions, the Home post-clear lifetime failure and resource stops remain immutable; temporary tracing is removed. Full schema, independent remote-object/session ownership, evaluated-realm retirement outside explicit console clearing, module/export/callback/owner-shutdown acceptance and full suite/platform validation remain open under #888/#428/#885/#66.

Native profiler sharing at 5cd57e8ea with verified evidence: CLI and inspector owners consume actual JSC samples through detached native records, preserving CLI JSON/Markdown history and independent repeated session windows. Shortest active owner interval is selected; session stop/disconnect preserves CLI profiling and active-session process exit exports successfully. Debug 56/56, all 28 native groups, 14 ABI controls/453 assertions and 32 report-validator controls pass. Twenty unchanged originals retain 53 passed cases, one failed unsupported Runtime.evaluate expectation and 17 process checks; no skips/TODO/filter/retries and no #886 pass credit. Evidence preserves the first inlined-workload assertion failure and 64 replayed report outcomes including 12 negatives; earlier eight resource stops remain in investigation evidence. Full Bun parity, complete realms, worker-to-main inspector attachment, coverage, precise cadence measurement, all ownership schedules, Release/ASAN/all-platform remain open under #428/#66.

Historical publication checkpoint (2026-09-20)

Native phase/context work landed in 64481fe09 with evidence publication b83c54f4d. Vendor checkout and install/build became separately verified phases, with revision checks before hooks and live remap/Docker settings carried into children. The build passed 23/23 steps and 21/21 harness tests, plus launcher, service/lifetime and validator controls. Fresh pinned Elysia setup matched all 283 expected source hashes; all 129 selected original files completed once with 1,516 registered passes, zero failures/skips/TODOs, retaining the one original WebSocket exclusion. This checkpoint did not claim complete primary execution, Linux Docker verification, or full parity. Boundary and API · Evidence

Previous publication / remaining work (2026-09-08)

Full logical Bun parity remains incomplete. Published to origin/main: native service/preparation source a2e2863fc, verified evidence c9fc9bf63. Home SHA256 91d6b1024f9d4c02c6b7f9089b476d8a0646294f4ed7392e5e3ce549e52db763.

Native service lifetime and explicit vendor preparation are implemented. home test --bun-corpus-remap launches the original installed remap service with its original arguments and 5,000 ms startup deadline, drains output throughout its lifetime, and owns shutdown until parent stdin closes or the service exits unexpectedly. home test --bun-corpus-prepare-vendor elysia selects and journals clone/fetch/checkout/revision/install/build, retains separate Git/Home executable identities, and preserves the original 180-second Git/install and 60-second build deadlines. A failed install leaves build visibly unstarted. These operations earn zero registered-case or passing-process credit.

23/23 native build steps and 21/21 harness tests pass, along with four service lifetime units, four journal units, 18 validator controls and five private CLI controls. The private CLI evidence retains invalid readiness, the five-second deadline after output EOF, unexpected service exit with parent stdin open, install failure and build failure. The real pinned remap service passes five HTTP protocol checks through the native command, with complete captures and unchanged dependency hashes. Fresh native Elysia preparation completes all seven steps in 49.8 seconds; its 283 resulting source hashes match the earlier independently verified setup/lockfile normalization. Formatting, targeted Pickier and 50 pinned setup-input checks pass.

The latest complete Elysia run is not green: all 129 selected files complete once with 1,515 registered passes, one failure, zero skips/TODOs. handle distinct union in test/validator/response.test.ts calls .listen(3000); the unrelated PredictHQ development server (PID 28404 at diagnosis) owns that port. Pinned Bun fails the same unchanged case in a separate one-file diagnostic (27 passes, one failure). The listener and original tests were not changed, and no retry or alternate port was used to obtain a pass. Both full-run source integrity and the original selection match. The original WebSocket exclusion remains separate. The first diagnostic verifier expected the same error literal; a separate retained-capture analysis confirms the conflict without rerunning either runtime. A private error-object comparison additionally found message/errno/address/port differences, now tracked in #726; Home's existing preservation of real OS failures must be retained while auditing compatibility.

572 committed compressed artifacts have verified decompressed hashes. Restored journals reproduce successful service/preparation, failed private controls, the failed complete Elysia run and failed pinned-Bun diagnostic separately. The first build was stopped below the unchanged 1 GB critical disk floor after macOS allocated more swap; verification did not run. A cleanup preflight and refused admission are retained too. Corrected cleanup preserved protected binaries and linked native inputs; the completed rebuild required 5 GB free to start. Removed 6,083,408,581 logical bytes of generated caches/dependencies, old vendor data and unused build outputs. Source and other active work are preserved.

Still open: connect these operations with the original CI ordering and selection gates, Docker coordination, live service settings and default unified coordinator (#724); free the original fixed-port prerequisite before claiming a successful new Elysia run; resolve the missing optional legacy DuckDB and earlier lifecycle failures (#725); audit bind-error compatibility (#726); execute the whole applicable primary/vendor suite and finish remaining runtime features, native Linux/Windows/ASAN verification and independent native ownership. Earlier root/test setup process success and the separate 18-case N-API DuckDB run remain evidence on their recorded earlier binary; they are not new execution on this one.

API and scope · Native service/preparation evidence · Earlier native setup evidence

Earlier prepared Elysia execution checkpoint

Published to origin/main: implementation 9d6815afa, evidence 176f685f7. Home SHA256 19e41223c7fc2d2dcda763470fcc84570900db08b4d547340bdae5286d42bc98.

Complete pinned-selected Elysia execution: 129/129 files completed, 1,516 registered cases passed, zero failed, zero registered skips, zero TODOs. The run used no positional filter or start/limit and one attempt with original per-file deadlines. The selection matches pinned Bun exactly, including the separately recorded original ws/connection.test.ts exclusion; that excluded file earns no passing or skipped-case credit. All 129 captures reached EOF. Raw output and JUnit hashes, registered cases, selection completeness, all 283 post-install vendor source hashes and the Home executable hash validate.

The production home test --bun-corpus-prepared-vendor elysia command verifies Git HEAD against the manifest tag and executes each selected vendor file in its own project's cwd with ordinary config discovery, forced vendor test mode, correct validation paths and serial environment. Ordinary failures remain recorded and later files continue. This command explicitly requires prior checkout/install/build and journals setup_performed: false. The preceding Home 716f39bd… build performed the independently verified native install/build; the new 19e41223… build executed the suite. This is not a fresh end-to-end CI setup claim.

23/23 build steps, 17/17 native harness tests and 11/11 validator controls pass. Private controls exercise project config, custom test paths/extensions, serial environment and a real assertion failure followed by a successful file. Targeted Pickier and whitespace checks pass. 409 committed compressed artifacts have verified decompressed hashes; restoring the archived reports reproduces all 129 complete outcomes and 1,516 passing cases. Cleanup removed another 371,467,160 bytes of obsolete owned generated objects, preserving source work.

API and verification boundary · Complete execution evidence

Earlier outcome and lifetime batch at 61670c72b (#722/#723): 23/23 build steps and 12/12 native corpus harness tests pass, plus 2 child-ownership units, 3 journal units, 9 validator units and targeted Pickier. The original per-file deadline now covers a child that stays alive after both output pipes reach EOF. Actual libc close through Home FFI reproduced the pre-fix 30-second supervisor failure; the corrected native runner times out at the unchanged 20-second Node deadline and preserves early successful exit. Child status remains unreaped until final cleanup. The wait helper also cross-compiles for x86_64 Linux/musl and Windows/GNU; native Linux/Windows execution remains unverified, so #723 stays open for that work. Schema 2 records verified stream completeness; legacy schema 1 remains readable with completeness marked unknown.

That earlier six-file original batch validates with 402 passing cases, 1 original platform skip, 10 TODOs, one successful Node script, one verified expected-failure process check and one comment-only file. All six captures reached EOF. The original negative fixture retains its one-failure JUnit case and contributes no passing test credit. Every selected original source/snapshot hash and the executable identity remain unchanged. Private controls verify mixed outcomes, invalid negative contracts, overwrite refusal, both open-pipe and actual closed-pipe timeouts, SIGTERM, interruption, and failed writes. Original failures and first unsuccessful controls remain retained. Final evidence; baseline and remaining scope.

#724 remains the full-suite prerequisite: selection/API and Elysia setup are now verified as described above; native host discovery, complete root/test installation and registry/service setup, vendor execution, and complete applicable-suite outcomes remain unfinished. The pre-exclusion discovery inventory alone is not the complete CI suite. Excluded, skipped, TODO, unstarted and unsupported files never count as passing implementation coverage.

Previous native launch batch (#703): 23/23 native/harness build steps and 9/9 harness tests pass. Five focused units pass. All 19,016 launch-rule selections match pinned Bun over 4,754 discovered files and four CI/local/ASAN contexts; these are rule comparisons, not passing corpus files. Production capture now applies original ordinary/integration/Node/script deadlines, CI GC/integrity/transpiler-cache settings, validation-list rules, fresh per-file storage and real Home command aliases. Real cache/child/cleanup regressions verify the corrected allocation ownership and initially empty install cache. Launch baseline, 64 final artifacts.

Prior grouped launch verification: seven native private regression files pass. Unique selected original cases are Home 71 pass / 1 fail; pinned Bun 72 pass: HTML 45, link/binlink 11, audit 16. Two additional original Node files complete real process checks, and one original comment-only file contributes no passing cases. All selected original sources and snapshots remain unchanged. The generated fresh-cache control passes in both runtimes. The first build's three allocator crashes and Home-only cache-control failure are retained, with their fixes independently verified.

#721 retains the one failing original audit snapshot assertion. Audit remains Home 15/16 versus pinned Bun 16/16. The only differing line expects express › connect › csurf › csrf › uid-safe › base64-url. Its pinned fixture resolves that UID package to csrf/uid-safe@2.1.4, which depends on random-bytes and has no base64-url edge. Home reports the actual express › connect › express-session › uid-safe@2.0.0 › base64-url@1.2.1 path. No nonexistent edge or passing assertion was fabricated. #720/#721 remain open; native protocol/authentication, exact production reachability, affected-version/workspace paths, cycles and lock preservation are covered by the passing native audit regression.

#722 retains the remaining full-inventory execution and outcome-verification requirement, following the verified storage/JUnit/skip/TODO implementation above. The inventory contains 4,754 pre-exclusion entries (1,863 test-runner entries and 2,891 scripts); a completed full-suite execution is still missing. Synthetic corpus rewriting/bootstrap fallback is removed. Full integration/vendor/service setup, native ASAN and other platforms, default CLI fallback removal, and independent native build ownership remain open under #703/#709/#202.

Previous patch checkpoint a4b73596f passed 58 original cases per runtime (link 4, native-binlink 7, patch 29, install-patch 18), six private files, and build 46/46; evidence. #719 is complete for native patch activation and tested lifecycles. The original patch aggregate was not rerun for this launch batch; all six older private files plus audit were. #718 bin ownership is fixed on macOS, with native Windows filesystem verification still open. #717 remains complete for the tested native link lifecycle.

Previous package milestones #713/#714/#715/#716 remain verified and closed: local dependency identity/deduplication, long-prerelease frozen lock equality, native update/outdated and cache-freshness regression. The preceding selected original update/outdated/interactive/semver batch passes 78 cases per runtime, excluding filtered-out cases. Create entrypoints and required native parser restoration are verified. #190 self-upgrade and #710 fixture validity are now closed; #438 JSX failures and #701/#694 unexplained deadline failures remain open.

Current compressed build/test artifacts are committed under docs/docs/bun-port-evidence/. Generated fixtures and aged compiler cache data were cleaned after preserving evidence; source changes and installed binaries were retained. Earlier raw logs lost when the previous worktree disappeared are not claimed retained; their committed summaries/hashes remain historical evidence.

Earlier checkpoints

Earlier verified checkpoint: 1cbac2921, with implementation e1a5d0e20 and scanner correction 6448d628a, all pushed to origin/main. #702 is complete for native HTML activation and removal of fabricated FormData child output/RSS. 100% logical Bun parity remains incomplete.

  • Ordinary and single-native-VM HTML directory routes each pass 145 tests / one original Linux-only skip / zero failures. The native aggregate's 530 assertions match pinned Bun. Home's real 100-iteration file-error child measures 1.78 MB growth, within the unchanged 10 MB limit. Build 46/46; focused harness 23/23 steps / 3/3 tests, with independent registration metadata.
  • Adjacent routes pass: Blob 65/65, body/stream 9,467 passes / four upstream skips, Headers/Response 170/170, Request 24/24, bootstrap FormData 5/5, microtasks 2/2. #701 remains unexplained and open; a passing run is not a repair. #694 remains open.
  • #703 is the next broad migration. Exact routing predicates show 175 native test-runner paths, 266 native scripts and 4,267 bootstrap paths among Home's 4,708 classifications. Exact pinned CI discovery selects 4,754 tracked paths before exclusions, exposing 78 missing and 32 extra Home entries, plus mode/config differences. These are inventory counts, not suite passes. The audit command and full path sets are now published in the repository.
  • The native triage scanner no longer extends original test deadlines or retries timeout-only failures as slow. Its negative control retains one attempt and a failure. It remains a triage tool, not the complete acceptance gate; discovery and full outcome preservation remain in #703.
  • Pinned-object integrity remains 12,990 identical regular files, five raw-identical symlinks, zero missing paths and zero mode differences, with only historical expectations metadata different. Remaining substitutes, faithful full-suite execution, other platforms and independent native build ownership remain unfinished under #202/#703. Logs: zig-out/bun-port-702/; verified Home SHA-256 4a937ded48d609b76e336fdc192dd96439653a228073a234aaafcba176a5e783.

Previous Blob publication: f491cacd7 closed #700 with 65 native passes, preserved the original allocation/prototype/ownership workloads and four snapshots, and removed UTF-16 child and array-prototype descriptor substitutes.

Previous body/stream publication: 04644b2d0 closed #699 with 9,467 native passes and four original skips, removed three clone-specific substitutes, and retained the full HTTP/3 matrix and child/GC workloads. Its adjacent Request run exposed the original 5-second deadline failure now tracked in #701; subsequent diagnostic passes were not counted as a repair.

Previous Headers/Response publication: 649c3c48f closed #698 with 170 native passes, corrected mirror cwd/startup environment and absolute-path CLI rewriting, and preserved the original Response snapshot. Its build passes 46/46 and focused harness 6/6; the initial 4/5 run exposed the additional CLI root defect and remains recorded as historical evidence.

Previous Request publication: 5e45c58a3 closed #697 for native Request activation and removed unused bootstrap VM initialization from native corpus dispatch. Its complete four-file matrix passes 24/24. Direct native stress peak footprints were 22,594,376 bytes for clone stress and 194,872,232 bytes for method-allocation stress; original loops and limits remain intact. The older bootstrap implementation is not claimed repaired.

Previous paired repair: e148e06c1, published to origin/main. #695 and #696 are fixed: complete TypeScript conformance is 1,419/1,419; both optimized Bake integration scripts and gzip decoding with both libdeflate settings pass. 100% logical Bun parity remains incomplete.

The preceding main commit 2129e4a82 enters the macOS WebView host before CLI/JSC initialization and restores native execution of the shell and both complete WebView matrices. All three remaining whole-file TODO substitutions and their helper are removed. #693 is complete for that integration.

  • Unchanged pinned WebKit: 57 pass / 1 upstream TODO / 0 fail / 141 assertions. Shell: 378 pass / 83 upstream TODOs / 0 fail / 1,035 assertions.
  • Four ordinary native corpus routes: 487 pass / 89 upstream TODOs / 0 fail / 0 unsupported registrations. Chrome WebSocket contributes zero passes and five upstream TODOs, not implemented coverage.
  • The first strict Chrome run still fails its original first-navigation deadline (51 pass / 1 fail); pinned Bun passes 52/52. Later probes and a full Home run pass but do not erase that failure: #694 remains open. No retry, warm-up, sleep, timeout extension, assertion change, or workload reduction was added.
  • Optimized native build: 46/46 steps. Earlier feature-flag units: 6/6 with defaults and in each explicit 0/1 fresh-process run; unit build 23/23 steps. Both complete Bake production/development integration scripts pass; absent/0/false opt-in is correctly rejected. Unchanged gzip/fetch is 24/24 / 43 assertions with each libdeflate setting.
  • Nested-rest checker regressions: 4/4; complete TypeScript conformance 1,419/1,419; standalone reproduction exits zero. The original regression now requires zero diagnostics, and new negatives retain element-type and tuple-order errors.
  • Earlier source-restoration regression: 1 pass, zero logged errors/leaks. Earlier completed native runtime units: 1,826 pass / 19 skip / 0 fail; that entire unit artifact was not rerun for the latest paired repair.
  • The earlier optimized aggregate was interrupted (exit 143) and is still incomplete. Its nested-rest and Bake/feature-flag failures are repaired and verified separately above (#695, #696); no completed aggregate or whole-suite pass is claimed. The default Debug aggregate was not established by that run.
  • The earlier bootstrap Request stress test reached 13.7 GB sampled footprint / 14.4 GB peak and was stopped. Its obsolete execution path is replaced by verified native coverage in #697 above; the bootstrap shim used by other adapters is not claimed repaired. The earlier full aggregate was not resumed, and no completed corpus aggregate or whole-suite pass count is claimed.
  • Pinned Bun 4982b91e3702094330f3be3883354c52b8c01323: 12,996 tracked paths present; 12,990 identical regular files, five identical symlinks, one differing expectations.txt, zero missing. The expectation delta removes four historical FAIL entries; executable test sources are unchanged.
  • Changed-file formatting, documentation Pickier and whitespace checks pass. Repository Pickier retains 59,302 findings (31,238 errors / 28,064 warnings). The README's Settlers checkout is absent. External Bun C++ build artifacts, other adapters (#202), upstream TODOs/skips, other platforms and full source/build ownership remain unfinished.

Publication correction: all 18 commit URLs in this issue's historical body were verified as ancestors of main at this checkpoint. Historical statements below saying those commits were not merged describe their original publication state and are superseded by this audit.

How to run / verify

  • Native debug build: zig build debug -Denable_jsc=true -j2 --summary all from the Home repository. External native dependencies and ownership limits are documented in docs/docs/NATIVE_RUNTIME_BINDINGS.md.
  • Native regression: HOME_NATIVE_VM=1 ./zig-out/bin/home-debug tests/runtime/native-worker-inbox-shutdown.test.mjs (substitute the desired regression file).
  • Strict native corpus: HOME_NATIVE_VM=1 HOME_CORPUS_FULL_VM=1 ./zig-out/bin/home-debug test <corpus-file>; both overrides are required to bypass the pragmatic corpus adapter.
  • Outer corpus CLI: unset HOME_NATIVE_VM and HOME_CORPUS_FULL_VM; any nonempty value, including 0, enables those overrides. Keep native execution and the pragmatic adapter's results separate.
  • Use bounded subprocesses and per-child timeouts; limit concurrency to 2–3 small fixtures. Clean only owned temporary artifacts. Do not use blanket pkill commands.
  • Leak measurements must retain their original workloads and thresholds; Debug and ReleaseSafe results are not interchangeable.
  • Skips, disabled bodies, timeouts, unsupported cases, external dependencies, and failing negative controls do not count as completed parity.

Historical publication checkpoints (through 2026-08-28)

  • Published HTTP/3 verification-isolation checkpoint: 0fd884f59, pushed on codex/runtime-port, not merged to main. #539 is closed after a controlled environment correction: the complete unchanged adversarial file passes 12/12 serialized Home processes and 12/12 serialized pinned Bun processes, all 27/27 / 163 assertions. Three eight-way waves reproduce the same first-64-KiB deadline sequence in both binaries (Home 11/12 process passes; pinned Bun 5/12) while all sixteen UDP ports are distinct and the shared eleven-CPU host is saturated by native tests, a ReleaseFast build, and system work. No runtime source, test deadline, workload, retry, sleep, skip, or protocol fallback changed. Heavy HTTP/3 files must be verified serially and away from builds. #530 retains platform/integration and native dependency ownership; all other explicit suite gaps remain. 100% logical Bun parity is not achieved.
  • Previous native TLS SNI/ALPN checkpoint: a9a95f6a4, pushed on codex/runtime-port, not merged to main. #542 now ports per-connection synchronous/asynchronous SNICallback, pending-certificate resumption, original callback error propagation, same-host precedence, offered-protocol ALPNCallback validation, callback-safe teardown, and ALPN selector handoff across SNI contexts. The complete unchanged server file is 38/38 / 147 assertions, exactly matching pinned Bun. The new combined lifecycle regression passes 20/20 independent processes plus VM destruction. The seven-file TLS sweep is 120 pass / 1 skip / 3 TODO / 2 fail / 380 assertions; both failures are live bun.sh OCSP checks reproduced in pinned Bun. Build 17/17; units 1,828 pass / 19 skip / 0 fail (19/19 steps); sequential regressions 63/63, including full spawn and child-process. Home's vendored C source compiles with reconstructed pinned release flags, while the debug build still links the pinned Bun object. Darwin only; #530 platform/integration, other open subsystems, skipped/TODO behavior, dependency ownership and whole-suite parity remain incomplete. 100% logical Bun parity is not achieved.
  • Previous native TLS session/keylog checkpoint: 04569d8f9, pushed on codex/runtime-port, not merged to main. #543 replaces the no-op native dispatch with retained FIFO session/keylog delivery for direct TCP TLS and upgraded Duplex TLS, preserving session-before-data ordering across destructive callbacks. The complete unchanged connect file is now 28 pass / 2 fail / 1 skip / 106 assertions, exactly matching pinned Bun; both remaining live OCSP assertions also fail in Bun. The native lifetime/GC regression passes 20/20 independent processes. Build 17/17; units 1,828 pass / 19 skip / 0 fail (19/19 steps); sequential regressions 62/62, including 31 native files. Adjacent TLS is 47 pass / 2 skip / 7 fail / 424 assertions; all seven failures are SNI/ALPN work in #542, now next. The checked-in Home uSockets source has the logical queue implementation and compiles with the linked release object's exact flags, but the debug build still links that pinned Bun object. Darwin only; platform/integration, skipped/TODO behavior, native dependency ownership and full parity remain incomplete. Whole-suite parity is not achieved.
  • Previous native TLS context checkpoint: fbdfbf890, pushed on codex/runtime-port, not merged to main. #532 now provides private contexts/CA isolation, binary PFX, detailed certificate chains, hostname authorization and TLS min/max propagation. Six unchanged core files pass; context 7/7, cache 9/9, cert 28 pass / 3 TODO, hostname 5/5. Native normal/destruction and original leak checks pass. Native build 17/17; runtime units 1,828 pass / 19 skip / 0 fail, 19/19 steps; sequential regressions 61/61, including 30 native files. Complete compression 32/32, HTTP/2 client 60/60, HTTP/3 client 52/52, both proxy files, full body-stream 9,086/9,086 / 135,984 assertions, five EOF/fetch files and both abort files pass. The initial HTTP/3 adversarial run failed 24 pass / 3 fail / 160 assertions, followed by three 27/27 / 163 serial replays. #539 remains unresolved; passing retries do not erase the final artifact’s initial failure or prior Home/Bun failures. 249 TLS sources, 48 HTTP/regression sources, and 13 TLS implementations match the pin. Full TLS server/connect files still fail: #542 tracks SNI/ALPN callbacks, #543 session/keylog delivery; two live certificate assertions also fail in pinned Bun. Failed attempts and all skips/TODOs are retained. Darwin only; integration, platform and full ownership remain incomplete. Whole-suite parity is not achieved.
  • Previous compression/CONNECT checkpoint: 2c5df8cce, pushed on codex/runtime-port, not merged to main. #531 ports all four request-compression encodings and file/buffer ownership; #535 repairs CONNECT writer/envelope handling. Complete unchanged compression 32/32 / 78 assertions, HTTP/2 client 60/60 / 197, HTTP/3 client 52/52 / 241, and both proxy files pass against pinned controls. Full body-stream 9,086/9,086 / 135,984; build 17/17, units 1,827 pass / 19 skip / 0 fail (19/19 steps), regressions 60/60, including 29 native files; all five EOF/fetch and both abort files pass. HTTP/3 reliability remains unresolved in #539: initial adversarial failure, then three passing Home replays; failures also reproduce in published Home and pinned Bun. TLS context work remains #532. Forty-eight test/harness/fixture sources and eleven implementations match the pin. Failed attempts remain recorded. Darwin only; skips/TODOs, platform/integration and full source ownership remain incomplete. Whole-suite parity is not achieved.
  • Previous HTTP/2 checkpoint: fd239c3ac, pushed on codex/runtime-port, not merged to main. #533 now preserves the idle-session Host hash and rejects invalid response-name tokens while consuming complete HPACK blocks. Complete unchanged HTTP/2 adversarial 15/15 / 33 assertions (parent 13 pass / 2 fail); lifetime 7/7 / 21 assertions with original 200-request workloads. Full body-stream 9,086/9,086 / 135,984 assertions. Build 17/17, units 1,825 pass / 19 skips / 0 fail (19/19 steps), sequential regressions 59/59 including 28 native files. HTTP/2 client remains 58 pass / 2 fail / 2 errors; HTTP/3 client 50 pass / 2 fail, both compression #531. HTTP/3 adversarial retains 27/27. Newly exercised CONNECT-proxy crashes reproduce in both parent and candidate; pinned Bun passes both files, tracked separately in #535. TLS context work remains #532. Forty measured test/harness/fixture sources and six consulted implementations match the pin. Darwin only; platform/integration, skips/TODOs and full source ownership remain unverified. Whole-suite parity is incomplete.
  • Previous TLS/HTTP transport checkpoint: 29c196835, pushed on codex/runtime-port, not merged to main. TLS ABI offsets, HTTP/3 trust eligibility and duplex progress are repaired. Full unchanged body-stream 9,086/9,086 / 135,984 assertions; HTTP/3 adversarial 27/27; client 50 pass / 2 fail (compression #531). HTTP/2 client 58 pass / 2 fail / 2 errors (#531); adversarial 13 pass / 2 fail (#533 verification-host isolation/header validation). TLS server validation 16/16; remaining context/CA/version work is #532. Build 17/17, units 1,824 pass / 19 skips / 0 fail (19/19 steps), sequential regressions 58/58 (27 native files); full spawn 126 passes, child-process 32 passes. Five complete fetch files and both abort files retain their passes. 72 test/harness sources and six implementation sources match the pin. Earlier timeout and disk-exhaustion attempts are retained; complete sequential reruns pass with original workloads/deadlines. See #530 for detailed evidence. Shared Darwin checkout; platform/integration, skipped/TODO behavior and full ownership remain unverified. Whole-suite parity is incomplete.
  • Earlier body-abort checkpoint: fb161314a, pushed on codex/runtime-port, not merged to main. #529 ports terminal response-error settlement before upload cancellation; unchanged abort file 2/2 / 6 assertions (parent 1 pass / 1 fail), queued-abort 1/1, and native 24-scenario normal/destruction/reentry checks pass. Build 17/17; units 1,824 pass / 19 skips / 0 failures (19/19 steps); regressions 57/57 (26 native files); 64 measured upstream sources match the pin. Five body files pass, including clone 25/25 and body 346 passes / 4 skips; five fetch files retain their passes including gzip 24/24. At that earlier checkpoint, the full body-stream matrix was not green: parent 4,883 pass / 4,203 fail / 2 errors, candidate 4,883 pass / 4,203 fail / 10 errors, pinned Bun 9,086/9,086. #530 tracks the HTTP/3 server path: parent client/adversarial files are 6 pass / 46 fail and 5 pass / 22 fail; both clients fail against Home's server before its JS handler, both succeed against Bun's server. Original assertions/workloads/deadlines retained. Historical HTTP/3 completion claims below are corrected. Shared Darwin checkout; unrelated compiler edits excluded. Platform/integration, skips/TODOs and full source ownership remain unverified. Whole-suite parity is incomplete.
  • HTTP/installer checkpoint: 90ced0ed6, pushed on codex/runtime-port, not merged to main. #526 repairs buffered EOF completion and fragmented tar-format selection; native real-install, streaming-handshake, VM-destruction and three 404 transport controls pass. #527 advances unchanged fetch-gzip from 22/2 to 24/24 / 43 assertions, preserving the 1,025 MiB workload. #528 advances unchanged streaming-extract from 5/1 to 6/6 / 180 assertions, enforcing the pinned 2 GiB buffered limit against the original 2.25 GiB payload. Four further complete fetch files pass; full zlib retains 378 passes / 2 skips / 434 assertions. Retains bun-run 291/291, native hard-link-PATH bunx 33 pass / 1 Windows-only skip / 0 fail, workspaces 58/58, eval 33/33, tsconfig 6/6, resolver 39 pass / 2 skips / 1 TODO plus its spawned 9 pass / 1 TODO, and 21 config controls. Build 17/17; units 1,824 pass / 19 skips / 0 failures (19/19 steps); regressions 56/56 (25 native files); 46 measured upstream test sources match the exact pin. No upstream assertion/workload/deadline changes. #526–#528 retain platform/integration scope. Shared Darwin checkout; unrelated compiler edits excluded. Skips/TODOs, other platforms, integration and full source ownership remain unverified. Whole-suite parity is incomplete.
  • Resolver checkpoint: 9b3a5c1ad, pushed on codex/runtime-port, not merged to main. #525 ports canonical resolver diagnostics and fallible, retained installer initialization errors; readable-file dispatch now precedes cwd scanning. Unchanged tsconfig-override 6/6 / 17 assertions (parent 5/1), resolver 39 pass / 2 skips / 1 TODO / 0 fail / 59 assertions plus spawned file 9 passes / 1 TODO / 41 assertions (parent's unreadable-cwd failure resolved under the original 5,000 ms deadline). Native repeated-error and VM-destruction checks pass. Retains bun-run 291/291 / 416 assertions, native hard-link-PATH bunx 33 pass / 1 Windows-only skip / 0 fail / 161 assertions, workspaces 58/58 / 192 assertions, eval 33/33 / 70 assertions, and 21 config controls. Build 17/17; units 1,820 pass / 19 skips / 0 failures (19/19 steps); regressions 56/56 (25 native files); 37 sources match the exact pin. No upstream assertion/workload/deadline changes. #526 remains a reproduced failure: EOF-delimited registry 404s trigger a pending-task assertion in parent and final candidate; length-delimited controls pass. Other platforms, branch integration, skips/TODOs and full source ownership remain unverified. Shared Darwin checkout; unrelated compiler edits excluded. Whole-suite parity is incomplete.
  • CLI config checkpoint: 828ecc729, pushed on codex/runtime-port, not merged to main. #517 optional-config and entrypoint scanning now match all 21 pinned-control boundary cases; native normal/destruction regression passes and published parent fails the new assertion. Full unchanged bun-run 291/291 / 416 assertions, native hard-link-PATH bunx 33 pass / 1 Windows-only skip / 0 fail / 161 assertions, workspaces 58/58 / 192 assertions, and eval 33/33 / 70 assertions (declared React dependency installed by Home). Build 17/17; units 1,820 pass / 19 skip / 0 fail (19/19 steps); regression commands 56/56 (25 native files); 35 measured sources byte-identical to pin. No upstream assertion/workload/deadline changes. New #525 tracks the unchanged tsconfig-override failure: Home parent/candidate 5 pass / 1 fail, pinned Bun 6/6, due to auto-install 404 diagnostics. #517 now retains platform/integration and help-rendering verification. Shared Darwin checkout; unrelated compiler edits excluded. Skips/TODOs, other platforms and full source ownership remain unverified. Whole-suite parity is incomplete.
  • Native installer checkpoint: 3be72ca5b, pushed on codex/runtime-port, not merged to main. Native bunx and the real installer chain (#518) now resolve all three remaining bun-run failures: 291 pass / 0 fail / 416 assertions. Full unchanged bunx passes 33 tests / 1 Windows-only skip / 0 failures / 161 assertions with isolated PATH hard links named node/bun to the exact Home binary (no installed JS runtime delegation). Ordinary PATH remains 32/1/1 because of an installed claude binary; pinned Bun reproduces it. An earlier native symlink PATH run's old CLI-basename failure is separately recorded. Native registry credentials, actual installation, both analyzers, auto-install HTTP initialization and VM destruction checks pass; Angular's original 300,000 ms timeout is resolved without changing the deadline. Workspace suites 58/58 / 192 assertions; regression commands 56/56 (25 native files); build 17/17; units 1,820 pass / 19 skips / 0 failures (19/19 steps). All 33 measured upstream sources match the pin; generated test-tarball bytes are archived and restored. No assertion/workload/deadline changes. #508 now retains platform/integration scope; #517 optional-config scanning and #519 platform/integration verification remain open. Shared Darwin checkout; unrelated compiler edits excluded. Skips/TODOs and other platforms are unverified. Whole-suite parity is incomplete.
  • Compression checkpoint: 095f90396, pushed on codex/runtime-port, not merged to main. #516 ports Zlib/Brotli/Zstd async buffer pins, GC roots and fresh write-result resolution. The complete unchanged zlib file now passes 378 tests / 434 assertions, with 2 skips and 0 failures; bounds 9/9, reentrancy 3/3, native regression commands 55/55 (24 native files), and runtime units 1,819 pass / 19 skip / 0 fail. Twenty lifetime stress runs plus VM destruction pass. No upstream assertions/workloads/deadlines were changed. This supersedes the prior zlib failure linked from #513. Darwin only; #514's four remaining stream-file gaps, broader CLI/runtime gaps and whole-suite parity remain open.
  • The 65 previously local port commits through 6de9852ea8443c3b5d4a58dcdbcf11944456fd2e are now published on codex/runtime-port. Their original hashes were recovered from the existing local codex-git-shadow.git metadata; no replacement history or force push was used. They are published on the branch, not merged into main.
  • Worker checkpoints on the published branch: descendant shutdown 41f10cbebe6d65340304f4b93eb4fd3fa10d0e19 (#470), native parentPort 3b0721c32b2d237c38380900ed449217ef1af853 (#477), and snapshot cancellation c6a4e4a3513dfb2a05a13357c06f598ad9f1d6ce (#471). Not merged into main. Snapshot tasks carry IDs only; the parent thread owns promise handles and completed payloads through success, worker exit, and parent-VM shutdown.
  • Snapshot checkpoint: 20/20 native regression files, 16 byte-identical upstream Node fixtures, and native build/cache 16/16 pass. The six-scenario snapshot suite passes four complete runs, including two with VM destruction enabled. The unchanged upstream snapshot-GC test passes its full 15 × 300 = 4,500 snapshot workload (1 test / 15 assertions). No sanitizer claim.
  • Strict native MessagePort corpus: 15 pass / 3 existing debug-sanitizer guard skips / 0 fail / 529 assertions. Both native execution flags were set. Skips are not completed parity.
  • The full worker_threads corpus file is not green: at the snapshot checkpoint, 33 pass / 1 timeout / 1 between-test error, although its three snapshot cases pass. The test-name filter failure is now fixed in #481; the current filtered snapshot run is 3 pass / 31 filtered out / 0 fail. This does not resolve the full-file timeout. The unchanged 100 MiB eval-source case exceeds its original five-second deadline (#482); its standalone memory-threshold check passes in native debug in 20.22 s versus 2.20 s in Bun. Debug/optimized timing and the full-file deadline remain distinct from snapshot cancellation.
  • Native test CLI checkpoint 1340cebd5 (#481), published on codex/runtime-port, not merged into main: real argument and bunfig parsing, fatal diagnostics, and buffered/direct output semantics. Build/cache 16/16, all 20 native regression files, and 50 unchanged upstream tests / 119 assertions pass across filtering, configuration, retry/repeat hooks, concurrency, path ignores, and full coverage. The snapshot selection filters out 31 cases; they are not counted as passes. No tests or snapshots were weakened.
  • Newly exposed test-runner feature gaps: isolated global/module records #484 (1 pass / 3 fail, Bun control 4 pass) and parallel coordinator/worker IPC #485 (0 pass / 3 fail, Bun control 3 pass). Both retain their unmodified upstream reproducers and remain open. Other unverified CLI/runtime features are not implied complete by #481.
  • Remaining shutdown work: generic queued task cancellation #465 and work-pool quiescence #468. Snapshot request ownership #471, parent-port lifecycle #477, and descendant shutdown #470 are implemented and verified on the published branch, with integration context retained in their issues. Related ownership: #461, #462, #466, #469.
  • Other active parity gaps include the core corpus exclusions in #456, reduced-context realms in #454, and Node-API/FFI follow-ups #459 and #460. Historical checkbox sections below are not a current whole-suite completion report.
  • 100% logical Bun parity is not achieved.

A. node:tls socket layer

  • SNI/ALPN callback handling and asynchronous suspension — implemented in a9a95f6a4 (#542); the complete unchanged server file passes 38/38 / 147 assertions, matching pinned Bun.
  • Session/keylog events and teardown ordering — implemented in 04569d8f9 (#543); the complete unchanged connect file matches pinned Bun, with two live OCSP failures retained in both.
  • getCipher() cluster works — was a false diagnosis: the null cipher/session came from the broken (cert-less) handshake caused by the Buffer-cert gap, now fixed (b3492d3). Verified locally: getCipher {TLS_AES_128_GCM_SHA256, version:"TLSv1/SSLv3"} (matches pin test), getProtocol TLSv1.3, getSession 1106-byte Buffer, getEphemeralKeyInfo/getSharedSigalgs/exportKeyingMaterial/isSessionReused all correct. The pin test connects to bun.sh (crashes on this macOS 27 box) so it can't be run here, but the behavior is confirmed.
  • Detailed getPeerCertificate at the current pin — implemented in fbdfbf890 (#532): peer/trust-store issuer chains, self-issued roots, checked conversion and native reference ownership. Complete cert suite 28 passes / 3 TODO, original leak workload and memory threshold pass. The earlier claim that the detailed TODO matched the pin was historical and does not describe the current pin.
  • ALPN — fixed in 428aa2c (hand-mirror SSLConfig.fromJS never parsed ALPNProtocols).
  • Static SNI server.addContext() selection — the complete context suite and most-recent-context Node program now pass (#532). Dynamic SNI/ALPN callbacks and asynchronous handshake resumption remain #542.
  • Cert-chain verification — "unable to verify the first certificate" / "unable to get issuer certificate" on incomplete-chain + intermediate-CA scenarios (basic single-CA verify works).
  • Config validation — tls.createServer({passphrase: wrong}) should reject but listens; passphrase IS passed to us_ssl_ctx_from_options, so it's uws-level validation timing/error-surfacing.
  • getPeerCertificate '\0' handling (CVE-2009-2408 test).

B. Bun Shell ($)

  • Bun Shell template commands and command substitution — closed by #73. Basic template execution and the mixed-output/error command-substitution stress case run through real Home execution. Follow-up 31e2dc603 forwards explicit spawn environments and pins the installed Home executable for the fixture-free corpus path.

C. fetch / HTTP client

  • redirect + gzip — fixed in c508e00 (NativePromiseContext wiring; see below). fetch-gzip.test.ts 2/3 → 5/0.
  • streamed gzip with delay — fixed in c508e00 (same root).
  • body-stream.test.ts — full unchanged matrix passes 9,086/9,086 / 135,984 assertions at 2c5df8cce, including HTTP/3. Original workloads/deadlines preserved. Abort settlement remains green (2/2 plus queued 1/1, #529). This file-level result does not close HTTP/3 reliability/platform work in #530/#539.

D. HTTP/2 & HTTP/3

  • Native HTTP/2 completion — complete unchanged client 60/60 / 197, adversarial 15/15 / 33, lifetime 7/7 / 21 at 2c5df8cce (#531/#533). Earlier client compression failures are repaired. Platform/integration remain unverified; file-level passes do not establish complete HTTP/2 parity.
  • HTTP/3 — platform and integration verification, #530: 2c5df8cce brings client 52/52 / 241 and full body matrix 9,086/9,086 / 135,984. Request compression is implemented (#531). #539 is closed by 0fd884f59 as a verified host-contention artifact: serialized Home and pinned Bun each pass 12/12 processes, while intentional eight-way waves reproduce the same first-upload deadlines in both. Original tests/deadlines retained. Other platforms/integration remain unverified.

E. Deep/unported subsystems

  • napi-FFI cc.test.ts crash — resolved: exact upstream file is 5 pass / 10 upstream skips / 0 fail in Home; the extended mirrored file is 8 pass / 10 upstream skips / 0 fail. Pinned Bun at 4982b91e3 currently reports 4 pass / 10 skips / 1 fail on the upstream file because napi_main is not exported from the fixture compile.
  • S3Client remaining platform/external integration (#597) — deterministic native matrix is 66 pass / 3 upstream credential-gated skips / 0 fail in 5c2ac4542; the stream-cancel crash, task/body ownership, proxy resolution, early-response multipart reuse, malformed ListObjects parsing, and eight-file production routing are fixed. Linux/Windows and credentialed S3/R2 integration remain open.
  • Bake/HMR remaining optimized/platform verification (#901) — native production/development/HMR is functional (#551/#553/#555). The complete native suite checkpoint validates all 24 unchanged files (177 pass / 2 upstream TODO / 0 fail / 0 skip), genuine frozen locks, complete journal identities and original test deadlines (#902 closed). Spawned fixture cwd, production source maps and changed-path aliases are repaired. Debug ownership and release frontend checks pass; optimized runtime and wider platform/SDK acceptance remain open. #564 tracks Linux TODO coverage.
  • Worker corpus remaining platform/performance verification — e1523b1ee and eae013190 promote 16 exact native files: 264 pass / 3 upstream release-mode skips / 1 upstream TODO / 0 fail. The corpus runner applies its real preload and preserves sentinel path ownership. Web Worker messaging, transfer, structured clone, Blob, termination, leak, heap-snapshot GC, unchanged 15787.test.ts, and the complete worker-destruction matrix are green; #598 is closed after preserving cached exit code 0. The complete worker_threads.test.ts is green in ReleaseFast under #482 but retains its documented Debug-only five-second eval-source deadline gap. Linux/Windows verification, the upstream TODO/skips, and whole-suite worker parity remain open.

F. Memory-leak tests (triaged on ReleaseSafe 2026-07-07 — build target un-rotted in 55f7140)

  • setTimeout-clear-in-callback — ✅ FALSE ALARM: all 3 variants (clear/refresh/repeat) pass on ReleaseSafe; debug-build overhead as suspected.
  • text-decoder utf16le output-buffer leak — ✅ FALSE ALARM: both utf-16le and utf-16be pass on ReleaseSafe.
  • streams-leak — ✅ FALSE ALARM: passes on ReleaseSafe.
  • serve-body-leak — ✅ CLOSED (4ee746c): root cause was the libc mimalloc shim (allocator page retention, not a leak — see forensics comment). Real mimalloc re-attached (Phase 12.2); 7 pass / 0 fail on ReleaseSafe.
  • inspect-error-leak — ✅ CLOSED (4ff003d): ZigException.Holder.deinit was a stub that dropped the pin's deferred resetArena — every inspected error left one full transpile in the module loader arena (74MB/100k iters). Now passes with 'RSS increased by 4 MB', exactly real Bun's number.
  • node:util test-aborted gc-cleanup — ✅ CLOSED (d459e0d): FinalizationRegistry callbacks never fired AT ALL — JSCScheduler.zig was a no-op placeholder and the two event-loop exports were noop stubs, severing JSC's DeferredWorkTimer delivery chain. Pin's scheduler ported; test-aborted now 5/5 (gc-cleanup passes in 2.5ms).
  • (new) HTMLRewriter handler leak — reclassified, NOT a leak: all 58 lol_html_* symbols are noop stubs (lol-html Rust crate unported — link_bun_rust_archive = false); the child panics on the first .on() (else => unreachable on a garbage return at lolhtml_sys/lol_html.zig:253) and the test fails on stderr. Belongs with section E as an unported-library item: link lol_html_c_api (rlibs exist in the Bun build tree), delete the stubs, and restore the pin's HTMLString.toString free (lol_html.zig:623 — latent leak once real lolhtml links).

G. Environmental / infra (mostly resolved)

  • Test runner: home test defaults to native bun:test runner (078c659)
  • bun:internal-for-testing gated in release (13deb08)
  • node v24 + bun v1.3.14 installed via pantry (clears differential-spawn "node not found" failures)
  • Build recovery recipe after /tmp wipe (memory: home-build-portability.md)

Done this session (context)

signals (db0df4d), native-VM file runner (f296bb6), Worker cross-thread + teardown (dcb6db6, 85aba46), native test runner default (078c659), translateUVErrorToE (188268e), Bun.markdown renderer (2768d9a), MD4 (1279c18), Bun.CSRF (96b8f05), node:tls SecureContext ~40 tests (6cf4a6b), release build + build-recovery (dff7bfa, df83921, 13deb08).

Native isolation checkpoint — 6e092777a

Published on codex/runtime-port; not yet merged to main. #484 now passes the entire unchanged isolation file: 19 tests / 67 assertions, plus three consecutive repeat runs. The real JSC module-record bridge replaces the parked panic path. File-boundary cleanup releases watcher, server, timer, watch-file scheduler, and AbortSignal GC references; server callback protections are balanced across reload and destruction.

Verification: native build and unchanged cached rebuild 17/17; generator/ABI tests 8 tests / 135 assertions; all 20 native regression files pass, including expanded isolation probes. Fourteen selected unchanged upstream commands total 92 passing tests / 242 assertions, including the 50-test CLI regression set. Two platform skips and 231 filtered cases in those selections are not passes. The existing AbortSignal spawn-glyph-only check alone is not proof of child assertion execution; direct native lifecycle and timeout checks provide separate evidence. Workloads, deadlines, and upstream assertions were preserved. Full details and control limitations are in docs/docs/NATIVE_RUNTIME_BINDINGS.md.

Separate newly tracked failures: fake clocks #490 (16 pass / 14 fail, also reproduced before this checkpoint; Bun control 30 pass) and deferred imports #491 (0 pass / 1 fail / 19 filtered out in the selected parser reproduction). Parallel orchestration #485 and the full worker eval deadline #482 remain open. Installed Bun 1.3.14 fails four newer isolation cases itself, so no passing full-file Bun control is claimed. The full port and 100% logical Bun-suite compatibility are still incomplete.

Native fake-clock checkpoint — d0ed7c906

Committed and pushed on codex/runtime-port; not yet merged to main. #490 now passes the unchanged core fake-timer file: 30 tests / 83 assertions, up from 16 pass / 14 fail. Installed Bun 1.3.14 passes the same 30 / 83 control. Mockable timer deadlines now share the fake clock, fractional advancement retains nanoseconds, real option/getter validation runs before clock mutation, and both reset paths release timer/AbortSignal references outside the heap lock.

Verification:

  • Native build and cached rebuild: 17/17 steps.
  • All 21 native regression files pass; the new fake-clock test also passes three consecutive repeats and fails against the cached pre-change Home binary. It checks actual Home execution, inherited/throwing getters, Date/performance agreement, fractional nested callbacks, retained cancelled handles, natural exit and bounded GC counts after allocating 3,072 timeout/interval wrappers plus 1,536 AbortSignal timeouts across resets.
  • Entire unchanged fake-timer directory: 61 reported pass / 438 TODO / 0 fail / 115 assertions in Home and Bun. 14 reported passes are it.failing cases, not implemented features; all 438 TODOs are excluded from logical completion. There are 47 ordinary passing tests, including the core 30.
  • Unchanged isolation: 19 tests / 67 assertions. Unchanged timers/promises: 4 / 7. Twenty-four selected corpus files match the pinned Bun checkout byte-for-byte. Focused Pickier, timer-file Zig formatting and whitespace checks pass.

The wider Node timer file still hangs after printing 19 passes on its final caught-immediate-exception fixture. This happens in the pre-change Home binary too. The standalone fixture times out in both Home binaries and exits successfully in Bun; the original-checkout Bun control passes the full 20 / 31. Tracked separately in #493; neither incomplete runs nor expected failures count as logical parity.

Deferred imports #491, parallel coordinator/IPC #485, the full worker deadline #482, remaining native ownership, other platforms and full-suite parity remain open. The full port and 100% logical Bun-suite compatibility are not complete. See docs/docs/NATIVE_RUNTIME_BINDINGS.md for the implementation and verification boundary.

Native POSIX spawn checkpoint — 6d797186c

Published on codex/runtime-port; not yet merged to main. #493 is now implemented and verified. The timer fixture hung during import, before scheduling immediates: Node's common helper spawned a missing absolute openssl-cli, and Home misread libc's direct positive errno as success and watched PID 0. The fix propagates spawn and file-action/attribute setup errors, preserves executable paths, and releases failed registration lists. No immediate dispatch code was changed.

Verification: 28 selected commands pass, including all 21 native regression files, the unchanged complete Node timer file (20 tests / 31 assertions), its standalone fixture, isolation (19 / 67), core fake clocks (30 / 83), timers/promises (4 / 7), PATH selection (1 / 2) and the selected missing-command/invalid-fd cases (2 / 9; 32 filtered out excluded). Native build and cached rebuild 17/17; repeated native spawn failures preserve descriptor counts and recover to a valid spawn without re-entering user microtasks. Eight relevant upstream files are byte-identical to source pin 4982b91e3702094330f3be3883354c52b8c01323.

New linked follow-ups keep the failing boundaries explicit: extra stdio pipes #495, real native counter snapshots #496, and package-script passthrough #497. Full child-process remains 30 pass / 2 fail / 1 skip / 1 TODO / 70 assertions; spawnSync remains 4 pass / 1 fail / 1 platform skip / 11 assertions. Installed Bun 1.3.14 passes those three failing scenarios but fails the newer invalid-fd case itself. Deferred imports #491, parallel test orchestration #485, full worker timing #482 and the other open work remain. The full port and 100% logical Bun-suite compatibility are still incomplete.

14 days ago

Native terminal checkpoint published as 8157bde43 on codex/runtime-port, not merged into main. Details and remaining platform work: #503.

Home now opens real PTYs and runs native terminal reader/writer I/O, callbacks, resize, termios/raw mode, ref/unref and disposal. Native startup records/restores inherited TTY state, and inline PTY children get a controlling session through setsid/TIOCSCTTY. The unchanged terminal suites now pass 123 tests / 323 assertions, excluding one TODO and one Windows-only skip. The unchanged readline PTY test also passes 1 test / 2 assertions / 1 snapshot. Source/fixtures were checked against pin 4982b91e3702094330f3be3883354c52b8c01323; no corpus workloads or deadlines were changed.

The final verification passes 39 commands, including all 22 native regression files and full unchanged spawn (126 passed / 5,484 assertions / 5 skips). Additional native tests cover real event-loop liveness, independent raw modes, 1,048,593-byte backpressure/ownership, descriptor exhaustion and recovery, callbacks during close/GC, collectible wrappers, and failed inline terminal cleanup with overridden stdin (#502). Three extra lifetime repeats, including VM destruction, pass. Seven adjacent stdin suites pass 34 tests / 197 assertions, excluding 3 TODOs. Builds and focused checks pass.

This is a macOS verification checkpoint, not full Bun parity. Linux/Windows execution remains unverified under #503. The complete child-process file still has the same package-script dispatch failure under #497 (31 passed / 1 failed / 1 skipped / 1 TODO). The complete Bun port and 100% suite goal remain unfinished.

14 days ago

Native package-script checkpoint: 06a212514, pushed to codex/runtime-port as Chris Breuer without coauthors. This is branch publication, not a merge to main.

  • #497's unchanged npm-run-all stdio-passthrough failure is resolved on Darwin. The complete child-process file now reports 32 pass, 0 fail, 72 assertions, with one skip and one TODO excluded.
  • Native package scripts now execute real lifecycle commands with cwd/environment/arguments, safe persistent Home aliases, bunfig settings, inherited stdio and terminating signals. Module resolution retains precedence over PATH binaries.
  • Final verification: 49/49 regression commands, all 23 native regression files, and the entire unchanged spawn stress file (126 pass / 5,484 assertions / 5 skips, including the original 1,000-iteration onExit workload). Eight adjacent CLI/bunfig/shell files pass 48 tests / 106 assertions. Native build and cached rebuild pass 17/17 steps; native identity/negative controls and scoped formatting/lint checks pass.
  • The complete 291-case bun-run.test.ts improves from 160 pass / 131 fail on the previous published binary to 258 pass / 33 fail / 380 assertions, resolving 98 failures with no newly failing test names. Those 33 remaining cases are now tracked in #508.
  • Existing dotenv/VM configuration failures are tracked in #506; incomplete internal CLI spawn-helper option semantics are #509. #497 remains open for integration/platform verification.

Full evidence, unchanged-source checks and limitations are documented in docs/docs/NATIVE_RUNTIME_BINDINGS.md and the #497 checkpoint. Linux/Windows execution and cross-compilation were not verified here. The full port and 100% Bun test-suite goal remain open.

14 days ago

Published another native runtime checkpoint: bfdb5f3188e6a6b8f0bea7070131144f5813c046 on codex/runtime-port (Chris Breuer, no coauthors).

#506 now carries real CLI/bunfig settings into native module and eval execution, preserving cwd, env-file selection, preloads, defines, loaders, conditions, console depth and DCE settings. 39 previously failing upstream cases are resolved with no newly failing names in the measured comparisons:

  • no-envfile: 9 pass / 0 fail, previously 1 / 8.
  • Full env file: 76 pass / 3 fail, previously 64 / 15.
  • Bunfig preloads: 18 pass / 0 fail, previously 6 / 12.
  • Console depth: 9 pass / 0 fail, previously 3 / 6.
  • Full 291-case bun-run: 259 pass / 32 fail, previously 258 / 33; #508 tracks the remaining cases.

All 49 runtime regression commands pass, including the full unchanged spawn and child-process files and all 23 native regression files. Expanded package/eval controls also pass with VM destruction enabled. Build/cached build pass 17/17 steps; focused checks pass. All five measured upstream files and 33 preload fixtures are byte-identical to the pinned source. Skips/TODOs are excluded from passing counts; workloads and assertions were not altered.

Opened #510 for the three remaining dotenv expansion/escaping failures and same-file override boundary logic. #506 has detailed evidence and remains open for branch integration/platform verification. Linux/Windows and the complete Bun port/test-suite remain unfinished; this checkpoint is not a 100% parity claim.

14 days ago

Published 7592a69bf4d268c5e50796e72ef86c8470026733 on codex/runtime-port (Chris Breuer; no coauthors).

#510 restores dotenv expansion/escaping and same-file override boundaries, with safe allocation/replacement handling. The complete unchanged env file is now 79 pass / 0 fail / 89 assertions, up from 76 / 3; its 2 skips and 2 TODOs remain excluded. No-env-file and upstream Node parseEnv checks remain green. New native controls and two Zig tests verify inherited values, duplicates, chained expansion, explicit files, non-expanding Node parsing and allocation-failure cleanup.

All 54 runtime regression commands pass, including all 23 native files and the full unchanged spawn and child-process files. Final package/eval controls also pass with VM destruction. Native build/cached build: 17/17 steps. Corpus files/fixtures were not modified and were checked against the source pin.

The wider Zig unit gate now compiles and links after correcting stale spawn-test API calls and connecting its registration symbol to the existing native N-API implementation. It executes 1,818 passes / 19 skips / 1 failure. The failure is not counted as success: #512 tracks the reduced-realm stream failure, an incorrect identity expectation in that test, and a real native unsized-read discrepancy reproduced on the published parent. Bun/Node controls confirm that merely satisfying the old assertion would be the wrong behavior.

The full 291-case bun-run file remains 259 pass / 32 fail (#508). #510 has detailed evidence and remains open for integration/platform verification. The complete Bun port, full-suite parity and other-platform verification remain unfinished under this issue.

14 days ago

Published fde7b7ebc64a2d327a1665578d4b396f8a5e93a1 on codex/runtime-port, authored/committed as Chris Breuer with no coauthors.

Correction to the prior stream diagnosis: Home’s unsized byte-read behavior matches the exact Bun pin’s explicit first-buffer fast path. Installed Bun/Node controls differ; no native concatenation override was added. #512 now records the corrected source-backed diagnosis.

The actual unit failure came from a router fixture cwd leak, which prevented loading the real upstream common module. Cwd/handle cleanup is repaired and explicitly tested. The reduced C-API stream implementation now normalizes byte views without copying their storage, preserves object-mode identity, and defaults Readable.from to object mode. Tests replace the invalid Uint8Array identity assertion with positive source-backed contracts; the upstream common import is retained, not bypassed.

Verification on the final binary:

  • Full runtime unit suite: 1,819 pass / 19 skip / 0 fail (1,838 total).
  • Native build: 17/17. All 54 native regression commands pass, including all 23 native regression files and full spawn/child-process suites.
  • All 252 unchanged Node stream fixtures rechecked against the pin and executed natively: 246 pass / 6 fail, identical to the parent with no regressions. All 63 focused readable-stream fixtures pass. These are file counts, not a claim about the full Bun suite.

The six remaining failures are now tracked in #513 (actual missing pinned Rust Brotli error-code mapping) and #514 (pipeline hangs and missing internal socket-wrapper modules). The HTTP/2 pipeline passes installed Bun/Node but hangs in Home; the full pipeline passes Node but also exposes a separate installed Bun assertion failure. Timeouts are retained as failures.

Native stream builtins still partly depend on configured external builtin literals. Verification is Darwin-only and branch integration remains pending. The full port and #66 remain incomplete. Evidence is documented in docs/docs/NATIVE_RUNTIME_BINDINGS.md and the zig-out/stream-* results.

14 days ago

Published another exact-pin compatibility checkpoint on codex/runtime-port: dc6231e.

This checkpoint ports the pinned Brotli decoder error namespace (#513) and fixes the native HTTP/2 stream-context/header contracts (#514), including owned compilation of the pin's C++ header materializer and raw outbound header pairs. The byte-identical 252-file Node stream scan improves from 246 to 248 passing files. The two newly passing files are test-stream-iter-transform-errors.js and test-stream-pipeline-http2.js.

The complete runtime unit suite remains green at 1,819 pass / 19 skip / 0 fail. The 54-command native regression matrix is 54/54 passing. Focused HTTP/2 headers/validation pass 16/16 and native generation passes 3/3 with 111 assertions. The full pinned zlib.test.js remains 377 pass / 2 skip / 1 fail; the one async buffer detachment failure is now isolated in #516.

This does not complete #66. Remaining stream failures are the general HTTP/1 pipeline timeout and three unimplemented internal wrapper fixtures (#514); compression buffer/write-result lifetime remains #516. Verification is Darwin-only and the branch is not merged to main.

14 days ago

Published 095f90396 on codex/runtime-port as Chris Breuer, without coauthors. #516 now implements async buffer pinning/GC ownership and fresh write-state resolution across Zlib, Brotli and Zstd.

Verified in native Home against the unchanged pinned tests:

  • Full zlib: 378 pass / 2 skip / 0 fail / 434 assertions (previously 1 lifetime failure).
  • Bounds 9/9; reentrancy 3/3.
  • 55/55 regression commands, including 24 native files.
  • Runtime units 1,819 pass / 19 skip / 0 fail; build 17/17.
  • 20/20 cross-codec lifetime runs with JSC exception checks, plus VM destruction. The published parent fails the new pinning control.

The #66, #513 and #516 bodies now reflect these results. No upstream tests or fixtures were changed, and skips do not count as completed parity. The branch is not merged; other platforms, #514's four stream-file gaps and the remaining broader port are still open. 100% logical Bun-suite compatibility is not achieved.

14 days ago

Baseline correction after the compression checkpoint: the local Bun release control reporting 1.4.0-canary.1+4982b91e3 reproduces the same HTTP/1 timeout and event sequence as Home. The full unchanged pipeline file times out at 45 seconds in that control. Node instead emits 400 and closes after the unframed follow-up bytes. The exact source parser waits for an unfinished method token, so this is not yet evidence of a Home-specific port defect.

The exact pin also lacks the two internal wrapper modules. The release control's bun:internal-for-testing gate prevents a comparable runtime wrapper test; that is not a passing or equivalent-execution result. All four stream files remain failing/unimplemented for the requested full-suite goal.

Updated #514 and published the source/control boundary in b4707dea5, as Chris Breuer without coauthors. No runtime workaround, upstream assertion change, or pass-count adjustment was made. The next implementation work returns to the confirmed Home CLI gaps in #508.

14 days ago

Published 626346be5 on codex/runtime-port as Chris Breuer, without coauthors; not merged to main.

The unchanged Bun run suite improves from 259 pass / 32 fail to 287 pass / 4 fail / 411 assertions: 28 resolved failures, no new failing names. Native entrypoint diagnostics, loader rejection, readable-file/script precedence and nonfatal VM log flushing are implemented. The full native matrix is 55/55 commands, runtime units 1,819 pass / 19 skip / 0 fail, and the package regression also passes VM destruction/JSC checks. The failed disk-space unit attempt remains recorded; its successful rerun followed scoped cleanup.

The remaining execution work is split into #518 (native bunx) and #519 (workspace filtering), with additional optional-config target parsing in #517. #508 and #66 bodies are current. No upstream test/assertion/deadline changes, and no whole-suite or cross-platform completion claim.

14 days ago

Published 7286e0f29 on codex/runtime-port as Chris Breuer, without coauthors; not merged to main. #519 now passes the unchanged workspace suites 58/58, and the complete unchanged bun-run file improves 287/4 → 288/3 with no new failing names. 55/55 runtime regression commands, VM destruction/JSC checks, and 1,819 unit tests / 19 skips / 0 failures pass. All 31 exercised upstream source files match the pin; no upstream tests or deadlines were changed.

#518 retains the three bunx failures and its actual installer-chain work; #517 retains optional-config scanning. The issue bodies now reflect these results, earlier failed attempts, and the unverified platform/integration boundaries. The full port and 100% logical Bun-suite compatibility are still incomplete.

14 days ago

The full unchanged pinned bunx corpus now has a strict-native baseline on published 7286e0f297526e1fa6a9f2977caed4e6f352a6fd: 0 pass / 33 fail / 1 skip, 56 assertions, 4.0 seconds. This is an observed failure baseline, not parity. Most failures reach the existing external-runtime diagnostic instead of native bunx. The run preserved test bytes (SHA-256 dd6914ffb155da0da69c52b9add23f754f2fa9c52a20eedc2e5df15857dede8b) and its global-cleanup preflight found no pre-existing matching /tmp entries. Evidence: zig-out/bunx-corpus-parent.{json,stdout,stderr}.

The candidate remains unverified while the newly activated installer compiles. This baseline supplements the separate 288 pass / 3 fail bun-run result; the counts must not be combined. Native installer work remains tracked in #518; CLI corpus tracking is #508.

14 days ago

Native bunx/installer candidate progress is recorded in #518. After recovering from local disk exhaustion, build 18 and its native VM smoke passed. The full unchanged bun-run suite now passes 291/291 (416 assertions) on that candidate.

This is not a published parity checkpoint: real local-registry installation failed at the retained lockfile hash-integrity assertion. A pinned-source audit identified two incorrect legacy-hash aliases; build 19 is testing the correction. No code from this tranche has been committed/pushed, and the full bunx suite remains unverified on a working installer. Published baseline remains 7286e0f297526e1fa6a9f2977caed4e6f352a6fd. #508 and #518 remain open; the full #66 objective is unchanged.

14 days ago

Published 3be72ca5b on codex/runtime-port as Chris Breuer, with no coauthors; not merged to main.

  • Native bunx and the real native install chain now execute in Home, including missing-package downloads, dependencies, bin/cache selection, copied aliases and leading --bun x.
  • Full unchanged bun-run: 291 pass / 0 fail / 416 assertions, resolving all three remaining rewrite cases from the 288/3 parent.
  • Full unchanged bunx with an isolated PATH and node/bun hard links to the exact Home binary: 33 pass / 1 Windows-only skip / 0 fail / 161 assertions. No installed Node/Bun runtime executes those JavaScript children.
  • Ordinary PATH bunx is 32 pass / 1 skip / 1 fail, because the installed claude command satisfies binary lookup before the alias test reaches its mock registry. Pinned Bun reproduces this failure and passes the isolated alias control. An earlier symlink-only Home PATH run also retains its cowsay/yargs basename failure; the successful hard-link run does not alter runtime values or package source.
  • Native installation/analyzer/credential/cache safety/runtime-auto-install regression passes normally and with VM destruction/JSC checks. Upstream add --analyze: 1 pass / 18 assertions. Unchanged workspace suites: 58/58 / 192 assertions.
  • Native build 17/17; runtime units 1,820 pass / 19 skips / 0 failures, 19/19 steps; regression commands 56/56, including 25 native files, full spawn 126 pass / 5 skips / 5,484 assertions and child-process 32 pass / 1 skip / 1 TODO / 72 assertions.
  • All 33 measured upstream source files match pin 4982b91e3702094330f3be3883354c52b8c01323. The unchanged test's regenerated tarball was archived, normalized contents checked, and the pinned fixture restored. No upstream assertion, workload or deadline changed.

The hash-verification panic was fixed with the actual legacy Wyhash11 implementation, preserving the assertion. Saved registry tokens now obey the pin's host/transport isolation rule. Angular's original five-minute timeout was caused by a no-op HTTP initializer in runtime auto-install; the real owned HTTP thread is now used and the unchanged Angular test passes.

Darwin verification only. Skips/TODOs, other platforms, branch integration, other installer features and full source ownership remain unverified. The complete port and 100% logical Bun-suite parity remain unfinished. Related: #66, #508, #518, #519; optional config scanning is #517.

Evidence and execution boundaries are recorded in docs/docs/NATIVE_RUNTIME_BINDINGS.md, zig-out/bunx-publication21.json, bunx-source-integrity21.json, bunx-regression21s.json, bunx-unit21.{log,json}, bunx-corpus-candidate21-native-hardlinks.json, and package-wide-bunx-candidate21.json. Binary SHA-256: b57fad4dfb9c8cf03a79da23f782e3bf18c3d1d7539df9036b8b1fd73b90b852. Earlier disk/build/hash/timeout failures remain recorded, not counted as passes.

14 days ago

Published 828ecc729 on codex/runtime-port as Chris Breuer, sole author and committer with no coauthor trailer. Not merged to main.

The outer dispatcher now uses required/repeated versus optional flag metadata consistently, preserves optional-config entrypoints, honors -- and post-entry arguments, and displays native help for bare config. No clap implementation or upstream assertions changed. All 21 controlled boundary cases match pinned Bun on status, entry/argument selection and config diagnostic behavior; exact help formatting is not claimed.

The expanded existing native regression passes normally and with VM destruction/JSC checks; the published parent fails its new selection assertion. Complete unchanged suites: bun-run 291/291 / 416 assertions, native hard-link-PATH bunx 33 pass / 1 Windows-only skip / 0 fail / 161 assertions, workspaces 58/58 / 192 assertions, eval 33/33 / 70 assertions. Eval also passes in pinned Bun after Home installs the missing declared React 18.3.1 dependency into an isolated directory and links the manifest's expected local dependency location. No upstream source changed.

Build 17/17; units 1,820 pass / 19 skip / 0 fail (19/19 steps); regression commands 56/56, including 25 native files, full spawn and child-process. All 35 measured upstream source files match pin 4982b91e3702094330f3be3883354c52b8c01323. Generated bunx fixture bytes are archived and restored after normalized-content verification. Scoped lint/format/whitespace checks pass.

The unchanged tsconfig-override file remains 5 pass / 1 fail / 14 assertions in published parent and candidate versus pinned Bun's 6/6 / 17 assertions. Its auto-install 404 diagnostic mismatch is tracked separately in #525; one earlier transient pass is not stable parity. Shared Darwin checkout only; unrelated compiler edits excluded. Other platforms, exact help rendering, branch integration, and full source/runtime parity remain open. Skips/TODOs are not completed parity; #66 remains incomplete.

Evidence: zig-out/config-publication1.json, config-boundary-{parent-control,candidate1}.json, config-native-{parent,candidate1-corrected,destruction}.json, config-build{1,2}.{log,json}, config-unit1.{log,json}, config-regression1s.json, package-wide-config-candidate1.json, filter-corpus-config-candidate1.json, bunx-corpus-config-candidate1.json, config-wide-{parent,candidate1,release-control}-declared-deps.json, and config-source-integrity1.json.

14 days ago

Published 9b3a5c1ad on codex/runtime-port as Chris Breuer, sole author and committer, no coauthor trailers. Not merged to main.

#525 now uses canonical missing-module errors or typed resolver metadata. Runtime installer initialization validates the root directory before singleton allocation, returns and retains initialization failures, and propagates them through resolver/transpiler accessors. Native readable-file dispatch runs before cwd package scanning; custom loaders retain full preflight. The VM-side generic cwd/log reconstruction is removed.

Unchanged pinned suites:

  • tsconfig-override: 6 pass / 0 fail / 17 assertions, from published parent's 5/1.
  • resolver: 39 pass / 2 skips / 1 TODO / 0 failures / 59 assertions, from parent's 38 pass / 1 fail / 1 error; spawned file 9 passes / 1 TODO / 41 assertions. Pinned Bun matches. The unreadable-cwd test retains its original 5,000 ms deadline.
  • bun-run 291/291 / 416 assertions, native hard-link-PATH bunx 33 pass / 1 Windows-only skip / 0 fail / 161 assertions, workspaces 58/58 / 192 assertions, eval 33/33 / 70 assertions.

The expanded existing native registry fixture verifies actual 404s, native identity, CJS/ESM error codes and three repeated initialization failures for each implicit/explicit and absolute/relative entry scenario. Normal and VM-destruction/JSC-check runs pass; all four cwd controls and all 21 prior config controls match pinned Bun.

Build 17/17; units 1,820 pass / 19 skips / 0 failures (19/19 steps); regression commands 56/56, including 25 native files, full spawn and child-process. All 37 measured upstream source files match source pin 4982b91e3702094330f3be3883354c52b8c01323; regenerated tarball contents verified and pinned bytes restored. Declared resolver dependencies were installed with Home into an owned directory and linked without replacing existing empty corpus directories. No upstream assertion/workload/deadline changed. Scoped lint/format/whitespace pass.

Remaining failure: #526. EOF-delimited HTTP/1.0 registry 404s still trigger the pre-existing pending-task assertion after caught errors, including in this final candidate. Content-Length responses pass with both closing and persistent connections; pinned Bun handles the original EOF case. The assertion and failed evidence remain intact. Shared Darwin checkout only; unrelated compiler edits excluded. Other platforms, branch integration, skips/TODOs and full source ownership remain unverified. #66 is incomplete.

Evidence: zig-out/resolve-publication3.json, resolve-build3.{log,json}, resolve-build3-{binary,source-snapshot}.json, resolve-unit3.{log,json}, resolve-regression3s.json, resolve-wide-{parent-declared-deps,release-declared-deps,candidate3}.json, resolve-native-{candidate3,destruction}.json, resolve-cwd-{release-control,candidate3}.json, resolve-transport-matrix3.json, and resolve-source-integrity3.json. Earlier source-only diagnostics, missing dependency failures, startup timeout and inactive-union panic remain recorded.

14 days ago

Follow-up investigation for #526 identified two concrete causes in native code:

  • EOF-delimited buffered HTTP bodies were publishing partial progress as completion. The installer could parse half a manifest or enqueue a completed request twice. The candidate gates notifications on the streaming signal without disabling incremental decoding or weakening pending-task assertions.
  • Setting libarchive format options clears its selected format. Opening a fragmented gzip/tar stream then entered non-resumable format bidding. The new candidate selects tar after the options; streaming remains enabled.

The original EOF-404 reproducer passes in the first candidate, while a new successful fragmented package install exposed the second problem. The updated candidate is still being verified; no completion claim yet.

Broader unchanged corpus comparisons exposed separately tracked gaps: #527 (Home 22 pass / 2 fail vs pinned Bun 24 pass in fetch-gzip) and #528 (Home 5 pass / 1 fail vs pinned Bun 6 pass in streaming-extract; missing 2 GiB buffered extraction limit). All original workloads and timeouts remain intact. Whole-suite parity is incomplete.

14 days ago
  • Latest HTTP/installer checkpoint: 90ced0ed6, pushed on codex/runtime-port as Chris Breuer without coauthors, not merged to main. #526 repairs buffered EOF completion and fragmented tar-format selection; native real-install, streaming-handshake, VM-destruction and three 404 transport controls pass. #527 advances unchanged fetch-gzip from 22/2 to 24/24 / 43 assertions, preserving the 1,025 MiB workload. #528 advances unchanged streaming-extract from 5/1 to 6/6 / 180 assertions, enforcing the pinned 2 GiB buffered limit against the original 2.25 GiB payload. Four further complete fetch files pass; full zlib retains 378 passes / 2 skips / 434 assertions. Retains bun-run 291/291, native hard-link-PATH bunx 33 pass / 1 Windows-only skip / 0 fail, workspaces 58/58, eval 33/33, tsconfig 6/6, resolver 39 pass / 2 skips / 1 TODO plus its spawned 9 pass / 1 TODO, and 21 config controls. Build 17/17; units 1,824 pass / 19 skips / 0 failures (19/19 steps); regressions 56/56 (25 native files); 46 measured upstream test sources match the exact pin. No upstream assertion/workload/deadline changes. #526–#528 retain platform/integration scope. Shared Darwin checkout; unrelated compiler edits excluded. Skips/TODOs, other platforms, integration and full source ownership remain unverified. Whole-suite parity is incomplete.

Details and reproducible evidence are in docs/docs/NATIVE_RUNTIME_BINDINGS.md and linked issues #526, #527 and #528. The commit is published, not merged to main.

14 days ago

Fresh native evidence corrects the older checked HTTP/3/body-stream entries above. #530 tracks the complete unchanged body-stream matrix (Home 4,883 pass / 4,203 fail / 2 errors; pinned Bun 9,086 pass) and HTTP/3 client file (Home 6 pass / 46 fail; pinned Bun 52 pass). No adapter/delegation or modified upstream tests were used.

#529 tracks a separate confirmed abort-settlement defect: Home's original handler cancels the upload and returns before rejecting buffered response-body promises. The source-pinned fix now passes the unchanged 2-test abort file and the new native cancellation/lifetime fixture, including VM destruction; wider verification is still running. Whole-suite parity remains incomplete.

14 days ago
  • Latest body-abort checkpoint: fb161314a, pushed on codex/runtime-port as Chris Breuer without coauthors, not merged to main. #529 ports terminal response-error settlement before upload cancellation; unchanged abort file 2/2 / 6 assertions (parent 1 pass / 1 fail), queued-abort 1/1, and native 24-scenario normal/destruction/reentry checks pass. Build 17/17; units 1,824 pass / 19 skips / 0 failures (19/19 steps); regressions 57/57 (26 native files); 64 measured upstream sources match the pin. Five body files pass, including clone 25/25 and body 346 passes / 4 skips; five fetch files retain their passes including gzip 24/24. The full body-stream matrix is NOT green: parent 4,883 pass / 4,203 fail / 2 errors, candidate 4,883 pass / 4,203 fail / 10 errors, pinned Bun 9,086/9,086. #530 tracks the HTTP/3 server path: parent client/adversarial files are 6 pass / 46 fail and 5 pass / 22 fail; both clients fail against Home's server before its JS handler, both succeed against Bun's server. Original assertions/workloads/deadlines retained. Historical HTTP/3 completion claims below are corrected. Shared Darwin checkout; unrelated compiler edits excluded. Platform/integration, skips/TODOs and full source ownership remain unverified. Whole-suite parity is incomplete.

Detailed evidence: docs/docs/NATIVE_RUNTIME_BINDINGS.md, #529 and #530. The full objective remains active.

14 days ago

The HTTP/3 investigation found a concrete TLS ABI mismatch: Home omitted ssl_min_version/ssl_max_version from the C options struct. LLDB observed request_cert = 600 and reject_unauthorized = 3 at the C boundary, with UDP and ALPN working but no accepted connection. Restoring the fields and their digest entries restores all four Home/Bun client-server loopback combinations.

The first candidate passes the entire unchanged body-stream file: 9,086/9,086 tests / 135,984 assertions, and HTTP/3 adversarial 27/27 / 163. Follow-up fixes for duplex progress and unsupported custom TLS options bring HTTP/3 client to 50 pass / 2 fail / 235 assertions. The two remaining compression cases are explicitly still failing; this is not whole HTTP/3 completion. The final rebuilt artifact and regression suite are still being verified; these changes are not published yet.

Focused follow-ups now track the remaining work:

  • #531: request compression across HTTP/1, HTTP/2 and HTTP/3.
  • #532: native TLS SecureContext/CA verification and version-option plumbing.
  • #533: HTTP/2 Host-verification session isolation and invalid response-header names.

#530 remains open for remaining HTTP/3 work and platform/integration verification. All 71 measured upstream tests and six consulted implementation sources match pin 4982b91e3702094330f3be3883354c52b8c01323. Full logs, failed attempts, original deadlines and workloads are retained. #66 remains incomplete.

14 days ago

Published TLS/HTTP transport checkpoint: 29c196835

Pushed on codex/runtime-port as Chris Breuer, without coauthors; not merged to main. The TLS C ABI now includes the missing min/max fields and correct certificate-verification offsets. HTTP/3 refuses unsupported trust settings and automatic upgrades that would drop them. Multiplexed progress now delivers the first response chunk during a duplex upload while HTTP/1 buffered EOF behavior remains intact.

  • Full unchanged body-stream matrix: 9,086/9,086 / 135,984 assertions. This replaces the prior 4,203 HTTP/3 failures; both ABI-only and final rebuilt candidates pass.
  • HTTP/3 adversarial: 27/27 / 163. HTTP/3 client: 50 pass / 2 fail / 235; both remaining failures are request compression in #531, so whole HTTP/3 is not complete.
  • HTTP/2 client: 58 pass / 2 fail / 2 errors / 185, still missing request compression. Adversarial: 13 pass / 2 fail / 29, with verification-host session isolation and invalid header names tracked in #533.
  • TLS server validations: 16/16 / 32. TLS context/CA ownership and user-facing version options remain in #532; restoring ABI fields alone does not implement those options.
  • Native build 17/17; runtime units 1,824 pass / 19 skips / 0 failures, 19/19 steps; sequential regression 58/58 commands, including 27 native files, full spawn 126 pass / 5 skips / 5,484 assertions and full child-process 32 pass / 1 skip / 1 TODO / 72.
  • All five complete fetch files pass in the sequential rerun, including gzip 24/24 with its original 1,025 MiB payload and streaming 110 passes / 5 TODOs. Both abort files retain their passes. The new native TLS/HTTP3/duplex fixture passes normally and with VM destruction checks; published parent fails. Four-way Home/Bun QUIC loopback controls all return the exact response.

The initial parallel validation had original spawn/streaming timeouts; a unit attempt exhausted disk and could not write a valid result. Those attempts remain failures/invalid evidence. Only obsolete task-owned objects were removed, with all executables preserved. The complete sequential reruns pass without changing deadlines. An incorrect expectation in the newly written native fixture was corrected to enable certificate verification for the enforced identity callback; upstream tests were untouched.

72 measured upstream test/harness sources and six consulted implementation sources match pin 4982b91e3702094330f3be3883354c52b8c01323. Final native SHA-256: 039a30eee0d7ef2098b92898a1b9962cd3a1ebf5631a9fc037cd98df1e09202c. Evidence is documented in docs/docs/NATIVE_RUNTIME_BINDINGS.md and zig-out/h3-source-integrity-final.json, h3-corpus-final3.json, h3-unit4.json, h3-regression4s.json, eof-fetch-h3-sequential4.json, h3-publication.json, and complete per-run logs where successfully recorded.

#530 remains open for remaining HTTP/3 and platform/integration work. #531, #532 and #533 retain the specific failures above. Shared Darwin checkout only; unrelated compiler work is excluded. Skips/TODOs, other platforms, integration, full source ownership and 100% logical Bun-suite compatibility under #66 remain incomplete.

14 days ago

Published fd239c3ac on codex/runtime-port, as Chris Breuer without coauthors; not merged to main.

#533 now preserves the idle HTTP/2 session's verification-host hash and validates response-name tokens without desynchronizing HPACK. Complete adversarial 15/15, lifetime 7/7, body-stream 9,086/9,086 / 135,984 assertions. Units 1,825 pass / 19 skip / 0 fail, and 59/59 sequential runtime regression commands pass (28 native files). Original upstream assertions, workloads and deadlines are unchanged.

Request compression still fails in the HTTP/2 and HTTP/3 client suites (#531). Two CONNECT-proxy crashes reproduce in both this checkpoint and the published parent; pinned Bun passes them, tracked in #535. TLS context work remains #532. #66's stale checked HTTP/2-completion row is corrected to match current strict-native results. Platform/integration checks and the full port remain incomplete. Detailed evidence and failed attempts are retained in the updated issue bodies and docs/docs/NATIVE_RUNTIME_BINDINGS.md.

14 days ago

Published 2c5df8cce on codex/runtime-port as Chris Breuer, with no coauthors; not merged to main.

Request compression and CONNECT ownership are repaired (#531/#535), including the duplicated file-descriptor leak. Complete original compression 32/32, HTTP/2 client 60/60, HTTP/3 client 52/52, and both CONNECT files pass. Native build 17/17, runtime units 1,827 pass / 19 skip / 0 fail, 60/60 regression commands, and the full body-stream matrix 9,086/9,086 / 135,984 assertions pass. EOF and abort suites retain their passes.

The tracker and #530/#531/#533/#535 are updated. New #539 records intermittent initial HTTP/3 upload stalls that reproduce in both Home and pinned Bun; successful replays do not erase those failures. #532 TLS context/CA/version behavior remains the next implementation gap. Platform verification, integration, skipped/TODO behavior, full source ownership and 100% logical parity remain incomplete.

14 days ago

Published fbdfbf890 on codex/runtime-port as Chris Breuer without coauthors; not merged to main.

#532 now has private context/CA isolation, binary PFX parsing, detailed certificate chains, hostname authorization, TLS versions and correct Duplex-server role handling. Build 17/17, units 1,828 pass / 19 skip / 0 fail, regressions 61/61 (30 native files), core TLS files, seven of eight transport files, body-stream 9,086/9,086, EOF and abort checks pass. HTTP/3 adversarial initially failed 24 pass / 3 fail, followed by three 27/27 replays. #542 tracks SNI/ALPN callbacks; #543 session/keylog events. #539 remains unresolved; passing retries do not erase the initial failure. Platform/integration, skips/TODOs, full source ownership and whole-suite parity remain incomplete.

14 days ago

Published 04569d8f9 on codex/runtime-port as Chris Breuer without coauthors and closed #543. Native TLS session/keylog delivery now matches pinned Bun's complete connect-file result: 28 pass / 2 live-certificate failures / 1 skip / 106 assertions. Build 17/17, units 1,828/1,828 with 19 skips and zero failures, sequential regressions 62/62, lifetime/GC repetitions 20/20. Seven adjacent SNI/ALPN failures remain isolated in #542, which is next. This branch is not merged to main and 100% whole-suite parity remains incomplete.

14 days ago

Published a9a95f6a4 on codex/runtime-port as Chris Breuer without coauthors; not merged to main. #542 is complete and closed.

The unchanged TLS server file advances from 31 pass / 7 fail / 122 assertions to 38/38 / 147 assertions, exactly matching pinned Bun. Combined async SNI + ALPN, same-host precedence, callback errors, late resolution, forced GC, and context rotation are covered by a new native regression that passes 20/20 independent processes plus VM destruction. Final build 17/17; scoped units 1,828 pass / 19 skip / 0 fail; sequential runtime regressions 63/63. The tracker’s current checkpoint and TLS checklist are updated. #539 and the other explicit platform, ownership, skipped/TODO, and subsystem gaps remain open; whole-suite parity is not claimed.

14 days ago

Published 0fd884f59 as Chris Breuer without coauthors; not merged to main. #539 is now closed through a controlled environment correction, with no runtime or upstream-test change.

The complete unchanged HTTP/3 adversarial file passes 12/12 serialized Home processes and 12/12 serialized pinned Bun processes, all 27/27 / 163 assertions. Intentional eight-way execution reproduces the historical first-upload deadline sequence in both binaries, while socket capture confirms distinct UDP ports. The tracker now requires heavyweight HTTP/3 verification to run serially and away from builds. #530 remains open for platform/integration and ownership, and the broader parity goal remains incomplete.

14 days ago

Published stream-wrapper checkpoint: 0be19c718 on codex/runtime-port, authored and committed solely by Chris Breuer without coauthors.

The three unchanged Node internal-wrapper fixtures now pass with implemented behavior: byte forwarding, exact decoded-string/object-mode rejection, pending-write shutdown ordering, and single cancellation completion after destroy. The adapter is inserted into the pinned generated InternalForTesting function without renumbering its native dispatch ABI. Generator drift checks cover the replacement boundary.

Verification: wrapper fixtures 3/3; three-mode lifetime probe with 500 scenarios per mode; byte-identical pinned stream scan 251/252 (up from 248/252); generator tests 3/3 / 115 assertions; build 17/17; runtime units 1,828 pass / 19 skip / 0 fail, 19/19 steps. No upstream source, assertion, workload, deadline, retry, skip, or fallback changed.

#514 is closed after completing its HTTP/2 and wrapper scopes. Its one unresolved file was split into #547: test-stream-pipeline.js still times out in the malformed HTTP/1 case, and pinned Bun reproduces that timeout. It remains a failing Node-compatibility boundary, not a pass. Therefore the stream corpus is not yet 252/252 and the full port remains incomplete.

14 days ago

Published and closed #547 with commit 26b5a8b9165d8c65488c512d90d6d8cd58de8872 on codex/runtime-port.

This checkpoint makes Home own the pinned uWebSockets unified object and finishes Node-compatible malformed HTTP/1 pipeline settlement. The unchanged Bun stream corpus is now 252/252 files passing; the previously hanging test-stream-pipeline.js case now returns 400 Bad Request, closes, and settles with ERR_STREAM_PREMATURE_CLOSE. Valid fragmented methods and valid same-buffer pipelining have dedicated native coverage.

Additional verification includes 64/64 runtime publication regression files, 59/59 request-smuggling tests, 11/11 HTTP chunking tests, 1,828 passing scoped Zig units, and a clean 18/18-step native build. Details and the one deliberate Node-compatibility divergence from the pinned Bun parser are recorded in #547's completion report.

The overall Bun-to-Home port remains in progress; this closes only the HTTP/1 malformed pipeline checkpoint. No upstream tests, timeouts, or workloads were weakened.

14 days ago

Closed #449 after completing its outstanding native acceptance gate.

The published three-commit stream iterator series (8330bb606, b2d27bca3, 0b6cb6bee) is present on remote codex/runtime-port. The exact native selector now passes 45/45 unchanged fixtures: all 42 stream iterator files plus FileHandle pull, pullSync, and writer. All 45 sources are byte-identical to Bun pin 4982b91e3702094330f3be3883354c52b8c01323, no fixture emitted a skip marker, and there were zero failures or timeouts. Disabled-feature subprocesses used the real emitted Home executable, and the original ten-second broadcast workload remained intact.

Full evidence is recorded in #449's completion report. This completes the experimental stream/iter integration slice only; #66 and the broader Bun port remain in progress.

14 days ago

Internal stream-wrapper checkpoint — e6aacc5ad

Published on codex/runtime-port as Chris Breuer, sole author and committer, without coauthor trailers. #446 is complete.

Home now recognizes and gates --expose-internals, exposes Node v26.3.0-compatible internal/test/binding stream request objects/state and callable internal/js_stream_socket, and preserves write/drain/shutdown ordering with exactly-once completion and negative destroy cancellation. The runtime and generated internal-for-testing module share one adapter source. The corrected gate also exposed and fixed direct aliases for the already-ported internal/streams/add-abort-signal, internal/async_context_frame, and internal/async_hooks registry modules.

Verification:

  • Three unchanged target fixtures pass with their real flag and all callback/error obligations active.
  • Seven relevant unchanged fixtures pass with exception checks plus forced VM destruction.
  • Corrected full stream matrix: 252/252 pass, all source-identical to pin 4982b91e3702094330f3be3883354c52b8c01323; 48 flag-bearing files executed; 0 failures/timeouts/help substitutions/skip markers.
  • Native regression passes in normal, exception-checking, and VM-destruction modes.
  • Generator: 3/3, 117 assertions. Builtin map: 5/5. Scoped home_rt: 1,829 passed / 19 skipped / 0 failed, 20/20 build steps. Native build and cached rebuild: 18/18. Focused lint/format/whitespace checks pass.
  • All five direct internal specifiers are rejected without --expose-internals.

Correction: the earlier 252-file scan was invalid for these seven files because the unsupported flag printed CLI help and exited 0. The new runner parses each source flag and rejects help or skip output. The pinned Bun release still lacks the two stream-wrap internals, so Home follows Node v26.3.0 for that compatibility surface.

This closes #446 only. The broader Bun port, existing skipped tests, remaining open parity issues, other platforms, and 100% whole-suite compatibility remain incomplete.

14 days ago

Published core-audit cleanup — #456 and #458 closed

The previously verified commits for native error/empty-module handling (d48e410f2), owned process/Intl metadata (a561c97f4), and owned URL builtins (6562477c0) are published ancestors of current codex/runtime-port head e6aacc5ad. Their issues had remained open because publication was blocked at the time; current revalidation is complete, so #456 and #458 are now closed.

The intended 45-file events/eventtarget/URL/util/string-decoder set is source-identical to pin and accounts for 41 executable passes / 3 explicit upstream Node-internal skips / 1 disabled commented body / 0 failures. The skips and disabled body remain unsupported and are not parity passes. The three #458 URL targets pass without skips or delegation, and the native URL regression passes with exception checks plus forced VM destruction.

This is issue-state cleanup backed by current verification, not a new whole-suite claim. #66, unsupported fixtures, other platforms, and 100% Bun parity remain incomplete.

14 days ago

HTTP/2 lifecycle checkpoint: #445 is complete in 0e76ccdc00d7c70270ae047f9b9e1d00e09efd68.

The port now preserves stream-before-session teardown ordering, graceful drain, listener-ordered stream close callbacks, immutable first reset/error identity, and distinct close/destroy flags across modeled, raw, and handshake sessions. SETTINGS FIFO/maxOutstanding terminal behavior is covered as well.

The source-identical pinned Bun test/js/node/http2/node-http2.test.js passes exactly 287/287 with no failures, todo, or unsupported cases across its six Node/Bun × padding matrix. Focused contracts pass 6/6; home_rt passes 1,829 with 19 skips and 0 failures; debug is 18/18.

Detailed verification: #445.

14 days ago

Tracker cleanup: #430 is now closed after current-head re-verification of the published stream-wrapper implementation (0be19c718, completed for real internal-module loading in e6aacc5ad).

The three pinned test-stream-wrap*.js sources remain byte-identical and their maintained exact gate passes. The generic handle-backed socket gate and native request-lifecycle regression also pass with exception checks and forced VM destruction. Detailed hashes and evidence are recorded on #430.

This is issue-state correction, not a new whole-suite completion claim; #66 remains active.

14 days ago

Deferred-module checkpoint: #491 is complete and closed in fd1471630.

Home now implements pinned Bun's native static import defer parser, phase-aware AST/printer, eager+deferred request metadata, validated cache serialization, deferred namespace JSC entries, dead-code preservation, and runtime option enablement. The exact pinned suite is 20/20, cold/warm isolated transpiler-cache coverage is green, scoped home_rt is 1,830 pass / 19 skip / 0 fail, and the debug build is 18/18. Full evidence is in the #491 closing checkpoint.

While checking the adjacent compiled-bytecode case, I isolated a generic standalone cache-key miss unrelated to deferred imports and opened #549. The overall Bun parity goal remains active; #549 joins the remaining runtime queue instead of being hidden inside #491.

14 days ago

Standalone compile/bytecode checkpoint landed on main in babb9f9e2, integrated with the concurrent TypeScript line by deccc8155.

Closed #549 after completing and verifying the embedded standalone graph path:

  • full pinned graph serialization/deserialization and platform executable embedding
  • native startup handoff before Home's compiler/REPL dispatch
  • embedded CJS and ESM bytecode cache hits with exact origin paths
  • module-info restoration and CommonJS format propagation in the loader
  • user argument passthrough, compile-time execArgv, BUN_OPTIONS, and process-title handling
  • real zstd compression plus required Zig 0.17 platform-format adaptations

Verification: 18/18 debug build; scoped runtime 1,841 total / 1,822 passed / 19 skipped / 0 failed; fresh CJS and ESM compiled executables both reported JSC cache hits; scoped Pickier and diff checks clean.

Opened #550 for the distinct remaining CLI-dispatch task: routing Bun-compatible home build --compile ... flags through the native runtime BuildCommand. The umbrella remains open for the remaining Bun corpus work.

14 days ago

Native Bun-compatible build CLI routing is now on main in 07be01228e5d5c677475d3d4083d23d4b00a0fc6; implementation commit: 2f842a7e317a352e7dc0e84a48042fd62f919065.

This completes #550: JS/TS home build now enters the ported native BuildCommand, including bundling, multiple entry points, standalone compilation, bytecode, --compile-exec-argv, BUN_OPTIONS, CJS/ESM formats, sourcemaps, metadata, minification, and output controls. .home/.hm and --kernel remain on Home's compiler path.

End-to-end standalone checks produced CJS and ESM bytecode cache hits, preserved runtime argv/execArgv, and the scoped runtime suite remains green at 1,822 passed, 19 skipped, 0 failed (1,841 total).

Activating the complete CLI exposed the next independent Bake boundary. Production home build --app is now tracked in #551.

14 days ago

Configuration follow-up from the #550 verification: the explicit Home-only -Denable_jsc=false build currently fails at link time with the broad native runtime symbol graph still retained. This is separate from the green JSC-enabled build and is now tracked in #552 with a focused acceptance checklist.

14 days ago

Port progress: #552 is complete and closed in 5acfbe6ea.

This restores the independent Home compiler configuration: -Denable_jsc=false now builds all 5 steps without retaining or linking any generated JSC/WebKit/Bun runtime symbols. Native .home compilation works, while JavaScript/TypeScript and other runtime-only commands fail with an explicit JSC-disabled diagnostic. The full JSC configuration remains green at 18/18 build steps, and the scoped runtime suite remains at 1,822 passed / 19 skipped / 0 failed.

The overall Bun parity goal remains active. The next tracked build-surface item is #551, the Bake production home build --app port; broader Bun-suite parity work continues under this issue rather than treating the scoped runtime result as full-suite completion.

14 days ago

Bake production checkpoint completed: #551 is shipped on main in 5d560ae27a2a189b48f47723a3628a1e02067921.

This removes the home build --app production stub and ports the pinned Bun production route scan, client/server bundling, config parsing, build-time prerendering, framework sources, and import.meta.env mode/side defines. Focused coverage now exercises static output, dynamic [slug] expansion through getParams, contained dist/_bun assets, and failure diagnostics.

Gates at this checkpoint:

  • Bake integration: 18/18 build steps
  • native runtime suite: 1,822 passed, 19 skipped, 0 failed
  • JSC-disabled compiler: 5/5 build steps
  • scoped Pickier and diff checks: clean

The remaining Bake live development/HMR surface has a dedicated child issue: #553. The overall Bun parity goal remains active here in #66.

14 days ago

Bake HMR runtime checkpoint published in eeeacf66974fa696afd0a6ea267aea839b3b102c under #553.

Home no longer returns an empty HMR runtime. The exact pinned Bun client/server generated payloads are embedded with their real line-count contract, and focused tests verify the WebSocket, handleRequest, and registerUpdate interfaces. Current gates are 1,823 passed / 19 skipped / 0 failed, Bake production 18/18, and non-JSC 5/5.

#553 stays open for the full DevServer, route serving, file watching, rebundling, and browser update path. Overall parity remains active here.

14 days ago

Bake development/HMR checkpoint — 2026-08-29

Published to main as Chris Breuer without coauthors:

  • 1c5e32510 — full pinned Bake DevServer orchestration, HTML/framework routing, watcher/HMR integration, generated assets, and the runtime-default allocator ownership fix discovered by real incremental rebuilding.
  • 88283e4b7 — permanent development integration coverage for syntax diagnostics and recovery after a failed rebuild.

#553 is now closed. The new test-bake-development gate exercises initial HTML/client serving, raw HMR negotiation, a real hot update, an e build-error frame, repair to a subsequent u update, server survival, and filesystem framework routes with a dynamic parameter. Final post-rebase gates are non-JSC 5/5, JSC home_rt 1,808 passed / 19 intentional skips / 0 failed (20/20 steps), Bake production 18/18, and Bake development 18/18. The same edit/recovery probe passed under AddressSanitizer. Focused Pickier, Python compilation, Zig formatting, pinned asset hashes, and whitespace checks pass.

Deeper framework probing exposed a separate narrow bridge gap, now #554: Bake server bundles need the bun:app response bridge and the generated $ERR_SSR_RESPONSE_EXPECTED builtin. Framework discovery/execution itself is live and tested via globalThis.Response; the pinned generated runtime remains byte-exact. #554 is next in this Bake chain.

The repository-wide Pickier command was run as required, but the existing vendored-fixture/snapshot baseline reports 20,866 problems; it made no working-tree changes. This is not counted as a green whole-repository lint result.

This is a substantial parity checkpoint, not a claim of 100% Bun-suite completion. #66 remains open.

14 days ago

Bake response bridge checkpoint — 2026-08-29

#554 is complete and closed on main in 92715e738, authored and committed by Chris Breuer without coauthors.

Home now preserves parser-generated bun:app imports as builtin-tagged records through BundleV2, so Bake framework handlers can use ordinary new Response(...) and reach the native SSR response constructor. The live development fixture also covers invalid handler returns: they produce an HTML 500 carrying the intended ERR_SSR_RESPONSE_EXPECTED message/code instead of an unresolved generated-builtin ReferenceError.

The pinned Bun control exposed an upstream defect in the generated bake.server.js: its ordinary eval program retains $ERR_SSR_RESPONSE_EXPECTED, and the pinned local Bun release also raises ReferenceError. Home applies the minimal logical correction in its embedded artifact and locks out reintroduction of the raw token. This is a deliberate correctness fix, documented on #554, rather than a byte-equality claim.

Checkpoint gates: JSC home_rt 1,808 passed / 19 skipped / 0 failed (20/20); Bake production 18/18; Bake development 18/18; JSC-disabled debug 5/5; focused Pickier, Python compilation, Zig formatting, runtime-contract, and whitespace checks clean. The repository-wide Pickier baseline remains the previously recorded vendored-fixture/snapshot failure and is not claimed green.

This completes the Bake production → development/HMR → framework response chain (#551, #553, #554). The umbrella remains active; 100% logical Bun-suite parity is not yet achieved.

14 days ago

Follow-up scope is now #555: admit the complete pinned Bake corpus against Home, establish a truthful file-by-file inventory, and split independent failures into linked issues. The focused Home Bake gates are green, but they are not a substitute for executing all vendored pinned Bake tests; skips, TODOs, disabled bodies, environment exclusions, and expected failures will remain explicitly outside the parity count.

14 days ago

Bake corpus checkpoint: pushed cc47d6269c0409c460141268be63c957fc045fd6 to main and updated #555.

Home now exposes the real pinned-Bun frameworkRouterInternals binding plus both layers of the DevServer deinitialization counter bindgen bridge. Strict unchanged corpus results are 59 passed, 1 upstream todo, 0 failed, 125 assertions across framework-router, response-to-bake-response, and the full 20-case live dev/bundle file. The pinned Bake tree remains 43/43 byte-identical at 4982b91e3702094330f3be3883354c52b8c01323.

Full details and the remaining self-contained corpus-layout work are tracked in #555. Core gates remain green: JSC runtime 1,808/19/0, Bake prod 18/18, Bake dev 18/18, and non-JSC debug 5/5.

14 days ago

Bake port checkpoint pushed to main: 76af3362c (fix(runtime): preserve serve plugin file namespaces).

Home now preserves the pinned bridge's consumed BunString contract and explicitly passes the "file" namespace into JavaScript onResolve callbacks. That admits the unchanged upstream deinitialization coverage, including stopping during plugin-driven HTML bundling and all websocket variants.

Current evidence:

  • pinned Bun SHA: 4982b91e3702094330f3be3883354c52b8c01323;
  • pinned Bake mirror: 43/43 files, no missing/extra/hash mismatches;
  • retained Bake checkpoint: 62 passed, 1 upstream todo, 0 failed across five parent files, plus 9/9 deinitialization child cases;
  • Home runtime gate: 1,808 passed, 19 skipped, 0 failed;
  • named Bake production/development integrations and both JSC build modes pass.

The checked-in Bake development fixture now resolves its client through [serve.static] onResolve, so this boundary remains covered outside the local corpus overlay.

Detailed admission note: /home-lang/home/issues/555#issuecomment-5466163050

The full Bun parity goal remains active; next work continues through the next independent pinned Bake failure frontier.

14 days ago

Bake parity checkpoint pushed to main: 72e92110c (fix(runtime): bound Bake error report paths). Child #556 is complete; aggregate admission continues in #555.

The unchanged pinned bake/dev/html.test.ts is now 8/8 passed with 29 assertions. The retained 12-file Bake run is 84 parent passes, 1 upstream todo, 0 failures, 249 parent assertions, plus deinitialization's 9/9 child passes and 32 assertions. Home's maintained Bake-development gate now reproduces the oversized error-report wire payload and confirms both response integrity and continued server availability.

Pinned source integrity remains 43/43 Bake files with no differences at Bun 4982b91e3702094330f3be3883354c52b8c01323. Runtime is 1,808 passed / 19 skipped / 0 failed; Bake production/development and both JSC debug build variants pass. The whole Bake corpus is not yet complete, and #555 remains open for the unadmitted files and the pinned experimental-React dependency issue.

14 days ago

Bake parity checkpoint ebc7ac7 is pushed to main.

This closes #557 by porting pinned Bun's Host/Origin guards, terminal-input sanitization, and normalized-origin bounds check. It reduces unchanged pinned bake/dev/esm.test.ts from 13 passed / 4 failed to 16 passed / 1 failed (46 assertions). The sole remaining ESM failure is now isolated as #558: Home logs the initial top-level-await require() error, but the browser overlay does not display it.

Verified checkpoint state:

  • maintained Bake development and production gates pass;
  • debug builds pass with JSC disabled and enabled;
  • home_rt: 1,811 passed, 19 skipped, 0 failed on the confirming full run;
  • retained 12-file Bake aggregate: 84 passed, 1 upstream todo, 0 failed, 249 assertions, plus deinitialization child 9/9, 32 assertions;
  • pinned Bake corpus integrity: 43/43 byte-exact files against Bun 4982b91e3702094330f3be3883354c52b8c01323;
  • targeted Pickier, Python compilation, and diff checks pass.

The 100% Bun-suite objective remains open. Corpus admission continues under #555, with #558 as the next focused incompatibility. The repository-wide Zig umbrella also still has the two previously recorded unrelated ts_conformance baseline-selection failures, so this checkpoint does not claim a fully green repository suite.

14 days ago

Bake ESM parity checkpoint 115ed7c is pushed to main, resolving #558.

Progress:

  • unchanged pinned bake/dev/esm.test.ts: 17 passed, 0 failed, 47 assertions;
  • retained Bake checkpoint expanded to 13 files: 101 passed, 1 upstream todo, 0 failed, 295 parent assertions, plus deinitialization child 9/9;
  • home_rt: 1,811 passed, 19 skipped, 0 failed;
  • maintained Bake development and production gates pass;
  • debug builds pass with JSC enabled and disabled;
  • pinned Bake corpus remains 43/43 byte exact against Bun 4982b91e3702094330f3be3883354c52b8c01323.

The fix sends only initialized error-report bytes as an owned Uint8Array, preventing the browser-harness fetch body from remaining open and allowing the existing overlay flow to finish.

The overall 100% Bun-suite objective remains open under this tracker and #555. Repository-wide Zig still has the two previously recorded unrelated ts_conformance baseline-selection failures, so this checkpoint does not claim a fully green repository umbrella.

14 days ago

Port checkpoint pushed to main:

  • 58abeaad685f8ed2fdab3781c7521323674c3251 fixes stale npm manifest false-not-found behavior (#559).
  • bc40db083d97f9fac07758a816a37212c177158e fixes malformed text lockfile package resolutions by preserving semver JSON quote options (#560).

Acceptance evidence: unchanged experimental React graph installs through Home's native hoisted installer, exact scheduler resolves, generated bun.lock round-trips on the next install with no changes, JSC-enabled home_rt is 1,813 passed / 19 skipped / 0 failed, both debug build modes pass, and changed-file Pickier passes.

The unchanged Bake request-cookie cases now pass dependency setup and start their servers. Next linked frontier is #561: resolver force-unwraps missing package metadata at resolver.zig:1408 (0 passed, 2 failed via server ECONNRESET). #555 tracks the Bake frontier.

Sign in to comment on this issue.