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

Confirmed the cause and pushed the fix to origin/main in 6053c6c71.

The verbose native build (e36a99a, 46/46 steps) identifies the first full-corpus mismatch as @verdaccio/config: the cleaned and original resolution both print 6.0.0-6-next.76, but compare unequal. A minimal registry-free fixture proves the boundary: Home and Bun accept 1.0.0 and 1.0.0-alpha.1; Home rejects 1.0.0-canary.20250226T140704 while Bun accepts it. The native regression also reached and passed its real dependency-removal rejection controls before failing on the long prerelease. These first outcomes are retained.

Parsed external strings used current Zig Wyhash, while cloning long tags recomputed Bun Wyhash11. String.stringHash now uses the same upstream Wyhash11 helper as the builder. This preserves actual equality, rather than suppressing frozen checks. The focused Zig cloning regression passes, checking prerelease/build hashes, copied contents, and rejection of a different prerelease. Pickier and Zig formatting checks pass. The broad standalone semver test attempt could not compile its formatting tests without the native bun module; it is retained as a test-configuration failure, not a pass.

A fresh production build and a batched native prerelease/create/original-semver/frozen-provisioning run are underway. #715 remains open until the real native frozen install is verified; #714 remains open until AWS archive contents are checked. No dependency lock changes or manual extraction have been used.

14 days ago

Verified the production fix at 6053c6c. Build: 46/46 steps. Home executable SHA-256: fbc3cfe5af5e1c020e4aad2e6d4bae74584afbd87de970b1134e3ac653da9e15.

Native frozen prerelease regression passes all release/short-tag/long-tag/build-tag cases, with real dependency-removal rejection controls. Native create regression also passes. The original semver corpus reports 25 registered passes and zero failures.

The exact native frozen corpus provisioning succeeded. Both pinned lockfiles remain byte-identical. All 5,945 installed AWS CDK 2.148.0 regular files match the verified pinned tarball, with zero missing or different files. The subsequent corpus source audit retains 12,996 tracked entries: 12,990 identical regular files, five identical symlinks, and only the known expectations.txt metadata difference; no missing or mode differences.

Full logs, first failures, hashes, and the updated baseline are pushed in 65d0e916e. This completed the existing partially populated dependency tree; it is not a cold-install benchmark. The first pinned-Bun AWS extraction failure remains retained and is not replaced by Home's successful outcome.

Closing #714 and #715 on these concrete results. Full parity remains open: #713 local-dependency duplication, #438 JSX pipelines, full inventory execution and upstream CI/platform coverage, and independent native build ownership still need work. All changes are on origin/main as Chris, without coauthors.

14 days ago

Native package repair batch in progress; all source changes are pushed to origin/main through 24bdc3e.

  • #713 is reproduced again on the actual 6053c6c executable. The new regression inspects raw package.json and catches both duplicate keys directly, rather than accepting JSON.parse's last-key result. Local folder names are now resolved before the first package edit, and multiple paths naming the same package retain the existing first-request precedence. Coverage includes all dependency groups, path forms, explicit aliases, normal replacement, later frozen install/remove, and workspace-relative arguments.
  • New #716 tracks native update/outdated activation. The actual native-mode outdated command previously reported all packages up to date even after a local registry published a newer version. Both commands now route to Home's owned runtime implementations. The regression checks registry discovery, real gzip/integrity-checked archives, ordinary and --latest upgrades, interactive acceptance/decline, and installed contents.
  • Production compilation exposed missing public command exports and unported interactive I/O/rendering. Those first build failures are retained. The command exports, stdin and manifest-file I/O, version writers, and synchronized terminal frame rendering have been ported; the next build is underway. Neither issue is accepted as fixed until the actual native batch passes.

The earlier #713 raw fixture directory was lost in the previously reported worktree incident; its issue body now explicitly states that instead of claiming it still exists. Fresh logs remain outside disposable worktrees, and completed results will be committed with the checkpoint. No upstream test or snapshot has been altered, no frozen validation removed, and no package operation delegated to Bun.

14 days ago

Native package batch checkpoint, pushed to origin/main through 5e1d775:

  • Production native build passed 46/46 steps on source 6a183ad (Home SHA-256 4401f12d1335d21039cd2a796a1a86b12331c9ddd0c64f4eaaea57957a5713d6).
  • #713 is now verified: the corrected raw-key/installed-content regression passes all dependency groups, folder path forms, replacement/alias/dedup cases, and workspace-relative behavior, including later frozen install/removal. Pinned Bun still reproduces the duplicate workspace metadata/frozen-lock failure. Its failure is retained, not accepted as logical parity.
  • Unchanged original bun-update.test.ts: Home 6 registered passes, pinned Bun 6, no failures. Duplicate gate summary lines count once. Frozen-prerelease regression remains passing.
  • Unchanged original outdated selection: Home 0 pass/16 fail; pinned Bun 16 pass/0 fail. Sources and snapshots stayed unchanged. Home emits the version banner but loses the table. a6d65e2 flushes Home's buffered native command output before returning; that build is in progress.
  • Two private fixture assumptions were corrected transparently: workspace local packages install inside workspace node_modules, and ordinary outdated honors Bun's five-minute manifest cache. The live registry regression now explicitly checks the cache hit, public --force refresh, and cached refreshed output. Its earlier immediate-refresh assertion is not treated as a valid compatibility requirement. Remaining interactive acceptance/decline and real update/archive/frozen operations succeeded in a diagnostic that isolated the known outdated failure; that diagnostic is not reported as a full regression pass.

All first failures, successful build log, exact test revisions, snapshot checks, and comparison fixture archive are committed in docs/docs/bun-port-evidence/2026-09-08-native-package-verification/. #716 stays open pending the corrected full batch. The full Bun port, inventory/profile/platform coverage, and other open native gaps remain incomplete.

14 days ago

Native output follow-up, pushed to origin/main through c0b8729:

The a6d65e2 native build passed all 46 steps. Its executable SHA-256 is a075ffc9fc860fe50d7d49a9efa5acb146b00da93e7f0c71daa41df9bb5cbea2.

  • All three native regressions pass: local dependency identity, real-registry update/outdated cache/force behavior and interactive accept/decline, and frozen prerelease integrity.
  • Unchanged bun-update.test.ts: Home 6 pass, Bun 6 pass.
  • Unchanged update_interactive_formatting.test.ts: Home 31 pass, Bun 31 pass, including real workspace/catalog update operations. The first formatting-only cases make weaker no-crash assertions; those are not claimed as additional behavior coverage.
  • Original outdated selection improved from 0/16 to 8/16 in Home; Bun remains 16/16. Eight exact colored snapshots still fail because semver/shim.zig hardcodes enable_ansi_colors_stdout=false and leaves formatting markup unimplemented. The emitted package/version contents are now present; failures are missing version color spans. Sources and snapshots remain unchanged, and the full first and second outcomes are retained.

831196d removes that output stub and connects semver to Home's configured native output support. Its production build is running. The next batch will rerun these original files plus the semver cases. #716 remains open until verified. Evidence for the completed batch is committed under docs/docs/bun-port-evidence/2026-09-08-native-package-output/. #713 remains closed after the full corrected regression passed again. The overall #66 goal remains incomplete.

14 days ago

Verified native package milestone, pushed through b740117 to origin/main.

Runtime source 831196d builds all 46/46 production steps. Home executable SHA-256: ccbce30778cbaedec1446fbf13c5040363919f5ec1bb19149693518268956ce4. Pinned Bun control SHA-256: 47a87c1dea30da59c2733cce80118ea59bd338c616c6378f1c7f55e5f2b92c87.

Unchanged original cases, in each runtime:

  • update: 6 passed, 0 failed.
  • outdated selection: 16 passed, 0 failed, all nine snapshots passed. The other 214 cases in that file were filtered and are not counted as executed.
  • interactive update: 31 passed, 0 failed, including workspace/catalog operations; the initial six no-crash formatting cases have narrower assertions.
  • semver: 25 passed, 0 failed.

That is 78 registered cases per runtime, counting duplicate native-gate summary lines once. Test sources and snapshots stayed unchanged. Three private native regressions pass separately: raw local dependency identity/frozen/remove behavior; real-registry --force discovery, update/--latest, interactive accept/decline, archive integrity and installed contents; and prerelease frozen-lock integrity.

#713 is fixed by resolving local package identity before edit/install. #716 is fixed by activating the owned update/outdated commands, porting their interactive I/O and formatting, flushing native command output on return, and replacing semver's hardcoded color/output stub with Home's configured output. No lock validation or original assertion was bypassed.

The final private cache-contract correction is explicit: Bun's Serializer.saveAsync documents that disk-cache writes are optional background work and need not finish before CLI exit. The previous private assertion requiring the refreshed generation to be persisted was invalid and its first failure remains archived. f65eb22 tests the supported --force freshness guarantee and actual operations without demanding optional persistence. It passes on the same 831196d executable; the other original tests were not retried to turn that assertion green.

Final evidence is committed in docs/docs/bun-port-evidence/2026-09-08-native-package-complete/, including exact source revisions, command/result manifests, failed historical private outcome, corrected test, logs, hashes, and the cache-contract source excerpt. Generated Verdaccio databases and the two owned diagnostic fixtures were archived before cleanup.

This closes the scoped #713/#716 work. The overall #66 goal remains incomplete: native-mode gating/default fallback removal, full pinned inventory and upstream CI/platform profile, #438 JSX, #190 self-upgrade, native link/unlink activation, independent native build ownership, and other tracked gaps remain.

14 days ago

Next native package batch is in progress under #717, with source and initial evidence pushed through 77044f1.

The actual 831196d Home executable fails home link with Script not found "link"; that first native failure and the exact initial regression are retained. f3a1e34 connects both LinkCommand and UnlinkCommand to the native dependency dispatcher and ports their filesystem operations and bin-directory unregister iteration. Follow-up compilation exposed the descriptor path helper's removed std.os.getFdPath API. b6bea0d/3d97be6/e56d48e make descriptor types and I/O flags explicit, use current native descriptor realPath, and release the pooled path buffer on failure.

The production build is running. The prepared batch checks actual plain/scoped/workspace registration and consumption, all bin declaration forms, executable targets, live source updates, --save, frozen install/remove/unregister, idempotence, and preservation of source/physical package directories. Original bun-link and native-binlink files will run unchanged with pinned Bun controls and isolated global directory/bin/cache prefixes. First outcomes and generated fixture state will be retained. No native success or platform-wide completion is claimed yet.

See docs/docs/bun-native-link-baseline.json and docs/docs/bun-port-evidence/2026-09-08-native-links/ for the eight committed initial artifacts. #713/#716 remain verified and closed; #66 remains the full unfinished port goal.

14 days ago

Native link/unlink activation checkpoint is verified and pushed through bc3abc3 to origin/main.

Runtime source e56d48e built all 46/46 production steps. Home SHA-256: 56ea320b3204e0ab5535991c6088c6e2043fa84f26b54fcaacf6d68484fc6296. Pinned Bun control SHA-256: 47a87c1dea30da59c2733cce80118ea59bd338c616c6378f1c7f55e5f2b92c87.

  • Unchanged original bun-link.test.ts: Home 4 passed / 0 failed; Bun 4 / 0.
  • Unchanged original bun-install-native-binlink.test.ts: Home 7 passed / 0 failed; Bun 7 / 0. This includes executable-target containment and preservation of outside-file contents/modes.
  • Four native regressions pass: new full link lifecycle, prior local dependency identity, real-registry update/outdated/interactive behavior, and frozen-prerelease integrity. The new lifecycle covers plain/scoped packages and workspaces, global registration/consumption, real executable targets, live linked contents, --save, frozen install/remove, repeated register/unregister, every bin declaration form, and preservation of source/physical unlinked packages.

These are 11 registered original cases per runtime, counting repeated gate summaries once. Sources and snapshots stayed unchanged. All eight run-global prefixes were archived then removed; the private regression also cleaned its own prefix. The actual build/tests ran on macOS arm64. Native VM gating and the full platform/corpus/profile/build-ownership work remain open.

An additional ownership control found a shared logical defect in both executables: after A and B register the same command name, unlinking A removes B's current bin while B remains registered. This is confirmed in new #718, with the exact commands, before/after targets, hashes and both fixture archives committed under docs/docs/bun-port-evidence/2026-09-08-link-bin-ownership/. Shared upstream breakage is not accepted as passing logical parity. That defect remains open for the next repair.

The activation and existing-case milestone #717 is complete; #718 and the full #66 goal remain incomplete. Successful evidence is under docs/docs/bun-port-evidence/2026-09-08-native-links-verified/, and all first command/build failures remain under 2026-09-08-native-links/. Accounting is in docs/docs/bun-native-link-baseline.json. All commits use Chris Breuer's identity without coauthors.

14 days ago

Current verified runtime b61c84476, Home SHA-256 74a9255f91b025686c7146a2bc7dc5c2ec69afe2e71a48a5458a11acdff8d7f6: build 46/46, six private native regression files pass, original link/binlink 11/11 per runtime, and two complete original patch files Home 43/47 versus pinned Bun 47/47. Sources and snapshots remain unchanged. Native bin ownership is repaired on macOS under #718; Windows filesystem validation remains open. #719 now owns patch activation/lifecycle work.

The four remaining patch failures are missing usage/help diagnostics and omitted shared SystemError formatting. Port a4b73596f is pushed and building, with the complete patch and adjacent native regression rerun queued. No test expectation/deadline was changed, and no failed attempt was discarded. Current verified and failing evidence; earlier attempts. Both bundles' 77 compressed artifacts are Git-tracked and hash-verified. All source/evidence commits are on origin/main as Chris without coauthors.

Full Bun parity, the complete CI launch/accounting gate, independent build ownership, default fallback removal, and other platforms remain incomplete.

14 days ago

Native audit activation and resolved-package production traversal are pushed in 7b8877ee1/91495b738. Initial production compilation found a dormant u32 audit result vs u8 process exit mismatch; f2bbead95 adds the checked conversion. The corrected build is running.

The complete original audit comparison (Home Pantry route 4 pass/12 fail, pinned Bun 16/16) and the real installed-graph pinned Bun failure (development-only bridge@2 included in production request) are retained in 13 committed artifacts, published in cdcfeabfb. Reported Pantry-route passes do not count as native activation. The new private regression checks three production graph configurations, real gzip POST payloads, both auth forms, reports/filtering/error handling and lock preservation. Runtime verification remains pending. Refs #66, #720.

14 days ago

Next batch is pushed: fcd8ccb97 ports corpus launch deadlines, CI startup/validation settings, isolated temporary/cache storage and owned command aliases; b2a06493e adds a pinned-runner inventory comparison. Four focused launch unit tests pass. Initial evidence and cleanup inventories are committed in 8a664d10f.

The native/harness build is active. The real child/cleanup regression and grouped original-file verification are pending; this comment does not claim a passing production artifact or full CI migration. #703 tracks this batch and remaining full-inventory execution/accounting. The last verified artifact remains the audit checkpoint described above, including the explicit #721 snapshot failure. Full parity remains incomplete.

14 days ago

Pushed corrections 0785d795a and evidence 1f1c9423d as Chris Breuer without coauthors. All 19,016 launch-rule selections match pinned Bun across 4,754 discovered paths and four CI/local/ASAN contexts. This verifies rule selection, not passing corpus files. Five focused launch units pass.

The first full build compiled Home but exposed three allocator crashes in nine harness tests (six passed; 21/23 build steps): a sentinel-terminated realpath allocation was returned as a plain slice and freed with the wrong length. A separate real generated control also found aliases inside the nominally empty install cache (Home fails, pinned Bun passes). Both failures are retained. The fix preserves the allocation's ownership and keeps alias storage beside the fresh cache. A native regression now explicitly checks cache emptiness as well as actual aliases, startup settings and cleanup.

The corrected native/harness build is currently running. Grouped original-file and private regressions are prepared and await that result; no corrected production pass or whole-suite completion is claimed. Evidence manifest. Refs #66, #703, #709, #202. Full corpus execution, durable case/JUnit accounting, integration/platform coverage and independent build ownership remain unfinished.

14 days ago

Continuation checkpoint (2026-09-11): the existing home-debug binary reproduces 19 passes, 1 skip, and 3 failures in the unchanged filesystem_router.test.ts. The failures are the extra slash in scriptSrc, percent-decoded match storage being overwritten by later matches, and the 3000-parameter query case timing out at the original 5000 ms deadline. The supervisor reported 357 MB peak tree footprint for this run. This binary predates the latest main commits, so these are reproduction results, not fresh-main verification.

A query collection/iterator-bound port and JSObject.putRecord exception propagation are in the local working tree, still unverified and not claimed as landed. Work priority has moved to TypeScript performance under #416 at the user's request; #728 fixes a separate benchmark admission flaw. Bun parity remains incomplete.

14 days ago

Published 8b02aebac to origin/main, authored by glennmichael123 <gtorregosa@gmail.com> without coauthors. The commit references #729 and #66.

Home now applies Bun's 2,048-parameter ceiling while counting and materializing both plain and percent-decoded query strings, bounds visited-bitset access before reading it, and stops both fast and decoding paths at the same limit.

Focused verification compiled url.zig in isolation and passed all 3 selected tests. The new test checks 3,000 unique plain parameters and 3,000 percent-decoded values, retained count 2,048, first/last boundary lookup, and terminating iteration. Supervisor peak was 165 MB; zig fmt --check and git diff --check passed.

The full debug runtime build was attempted sequentially with one Zig job. It was stopped at 3,584 MB and then 4,608 MB while the host guard reported 33% headroom. The ceiling was not raised again. Therefore the unchanged filesystem_router.test.ts acceptance run against a fresh binary remains pending, and this issue stays open. The pre-change binary's baseline was 19 pass / 1 skip / 3 fail, with the query-cap case timing out at its original 5-second deadline.

14 days ago

Published 81cb9e9d5 to origin/main, authored by glennmichael123 <gtorregosa@gmail.com> without coauthors. The commit references #730 and #66.

Home's URL join normalization now returns the same relative path shape as Bun's live normalize_string_buf, so the origin supplies exactly one separator. The direct oracle now verifies https://nextjs.org/_next/static/posts/[id].tsx, including a slash-delimited asset prefix and dot-segment normalization.

Focused verification compiled the URL module and passed all 13 URL/bitset tests. zig fmt --check and git diff --check passed. Supervisor peak was 174 MB.

The unchanged filesystem-router acceptance run against a newly linked runtime remains pending because the sequential debug link exceeded both conservative memory ceilings earlier in this session. The old binary reproduced the exact double-slash failure before this patch. This issue remains open until a fresh-runtime corpus run confirms it.

14 days ago

Published a1387e3a4 to origin/main, authored by glennmichael123 <gtorregosa@gmail.com> without coauthors. The commit references #731 and #66.

URLPath.parseOwned now copies percent-decoded output into per-call allocator storage and rebases pathname, path, first-segment, extension, and query slices. FileSystemRouter.match transfers either that decoded allocation or the ordinary input allocation into MatchedRoute; finalization releases the backing allocation, and unmatched/parse-error/OOM paths release locally owned storage. Allocation failure now throws the JSC out-of-memory error, and a failed MatchedRoute allocation releases its cloned parameter list.

All 10 direct URLPath tests pass, including stability across two consecutive encoded parses and %25 decoding exactly once. zig fmt --check and git diff --check pass. Supervisor peak was 161 MB.

The unchanged full filesystem-router test against a fresh linked runtime remains pending because the debug link exceeded the conservative memory ceilings documented on #729. This issue stays open until that acceptance run is available.

14 days ago

Follow-up 18f8dab8a is published to origin/main, authored by glennmichael123 <gtorregosa@gmail.com> without coauthors. It references #729 and #66.

JSObject.putRecord now opens a TopExceptionScope, calls the native JSC record-property writer, and returns error.JSError when the native call leaves an exception pending. This mirrors the established JSObject.getIndex bridge pattern and prevents query-object initialization from returning apparent success after a property write throws.

The file passes Zig AST validation, zig fmt --check, and git diff --check. Full fresh-runtime acceptance remains pending under the memory-bound limitation recorded above, so #729 remains open.

14 days ago

Resolver crash progress: #734 is implemented and pushed to origin/main in 3ad4093f3. This ports Bun live Rust's POSIX trailing-slash semantics into Home's active string helper and adds a focused passing regression for the import(":://filesystem") cache-key crash. Full corpus confirmation awaits the next fresh runtime build; #734 remains open until then.

14 days ago

Crash classification correction from the retained js/bun scan:

  • runtime-error.test.ts no longer crashes; Home exits normally with the missing packages/bun-error/runtime-error fixture, and pinned Bun 4982b91 fails identically on the same checkout. This is corpus dependency/setup debt, not a Home runtime gap.
  • css-fuzz.test.ts passes 4/4 on the current Home debug binary in 7.1s (96 expectations), with 51 MB peak supervised tree footprint and host low-water 53%; the old crash row is stale.
  • resolve-error.test.ts is the real active resolver crash and is fixed on origin/main by #734 / 3ad4093f3, pending fresh-binary corpus verification.
  • filesystem_router.test.ts is covered by the later router ownership/URL/query-limit commits (a1387e3a4, 81cb9e9d5, 8b02aebac), also pending fresh-binary confirmation.

I am rebuilding once under the memory guard to verify the source-new resolver and router fixes together.

14 days ago

WASI entrypoint sub-gap is now tracked in #735 and ported on main by 3f4e46bff. Home previously returned empty ESM for a main .wasm; it now embeds Bun live wasi-runner.js. The runner was validated under a 768 MB cap against hello-wasi.wasm (hello world\n, exit 0). Fresh whole-runtime verification remains pending because the unchanged 3840 MB build guard stopped codegen at 3859 MB; the cap was not raised.

14 days ago

Resolved the old js/bun/runtime-error.test.ts crash row via #736. The row was a missing nested-corpus fixture, not a VM crash. Exact Bun fixture landed in a293412f9; focused Home result is 1 pass / 0 fail, 2 expectations, 265 ms under a 768 MB cap.

14 days ago

Landed two more small parity chunks on main under the requested identity: a293412f9 restores the exact bun-error corpus fixture (#736, now 1/1 pass and closed), and 3fc137809 ports Bun live folded/whitespace-only block-scalar state (#737). YAML baseline before the new port was 941/1084; #737 stays open pending a fresh runtime matrix because the fixed build-memory guard was not raised.

14 days ago

TypeScript correctness checkpoint landed on main: #738 / f29b2a0dc now joins positive instanceof replacement branches at fallthrough (for example, if (result instanceof Promise) result = await result). Home matches TypeScript 6.0.3 and native tsgo 7.0.2 exactly on the strict oracle; the full checker suite, ReleaseSafe/ReleaseFast builds, and the Zod core no-additions gate pass.

The parent qualified imported issue-array work remains tracked in #688. A broad projection attempt was deliberately rejected after a candidate-only bus fault and a separate 14-diagnostic Zod regression; details are recorded there. All heavy work stayed serialized beneath the fixed 3,840 MB guard, and only the safe standalone control-flow fix was pushed.

14 days ago

Bun formatter parity advanced in #706 / c058b475f: Home's public bun.fmt binding now uses the real Bun JavaScript syntax highlighter and redactor instead of echoing raw text. The full required string-secret primitives are exported, permanent highlighting/redaction tests were added, the real runtime graph semantically compiles, and the formatter algorithm passes 2/2 isolated behavior tests.

Fresh native-linked corpus acceptance remains pending on #706 because linking exceeded the unchanged 3,840 MB guard; the limit was not raised. Work stayed serialized and the commit was pushed to origin/main solely under the user's identity.

14 days ago

The isolated-install path alias crash in #727 is repaired on main by 02bff5909. Both top-level path constructors now copy cwd from storage independent of their destination pool, matching Bun's ownership invariant and eliminating the overlapping @memcpy without changing shared append semantics.

Both constructors pass direct execution tests (2/2), and the real Home graph passes semantic compilation under the fixed guard. Fresh native install lifecycle acceptance remains tracked on #727 because full runtime linking cannot fit below 3,840 MB; the cap was not raised.

14 days ago

CSS parity progress: b164b74 is now on origin/main and implements both Bun nesting-expansion defenses tracked in #705.

The batch adds bounded selector fan-out during minification, bounded recursive parent-selector substitution during printing, structured Bun-compatible diagnostics, recursion through nesting-preserving at-rules, real @nest AST retention, and a canonical CSS Location type. Lightweight executable tests pass 5/5 total; both real runtime integration paths pass no-emission semantic compilation under the 3,840 MB hard ceiling. Fresh native corpus acceptance remains pending because focused executable linking crossed the fixed ceiling and was stopped rather than raising it.

Details and exact evidence: #705.

14 days ago

September 12 checkpoint: three logical Bun ports from the current work session are pushed to origin/main, each under glennmichael123 <gtorregosa@gmail.com> with no coauthors.

  • c058b475f — fix(runtime): enable Bun JavaScript highlighter (#706). Replaces the raw-text bun.fmt stub with the maintained Bun highlighter/redaction implementation and adds public-surface tests. Focused behavior 2/2; semantic runtime compile, AST, format, and diff checks pass.
  • 02bff5909 — fix(runtime): isolate top-level path source storage (#727). Ports Bun's independent getcwd source-storage ownership invariant instead of weakening shared append behavior. Both real constructors pass 2/2; semantic runtime compile, AST, format, and diff checks pass.
  • b164b747e — fix(css): bound nested selector expansion (#705). Ports Bun's 65,536 expansion budget, nested at-rule recursion, retained @nest AST, printer-side substitution budget, and canonical CSS location type. Focused budget tests 4/4 plus location/integration semantic gates pass.

The native-linked end-to-end corpus reruns for these three issues remain open: fresh runtime links exceeded the fixed 3,840 MB machine-safety ceiling by small margins, and the ceiling was not raised or bypassed. Each child issue records exact peaks and the remaining acceptance test. This checkpoint therefore records implemented and focused-verified parity work without claiming the overall Bun port complete.

Separately, TypeScript performance investigation #733 was kept evidence-driven: two flat probes and a rediscovered declaration-slot probe were rejected and reverted. The latter's 32,768-family scale retest is documented in b55516fc9, including the confidence interval that prevented a speedup claim.

14 days ago

Markdown parity checkpoint pushed to main in four small commits: 60493af (#739 ANSI nesting bound), 641a563 (#740 buffer pin/re-derive lifetime), 5212f81 (#741 linear autolink suffix trimming), and 85244fc (#742 link validation parity). All commits are under glennmichael123 with no coauthors. Static Zig AST/format/whitespace gates pass. A fresh debug link was attempted serially under the mandatory 3,840 MB guard and was safely terminated at 4,011 MB; focused native acceptance is still pending rather than weakening the memory ceiling.

14 days ago

Additional Markdown parity progress: 2d1d683 (#743) ports Bun's failed inline-HTML terminator memo, including enclosing-slice/sub-slice validity and top-level reset semantics. Pushed to main under glennmichael123 with no coauthors after gconfig. Static Zig AST/format/whitespace checks pass; native corpus acceptance remains queued behind the machine-wide serialized test lock.

14 days ago

Pushed 49dc258 (#744): Bun's single-pass/recycled inline bracket map is now in Home, removing repeated closing-bracket scans and sharing the map with label sub-slices. Authorship is glennmichael123 with no coauthors and gconfig ran immediately before push. Static Zig gates pass; native acceptance remains serialized behind the active machine lock.

14 days ago

Bun parity update: #746 is implemented and pushed to origin/main as 2bd569b. Home now enforces Bun and CommonMark reference-label lookup limits with one shared 999-byte constant, rejecting oversized labels before normalization/map lookup. Static Zig AST, formatting, and whitespace gates pass. Work continues on #745, the no-cap iterative nested-label renderer; native compilation stays serialized under the fixed 3,840 MB guard.

14 days ago

Bun parity update: #745 is implemented and pushed to origin/main as 89d170e. Nested Markdown link/image/wiki labels now render through recycled heap frames, sharing the root bracket map and HTML memo with no native-stack recursion or artificial depth cap. A focused Markdown semantic harness passed 18/18 at 186 MB peak, including exact nested construct output and a 20,000-level image chain. The monolithic home_rt build exceeded the immutable 3,840 MB guard and was safely killed at 4,128 MB; no cap increase or concurrent heavy process was used. #746 was separately pushed as 2bd569b.

14 days ago

Bun parity update: #747 is implemented and pushed to origin/main as 394fbca. Home now mirrors Bun source-text sanitization across every ANSI-controlled sink: normal/code/HTML/entity text, hrefs, image metadata, code badges, and image URL collection. Focused sink tests pass 5/5 at 171 MB peak, and static Zig gates pass. This closes the implementation side of the copied terminal-control regressions without suppressing tests or disabling terminal features.

14 days ago

Markdown parity update: #748 is implemented and pushed in 6bf5037.\n\nHome now ports Bun's linear-time CommonMark emphasis resolver (18 opener-bottom classes plus a path-compressed predecessor chain), eliminating the confirmed quadratic delimiter-flood behavior without caps or truncation. Focused verification passed 17/17 at a 210 MB peak under the fixed 3,840 MB guard. Home's direct parser benchmark scaled 24.042 -> 47.568 -> 87.553 ms at 20k/40k/80k delimiters (1.98x/1.84x per doubling); pinned Bun showed the same near-linear size-doubling shape. Absolute timings are not compared because the harness/API surfaces differ.\n\nTracking and full evidence: #748.

14 days ago

Markdown parity update: #749 is implemented and pushed in c065a00.\n\nHome now indexes normalized reference definitions in all ingestion and lookup paths, matching Bun's linear behavior while preserving first-definition-wins semantics. The port also fixes the stale Zig ownership leaks for normalized lookup keys and stored reference buffers.\n\nFocused verification passed 17/17 with a clean allocator and 185 MB guarded peak. Home scaled 1.96x/2.04x as 10k/20k/40k definitions plus misses doubled; pinned Bun scaled 2.01x/1.96x on the same construction. Full evidence: #749.

14 days ago

Markdown parity update: #750 is implemented and pushed in 49e5162.\n\nHome now ports Bun/md4c's exact 128-column table boundary. A 128-column delimiter remains a table; 129 columns are ordinary Markdown. The 1,000-column x 2,000-sparse-row adversarial case rendered 8,011 bytes from 8,004 bytes with no multiplicative empty-cell output. Focused verification passed 17/17 at 218 MB guarded peak. Full evidence: #750.

14 days ago

Two-hour guarded parity checkpoint complete.\n\nPublished 12 small conventional commits to origin/main, all authored and committed by glennmichael123 gtorregosa@gmail.com with no coauthor trailers:\n- #739 60493af ANSI nesting bound\n- #740 641a563 Markdown buffer pinning\n- #741 5212f81 linear trailing-parenthesis trimming\n- #742 85244fc link destination/title parity\n- #743 2d1d683 failed HTML-scan memoization\n- #744 49dc258 precomputed bracket matching\n- #745 89d170e iterative nested-label rendering\n- #746 2bd569b reference-label limit\n- #747 394fbca terminal source sanitization\n- #748 6bf5037 linear emphasis resolution\n- #749 c065a00 indexed reference definitions plus owned-buffer cleanup\n- #750 49e5162 exact 128-column table boundary\n\nAll child issues #739-#750 are now closed with per-commit test and memory evidence. Focused Markdown suites remained under 218 MB. The monolithic runtime link was not retried or given a higher ceiling after it crossed the fixed 3,840 MB guard.\n\nA canonical current-source TypeScript benchmark was also independently confirmed on #733 after rejecting an initial stale-binary run. The verified bfba4f9 compiler completed 30 interleaved rounds: tsc 1194.9 +/- 14.6 ms, tsgo 417.8 +/- 5.7 ms, Home 284.9 +/- 4.7 ms (1.47x lead), 469 MB peak. This confirms the existing 1.46x README/docs result; no noisy 0.01x cross-session documentation replacement was made.\n\nFinal publication audit: origin/main and main are 0/0; all 12 commits have the required author/committer identity and no coauthor trailers. The only worktree entry is the pre-existing user-owned packages/runtime/test/test.txt, untouched. Full Bun parity remains open under this parent issue.

14 days ago

TypeScript CLI parity advanced in c97199673, closing #486.

Home now reports byte-identical TS5112 with exit 1 when positional files are supplied beside a discoverable tsconfig.json without --ignoreConfig, matching pinned TypeScript 6.0.3 and native TypeScript 7.0.2. The explicit escape hatch, no-config positional mode, TS5042 precedence, and normal -p loading were all retained. Guarded ReleaseSafe build and focused CLI tests passed below the fixed 3,840 MB ceiling (2,820 MB and 272 MB peaks). The five-case untimed correctness table is linked from the README and fully documented in docs/docs/TS_PERFORMANCE.md.

14 days ago

TypeScript parity gate update: #475 remains open after rejecting a semantically correct but catastrophically slow Promise result-interception design. The focused oracle matched TS 6.0.3/native TS 7.0.2 and the narrowed candidate passed all 4,370 checker tests, but pinned Zod 4.5.2 regressed from the frozen parent's 8.634 s / 150 diagnostics to timeouts at 300 s, 120 s, and 90 s. The candidate was fully reverted. Detailed evidence and the architectural direction are in #475: /home-lang/home/issues/475#issuecomment-5666424277

No commit or parity claim was made for this rejected batch. Next work should target Promise generic signature instantiation/substitution rather than post-call result interception.

14 days ago

Completed and pushed the async-return diagnostic slice tracked by #478.

Main commit: 41c866a — fix(ts): display awaited async return targets (#478)

Home now reports the actual Awaited<r> target in invalid async return TS2322 diagnostics instead of the outer Promise-like annotation. The exact pinned TypeScript 6.0.3 matrix covers direct, Promise, PromiseLike, unknown, alias, nested-Promise, and expression-bodied returns, including source-anchor shape. Focused and complete checker suites pass (4,371 tests), as do the rebuilt CLI oracle, formatting, and diff checks.

No benchmark claim was added: guarded Zod debug runs hit their wall-clock bounds without crossing the fixed 3,840 MB memory ceiling, so they are explicitly inconclusive. Async stays outside performance tables until the separate #475/#476 correctness controls are complete.

#478 is closed; next parity work can proceed independently without reopening its diagnostic-only fix.

14 days ago

Additional native Node HTTP milestone landed on main in 46562276986af0900a3de9eda25395968764c7e6 (fix(test): run node:test corpus fixtures in test mode), authored and committed by Chris Breuer without coauthors.

The corpus launcher previously classified non-.test fixtures as scripts unless they lived under Node's parallel/ directories. The byte-identical js/node/http/node-http-connect.node.mts fixture registers tests through node:test, so an absolute nested home test invocation rejected describe outside the test runner. Source classification now selects test-runner mode for any corpus fixture importing node:test, with the exact CONNECT filename covered by the harness unit.

Verification on the exact pushed checkout:

  • ReleaseFast JSC build: 46/46 steps succeeded, guarded peak 8,867 MB.
  • Targeted test-home-harness: 23/23 steps, 2/2 filtered tests.
  • Unchanged js/node/http/node-http-connect.test.ts: Home and pinned Bun both report 6 pass, 4 upstream TODOs, zero failures, 17 assertions.
  • Its unchanged nested .node.mts fixture reports 7/7 tests in both runtimes; Home records mode=test_runner, exit 0, complete output, and no failed file process.
  • Unchanged node-http-backpressure-max.test.ts: 1/1, transferring the full 4 GiB payload in 18.9 seconds under the established 15,360 MB guard.
  • The earlier newly unblocked unchanged node-http.test.ts matches pinned Bun at 128 pass, one original skip, zero failures, 302 assertions.

No test source, assertion, workload, deadline, TODO, skip, or expected outcome changed. The broad path-substring probe also selected HTTP/2 and was stopped by the intentionally lower 8 GB guard when it reached the 4 GiB stress case; that guard stop is not counted as a test result. Generated corpus result data was removed after verification.

14 days ago

Exact macOS Node networking/crypto inventory checkpoint on 46562276986af0900a3de9eda25395968764c7e6, using byte-identical files and pinned Bun 4982b91e3702094330f3be3883354c52b8c01323 as the comparison runtime:

  • js/node/http: all 23 files covered in exact partitions. Home and pinned Bun both report 215 pass, one original skip, five upstream TODOs, zero failures, 492 assertions. This includes the full 4 GiB maximum-backpressure transfer, CONNECT/tunnel agents, parser limits, TLS agents, proxy URLs, fetch compatibility, upgrade behavior, UAF and leak regressions.
  • js/node/http2: all six files match at 343 pass, six original skips, zero failures, 12,246 assertions. Coverage includes framing and SETTINGS conformance, WINDOW_UPDATE errors, HPACK/CONTINUATION, padding, GOAWAY, stream-map reentrancy, upgrades and teardown.
  • js/node/crypto: all 17 exact files match at 851 pass, 22 original skips, one upstream TODO, zero failures, 2,416 assertions.
  • js/node/net: all nine files match at 167 pass, eight skips, one failure, 330 assertions. The sole failure is shared: double-connect.test.ts is still marked test.failing, but its subprocess now matches the inline snapshot byte-for-byte in both Home and pinned Bun, so both runners reject the unexpected pass. No runtime bug or test rewrite was introduced to manufacture a green result.
  • js/node/tls: Home reports 150 pass, seven skips, 15 TODOs, two failures, 739 assertions. Pinned Bun has the same two failures because the current live bun.sh certificate no longer supplies the asserted infoAccess["OCSP - URI"]; its release test artifact additionally errors loading bun:internal-for-testing in the multi-file run. These external/artifact failures are retained as non-green baseline evidence.

The earlier corpus-launcher fix also classified another non-.test proxy fixture correctly: node-http-proxy-url.node.mts ran in test-runner mode and passed 3/3. No test source, assertion, payload, deadline, skip, TODO, snapshot or expected outcome changed. The broad basename/substring probes are excluded from these totals; every reported total comes from exact file inventories or exact partitions. Generated corpus results were removed after verification.

14 days ago

Published 7cde27ae421975a37d5417f3450416f22d2bbfa1 to origin/main, authored and committed as Chris Breuer without coauthors.

This batch fixes two concrete current-main regressions without changing the Bun corpus:

  • Home's Zig 0.17 Instant/Timer compatibility layer now uses the cross-platform monotonic std.Io.Clock.awake source. On macOS this selects UPTIME_RAW, replacing the coarse CLOCK_MONOTONIC source that returned equal timestamps on about 97% of one million immediate Home reads and caused an extra process.hrtime.bigint() failure. The final million-read probe had no backwards values and a duplicate rate in the same practical range as the pinned Bun control; the unchanged isolated process file is 102 pass / 1 upstream skip / 3 upstream TODOs / 0 fail / 282 assertions.
  • Explicit HOME_NATIVE_VM=1 now routes pathless home test --isolate children in temporary directories into the native Bun test runner. Before the fix, four children entered Home's monorepo frontend and falsely reported zero files. The complete unchanged isolation file is now 19 pass / 0 fail / 67 assertions with the legacy HOME_CORPUS_FULL_VM flag absent. This closes #484 on current main.

Exact differential boundary:

  • The 59-file js/node/{path,url,util,process} inventory is now identical in Home and pinned Bun: 884 pass / 8 platform skips / 12 upstream TODOs / 1 fail / 15 snapshots / 5,554 assertions. The shared failure is the cached node:process namespace case when call-constructor.test.js precedes process.test.js; each runtime passes that file in isolation. It earns no green credit and was not hidden or rewritten. Before the timer fix Home had one additional hrtime.bigint() failure.
  • A ten-repeat process diagnostic retained one upstream-commented flaky process.hrtime() nanosecond-field assertion across a one-second rollover; all ten hrtime.bigint() repetitions passed. The failure remains recorded and was not relabeled as a pass.

Additional exact Home inventories completed in this tranche: async hooks 111 pass / 3 upstream TODOs / 0 fail, worker threads 41 pass / 0 fail, child process 82 pass / 1 platform skip / 5 upstream TODOs / 0 fail, and filesystem 428 pass / 50 platform skips / 0 fail. Inspector plus VM is 260 pass / 2 skips / 66 upstream TODOs / 0 fail / 5 snapshots in both Home and pinned Bun; its one assertion-count difference comes from the profiler fixture asserting once per timing-dependent sample, so case outcomes are the comparison boundary.

The exact pushed checkout passes the ReleaseFast/JSC build at 46/46 steps. The final build peaked at 6 GB direct compiler RSS and 14,344 MB under the conservative tree-footprint metric, below the 15,360 MB bound. No source fixture, assertion, workload, deadline, snapshot, skip, TODO, or expected outcome changed. Full logical parity remains incomplete.

14 days ago

Pushed 77b34c14dcf0cb4c4430ec5e04fc366e5882eab9 (fix(runtime): preserve test mode for corpus fixtures) to origin/main as Chris Breuer, without coauthors.

This fixes a native test-dispatch precedence bug exposed by Bun's unchanged Node stream suite. A test can spawn bun test <absolute non-.test fixture>; with only HOME_NATIVE_VM=1, Home previously recognized the Bun-corpus path first, reclassified the fixture by filename as a plain script, and failed with Cannot use test outside of the test runner. Explicit native-VM requests now reach Home's real test runner before the corpus adapter, while --home and --zig still force the Home/Zig runner. A focused regression recreates the corpus-shaped absolute path in a temporary directory and verifies the child banner plus 1 pass / 0 fail without the legacy HOME_CORPUS_FULL_VM flag.

Validation:

  • Focused regression: failed against the previous binary with the exact script-mode error; passes against the rebuilt binary.
  • Unchanged js/node/stream/node-stream.test.js: 65 pass / 5 TODO / 0 fail / 101 assertions. The nested tty-streams.fixture.js executes its 4 real TTY cases.
  • Exact 26-file console/events/module/os/perf_hooks/readline/stream/string_decoder/timers/v8 aggregate: Home improved from 499 pass / 27 fail to 500 pass / 26 fail. The removed failure is TTY streams; all remaining failures are the same 25 readline editing/completer cases plus pause stdin should exit that pinned Bun also fails in the identical aggregate. Home records 5 TODOs, 9 snapshots, and 10,555 assertions. Pinned Bun reports 462 pass / 5 TODO / 27 fail / 1 error / 9 snapshots / 10,405 assertions; its extra error is the known disabled bun:internal-for-testing import.
  • Separate exact 28-file assert/dgram/diagnostics_channel/dns/promise/test_runner/timers.promises/watch/zlib comparison: Home and pinned Bun match exactly at 664 pass / 6 skip / 3 TODO / 8 fail / 1,068 assertions. All 8 shared failures are the same zlib toThrow expectations; no Home-only gap was counted green.
  • ReleaseFast JSC build: 46/46 steps succeeded. Main compile took 7 minutes; bounded peak was 13,320 MB under the established 15,360 MB ceiling.
  • Zig formatting, Pickier, and diff whitespace checks pass.

No upstream corpus source, snapshot, skip/TODO marker, timeout, or deadline was changed.

14 days ago

Pushed 58a2f2b427e6038bd8b103133cbec042551c9865 (fix(runtime): port cron execution and hot reload) to origin/main as Chris Breuer, without coauthors.

The exact three-file cron tranche exposed 8 Home-only failures while pinned Bun passed all live cases. Home's CLI already parsed --cron-title, --cron-period, and --hot, but its native VM runner did not perform Bun's scheduled-handler eval wrapper and forcibly disabled HMR. The runner now imports and awaits default.scheduled(controller) with Bun's exact type, cron, and scheduledTime shape; it also preserves hot-reload options, resolver file descriptors, watcher setup, and the watcher event loop so VM reload cleanup can clear old cron jobs.

Validation:

  • Six unchanged cron execution-mode cases: 6 pass / 0 fail, including async resolution/rejection, missing-handler failure, CJS default export, and timestamp/controller shape.
  • Unchanged macOS launchd force-trigger case: 1 pass / 0 fail.
  • Unchanged --hot reload clears jobs deleted from source: 1 pass / 0 fail / 3 assertions, completing in 1.74s instead of timing out at 130s. It proves the removed job cannot fire after reload.
  • Complete exact cron-parse.test.ts, cron.test.ts, and in-process-cron.test.ts: 125 pass / 29 honest Linux/Windows skips / 0 fail / 282 assertions, matching pinned Bun exactly.
  • ReleaseFast JSC build: 46/46 steps succeeded; main compile 7m, bounded peak 14,344 MB under the established 15,360 MB ceiling.
  • The prior native test-dispatch regression and unchanged Node stream file remain green (65 pass / 5 TODO / 0 fail).

The broader exact audit also established:

  • Complete unchanged Bun.Terminal tranche: Home and pinned Bun both 123 pass / 1 Windows-only skip / 1 upstream TODO / 0 fail / 323 assertions. #503 has been updated; it remains open for non-Darwin verification and the upstream TODO.
  • Complete unchanged YAML tranche: Home 1,911 pass / 23 TODO / 180 fail versus pinned Bun 2,091 pass / 23 TODO / 0 fail. This isolated native gap is now tracked in #757 with the failing contract groups and acceptance criteria.

No upstream source, snapshot, skip/TODO marker, workload, timeout, or deadline was changed.

14 days ago

YAML parity checkpoint pushed to main: 9c4dca8813b03dd68aa0a98d449818170f0bb89d (fix(runtime): port modern YAML parser contracts). Tracking details and remaining clusters are in #757.

The exact unchanged 3-file YAML tranche improved from 1,911 pass / 23 TODO / 180 fail to 2,047 pass / 23 TODO / 44 fail; pinned Bun is 2,091 pass / 23 TODO / 0 fail. The alias/merge deadline and expansion-bound cases now pass, and the ReleaseFast JSC build passed 46/46 under the required memory ceiling.

14 days ago

YAML parity tranche #757 is complete on origin/main at 801e8f84b5e633e5cc0fa9eecf119d7ef6ae4c6c (fix(runtime): complete YAML parser parity), authored and committed as Chris Breuer without coauthors.

Exact unchanged Darwin corpus versus Bun pin 4982b91e3702094330f3be3883354c52b8c01323:

  • Home: 2,091 pass / 23 upstream TODO / 0 fail / 14 snapshots / 13,198 assertions
  • pinned Bun: 2,091 pass / 23 upstream TODO / 0 fail / 14 snapshots / 13,198 assertions

Focused final regressions pass 21/21 with 123 assertions. ReleaseFast JSC build passes 46/46 steps, bounded peak 14,344 MB under the 15,360 MB ceiling. No corpus fixture, deadline, assertion, snapshot, skip, or TODO changed.

The main tracker remains open because full repository-wide Bun parity still has other tranches.

14 days ago

Resolver parity advanced on origin/main in 373f561f9, authored and committed solely by Chris Breuer with no coauthors; the checkpoint at the top of this issue now points to that exact SHA.

Home's native package-script preflight was caching the cwd chain without tsconfig metadata before falling through to the VM, so direct and inherited paths aliases disappeared only under HOME_NATIVE_VM=1. The cache producer now loads tsconfig metadata while preserving Bun's file/package-script collision precedence. The Home-native package dispatch regression passes, the unchanged upstream tsconfig-extends-leak.test.ts exactly matches pinned Bun at 1 pass / 1 debug-only skip / 0 fail / 3 assertions, and the full unchanged native Home resolver directory is now 269 pass / 4 upstream skips / 4 upstream TODOs / 0 fail / 70,684 assertions (from 268/1). Tracking detail: #525.

The required ReleaseFast JSC build passed 46/46 steps with a bounded peak of 14,344 MB under the 15,360 MB ceiling. No upstream assertion, fixture, workload, deadline, skip, TODO, snapshot, or expected result changed. The pinned release's full-directory control is not a valid aggregate on this Home checkout because it aborts one file while loading this checkout's bun:internal-for-testing; the directly relevant unchanged file passed exactly as recorded above. Full Bun parity remains incomplete.

14 days ago

Native RSA-PSS progress is pushed to main in 8798af312, tracked in #587.

Home now owns the two Node crypto unity objects and builds all Home-owned native C++ with Bun's pinned LLVM 21.1.8, avoiding mixed-compiler C++ ABI corruption. Native RSA-PSS sync/async generation, one-shot and streaming sign/verify, and digest/MGF1/salt/padding restrictions pass without changing upstream markers.

Validation: ReleaseFast 48/48; dedicated native RSA-PSS regression passes; exact key-object file 83 pass / 22 skip / 1 TODO / 0 fail / 905 assertions; full unchanged Node crypto directory 851 pass / 22 skip / 1 TODO / 0 fail / 2,416 assertions across 17 files. Full logical Bun parity remains incomplete.

14 days ago

Coverage map (read-only, 2026-09-22): the pinned corpus (~/Code/bun at 4982b91e37) has 197 test directories / 4,753 test files. Recorded evidence on this issue and in docs/docs covers 105 directory/file rows. 60 directories (528 files) have no recorded Home result, led by test/regression/issue (394), test/internal (14), js/bun/{glob,jsc,md} (6 each), js/bun/{cookie,transpiler} (5), cli/inspect, integration/bun-types, js/bun/{image,websocket} (4).

Reading Home against Bun in those areas found stubbed or missing ports (no runs yet; each is filed with its Bun source and verification target):

  • #759: reloadProcess is an empty stub in home.zig, so --watch reaches unreachable on the first change (cli/watch, cli/hot)
  • #760: inspector HTTP server agent events were stubbed out (cli/inspect)
  • #761: known-global constructor minification returns null (71 of 361 lines ported; regression/issue/minify-new-array-with-if)
  • #762: glob symlink entry_start with a trailing-separator cwd (Bun fixed it only in GlobWalker.rs; js/bun/glob 227/1 vs pinned)

Also noted for follow-up: --cpu-prof/--heap-prof parsed but not applied on the live src/main.zig boot (regression/issue/29240). No parity credit is claimed until each unchanged file matches pinned Bun.

Sign in to comment on this issue.