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

Compound rm/opendir callback checkpoint (2026-10-10): source c176f88fb and verified evidence. Callback rm validates directories through native callback lstat, then deletes through native callback rm. Opendir stat validation/completion uses the native callback lane with existing error mapping. Dir.close callbacks deliver through nextTick, so throws reach uncaughtException rather than rejecting internal operation promises. Queue serialization is preserved.

25 native groups; 32 validator controls; 54/54 Debug steps. Twenty-one unique original files, invoked twenty-two times: 111 passes plus thirteen process checks, zero failures/skips/TODOs, 123 per-invocation filtered cases. All 466 committed artifacts and 65 restored report outcomes validate; source hashes match committed bytes. Unchanged opendir and exact rm validation selections pass. Initial bounded failure and rejected read-exception reference assumption remain retained; read delivery was restored. Upstream assertions/snapshots and pin hashes are unchanged. Pickier retains three existing prefer-const errors and one warning, reproduced by baseline.

Dir remains a lazy path-backed listing with a placeholder handle. #878 requires actual descriptors/iterators, rename identity, streaming and platform ownership. Compound cp, directory/glob resource grouping and full read exception/receiver behavior remain open with promise/native-producer work in #877. Earlier #874/#872 were not rerun and remain open. Corpus #876, performance #869/#873, HTTPS #875/#532 and context #871/#856 remain open. Excluded regressions remain unverified; full Bun suite and Release/ASAN/all-platform coverage remain open under #66.

14 days ago

Async binding checkpoint (2026-10-10): source b9a4f7da6 and verified evidence. AsyncResource instance/static bindings now preserve call-time receivers, explicit null/falsy receivers, arguments and function arity. AsyncLocalStorage.bind captures a real resource and enters its scope, preserving storage, execution resource identity and hook behavior. Controls check restoration after callback exceptions; the pre-fix failure and Node v26.10.0 reference remain retained.

54/54 Debug steps; 25 native groups; 32 validator controls. Fifteen unchanged pinned original files: 93 test cases plus eleven process checks, zero failures/skips/TODOs/filters. All 390 committed artifacts and 58 replayed report outcomes validate, including deliberately negative controls. Source hashes match committed bytes. Pickier has zero errors and two existing warnings. Native ABI code was unchanged and its broader gates were not rerun.

General Promise/continuation lifecycle and remaining native producers remain #877. Actual context frames remain #871/#856. Directory handles remain path-backed placeholders under #878; descriptor/iterator lifetime, rename identity and teardown are unfinished. Earlier #874/#872 failures were not rerun. Corpus #876, performance #869/#873, HTTPS #875/#532, full Bun suite and Release/ASAN/all-platform verification remain open. This is a bounded conformance checkpoint, not full-suite completion.

Related tracking: #66, #877, #871 and #878.

14 days ago

Async snapshot and storage receiver checkpoint (2026-10-10): source 63a751e4b and verified evidence. AsyncLocalStorage.snapshot now captures and enters a real resource, preserving its trigger, execution identity, storage and before/after hooks. Controls verify arguments and restoration after callback exceptions. Storage run/exit callbacks receive null, including disabled exit, and retain independent store restoration. Both pre-fix failures and passing Node v26.10.0 references are retained.

Final-source build: 54/54 Debug steps; 25 native groups; 32 validator controls. Sixteen unchanged pinned original files: 119 passed cases plus eleven process checks, zero failures/skips/filters, two upstream TODOs. The unfiltered AsyncLocalStorage file contributes 26 passes and its two TODOs: readable stream direct .cancel and WebSocket client. Neither TODO receives passing credit. All 406 committed artifacts and 59 replayed report outcomes validate, including deliberately negative controls; source hashes match committed bytes. Pickier has zero errors and two existing warnings. Inactive derived cache cleanup enabled the guarded build/tests while preserving source, installed Home, active work and evidence.

General Promise/continuation lifecycle and other native producers remain #877. Actual context frames remain #871/#856. Directory descriptor/iterator lifetime and rename identity remain #878. Earlier #874/#872 failures were not rerun. Corpus #876, performance #869/#873, HTTPS #875/#532, full Bun-suite and Release/ASAN/all-platform verification remain open. Native ABI code was unchanged and broader ABI gates were not rerun. This checkpoint does not establish full-suite completion.

Related tracking: #66, #877, #871 and #878.

14 days ago

Owned directory stream checkpoint (2026-10-11): source 6b57de653 and verified evidence. Dir now owns branded native descriptors/iterators, with streaming reads, configured buffering, file kinds, descriptor-relative recursive opens, buffer names/paths and URL validation. Async open/read/close use actual filesystem jobs, Strong roots, admission/barriers and cancellation cleanup. Explicit close, iterator exit, GC and worker shutdown retire real OS descriptors. Collection warnings defer to the live owning context; async byte paths are copied before scheduling. Pinned class/global layouts and JS2Native IDs are unchanged.

Final validation: 54/54 Debug steps; 26 native groups; seventeen unchanged pinned originals with 119 passed cases plus twelve process checks, zero failures/skips/filters and two upstream TODOs. GC/worker lifecycle controls inspect actual OS descriptors. All three SDK configuration transitions pass. Fourteen ABI controls (452 assertions), five Zig binding checks and 32 report-validator controls pass. The publication executable is byte-identical to the runtime-tested executable. All 844 committed artifacts and 120 replayed report outcomes validate, including 23 deliberately negative or historical failed outcomes. Three existing Pickier errors and one warning were reproduced on the committed baseline.

The exact WebKit SDK was restored and verified against its release SHA256. Its disappearance exposed stale native configuration; the pinned maker ignores advertised metadata/directory dependencies, so native configuration now declares these untracked observations through the supported build API. Failed SDK/configuration runs, the bufferSize:null regression and rejected Node reference assumptions remain retained. Node ordinary recursion passes; Node itself fails recursive traversal after its root path is renamed, which remains a separate parity consideration. No original assertions/snapshots were changed.

Remaining: #878 stays open for full read callback receiver/exception semantics and Windows/all-platform/Release/ASAN proof. Directory/glob resource grouping, general Promise/continuation lifecycle and other producers remain #877. The upstream direct-stream cancellation and WebSocket client TODOs receive no passing credit. Earlier #874/#872 failures were not rerun; corpus #876, context #871/#856, performance #869/#873 and HTTPS #875/#532 remain open. This establishes directory ownership progress, not full Bun-suite completion.

Related tracking: #66, #877 and #878.

14 days ago

Native directory callback checkpoint (2026-10-11): source 0d83b6dc6 and verified evidence. Unbuffered directory read callbacks now execute inside their actual FSREQCALLBACK; close callbacks receive the request as their receiver and one error argument. Buffered callbacks use nextTick without another filesystem request, while synchronous buffered reads remain available. Promise overloads share the operation queue. Null callbacks, closed read overloads, immediate close state and ordinary callback exceptions follow the verified reference contract.

54/54 Debug steps; 26 native groups; 22 unchanged upstream files/invocations: 134 passed cases plus fifteen process checks, zero failures/skips, two upstream TODOs and 59 filtered exclusions. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 454 committed artifacts and 65 replayed report outcomes validate, preserving deliberate negatives. Source/original hashes match committed and pinned bytes. Node v26.10.0 and Home controls verify receivers, argument counts, real execution identity/resource, buffering, queue behavior and exception delivery. The rejected initial close-receiver assumption and Home pre-fix failure remain retained. Pickier keeps three preexisting errors and two quote warnings; the native control adds no findings.

Remaining: #878 remains open for repeated callback throws, every queued error combination, Windows/all-platform and Release/ASAN proof. General Promise/continuation hooks, directory/glob grouping beyond these verified paths and other producers remain #877. The direct-stream cancellation and WebSocket client TODOs receive no pass credit; filtered cases are exclusions. Corpus #876, context #871/#856, performance #869/#873/#874/#872 and HTTPS #875/#532 remain open. Earlier excluded regressions and the broader ABI suite were not rerun. This checkpoint does not establish full Bun-suite completion.

Related tracking: #66, #877 and #878.

14 days ago

Path glob cache checkpoint (2026-10-11): source 1a9e8f837 and verified evidence. Windows paths and patterns are validated/normalized before matcher-cache lookup. A previous POSIX call cannot reuse the same raw backslash pattern with incompatible Windows separator semantics. Both wrappers expose matchesGlob names and arity two. Alternating-dialect, repeated-pattern, validation-error and subsequent-use controls pass.

54/54 Debug steps; 26 native groups; 27 unchanged pinned originals: 168 passed cases plus twelve process checks, zero failures/skips/filters and two upstream TODOs. Ten additional ordinary path files were included. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 489 committed artifacts and 70 replayed report outcomes validate, preserving deliberately negative controls. Source/original hashes match committed/pinned bytes. Pickier has zero errors and one existing quote warning. Native ABI code was unchanged; broader ABI checks were not rerun.

Remaining: Other Node/Bun matching differences are separate from this cache repair. The macOS Node v26.10.0 raw POSIX backslash and case probes differ from the Bun matcher semantics; their outputs are retained without a full glob-parity claim. Static review of the two upstream async-context TODOs shows a retained reader lock at stream.cancel and server disposal before waiting for client events. Those original bodies were neither changed nor executed in this batch, and receive no passing credit. Existing valid lifecycle controls remain separate evidence. Corpus #876, context #871/#856, Promise/native producers #877, directory queued/platform proof #878, performance #869/#873/#874/#872 and HTTPS #875/#532 remain open. Excluded regressions, full Bun suite and Release/ASAN/all-platform verification remain open.

14 days ago

TypeScript parity update: cb4c61e20 landed on main for #863. It resolves dependent indexed generic defaults and rechecks only genuinely provisional explicit callback contexts, including imported schemas whose concrete type contains nested polymorphic this.

Verification: full checker/driver/Program suites pass; Home matches TS6 and native TS7 on all 12 oracle diagnostic positions/codes; the Zod 4.5.2 core proxy is byte-for-byte unchanged from the fresh parent diagnostic control. Full details and the stale-Zod-baseline correction are recorded on #863.

14 days ago

Progress checkpoint: pushed 971692a directly to origin/main as glennmichael123 <gtorregosa@gmail.com>, no coauthors.

fix(ts): specialize generic Record aliases (#863) preserves constrained generic Record<K, V> aliases as mapped types until concrete substitution, including finite string/numeric keys, namespace imports, and readonly members. Unsupported, cyclic, and non-property-key domains remain rejected rather than widened.

Qualified under the 3,840 MB guard: full checker, Program (260/260), and driver pass; fresh stripped ReleaseSafe compiler build passed at 2,705 MB peak; TS6, native TS7, and Home agree on the strict five-diagnostic oracle; unchanged Zod core-proxy output exactly matches the saved fresh-parent control after excluding only the guard footprint line.

14 days ago

TypeScript parity progress: pushed 2fbf7d1 to main for #863.

The checker now uses narrow literal index types when resolving element-access diagnostic names, so qualified finite Record aliases produce the concrete boolean TS2322 wording emitted by TypeScript 6 and native TypeScript 7. The batch passed full ts_checker, ts_program, and ts_driver suites, a fresh stripped ReleaseSafe home-tsc build, the five-diagnostic strict oracle, and an unchanged Zod 4.5.2 control diff. Peak guarded footprint was 2735 MB, below the 3840 MB ceiling.

14 days ago

TypeScript parity progress cross-link: 00b91760d fixes imported generic Record key aliases tracked in #863. Nested explicit/defaulted alias arguments now retain finite keys, and diagnostic alias spelling is use-site-only so it does not alter type identity or relation semantics.

Final guarded gates passed: full Program (2,293 MB), checker (2,280 MB), driver (1,935 MB), and stripped ReleaseSafe build (2,739 MB). Home matched TypeScript 6.0.3 and native TypeScript 7.0.2 exactly on the six-diagnostic differential fixture; the pinned Zod 4.5.2 proxy output was byte-for-byte unchanged. Detailed evidence: /home-lang/home/issues/863#issuecomment-6108750575

This update makes no broader Bun-corpus completion claim.

14 days ago

TypeScript parity progress: 363ceb04b landed directly on main (fix(ts): load trivia-only project configs (#846)). Empty/trivia-only configs now participate in project discovery instead of being mistaken for absent input. Home matches TS 6.0.3 and native TS 7.0.2 on the unchanged upstream SameNameDTsNotSpecified and SameNameFilesNotSpecified fixtures; targeted suites, a fresh stripped ReleaseSafe build, and the byte-identical Zod diagnostic oracle passed. Details: #846.

14 days ago

TypeScript project-admission parity advanced with 5b26803f9 on main (fix(ts): honor project extension priority (#846)). Real filesystem discovery now shares the extension-priority rules previously present only in the virtual conformance harness. On the unchanged upstream same-name allowJs project, TS 6.0.3, native TS 7.0.2, and Home all exit 0 and admit only a.ts. Targeted/full suites, a fresh stripped ReleaseSafe build, the twelve-project admission sweep, and the byte-identical Zod oracle passed. Remaining TS5055 and config-diagnostic aggregation mismatches are explicitly retained under #846.

14 days ago

Bun/TypeScript parity progress: ad97f7b93 landed on main (fix(ts): validate outputs before list-only return (#846)). Home now runs its existing TS5055/TS5056 verifier before --listFilesOnly returns. On the unchanged upstream allowJs project, TS6 6.0.3, native TS7 7.0.2, and Home all exit 1, report the same TS5055 for a.js, and list both admitted inputs; the noEmit negative is clean across all three. End-to-end streams, full tsc_main, a fresh stripped ReleaseSafe build, and the byte-identical Zod oracle passed. Details and retained gaps are recorded in #846.

14 days ago

FileHandle byte-stream checkpoint (2026-10-11): source 30ab0d71b and verified evidence. FileHandle.readableWebStream now uses the handle’s real native reads and reference counts. Byte/BYOB readers, empty EOF, cancellation, retained ownership by default and autoClose at EOF/cancellation are verified. Closed/closing/locked state and options are validated; non-bytes type options warn while still creating byte streams. Cleanup relinquishes the stream reference once and awaits native/pending close when needed.

54/54 Debug steps; 26 native groups; 35 unchanged pinned originals: 168 passed cases plus twenty process checks, zero failures/skips/filters and two upstream TODOs. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 539 committed artifacts and 78 replayed report outcomes validate, retaining eleven deliberate negatives. Source bytes match tested hashes after integrating a benchmark-only main update. The initial Home autoClose failure, Node v26.10.0 controls, both builds, terminal cache cleanup and source/pin hashes remain retained. Five existing Pickier errors and one warning were reproduced on the committed baseline; the controls add no findings.

Remaining: Concurrent close during native reads, stale descriptor misuse, transfer/deserialization, exhaustive stream/error-close cleanup and FileHandle.getAsyncId remain unverified or incomplete. Excluded lifecycle fixtures were not run. General Promise/native-producer integration remains #877; directory queued/platform proof #878, corpus #876, context #871/#856, performance #869/#873/#874/#872 and HTTPS #875/#532 remain open. Two upstream TODOs receive no pass credit. Earlier excluded regressions, full Bun-suite and Release/ASAN/all-platform verification remain open.

Related tracking: #66 and #877.

14 days ago

Progress update: 5196d20fe is now on main, linked to #846. Home now parses and propagates direct --allowJs / --checkJs CLI options and admits positional JavaScript sources accordingly, with end-to-end checks for JavaScript admission and checked-JS diagnostics.

Current-base guarded verification passed for ts_cli, tsc_main, test-tsc-streams, and a stripped ReleaseSafe home-tsc build (largest observed peak: 2,867 MB under the 3,840 MB cap). TypeScript 6.0.3 and native TypeScript 7.0.2 controls were used for the direct CLI behavior. This is a scoped parity increment; #66 remains open.

14 days ago

TypeScript CLI parity progress landed on main in 8e0e7ae. Root extension diagnostics now aggregate with config diagnostics, rejected roots are excluded before Program construction, option errors suppress emit, and direct/project exit classification matches the relevant TypeScript controls.

Full guarded test and differential evidence: /home-lang/home/issues/846#issuecomment-6123832427

#846 remains open for the broader checker/import parity work; this closes only the verified CLI root-diagnostic slice.

14 days ago

Pushed d920f81 directly to main: ported the five missing Bun init default assets (gitignore, both README templates, tsconfig, and agent rule). Each file is byte-for-byte identical to the current ~/Code/bun source; all five passed cmp, SHA-256 verification, and git diff --check. This unblocks the standalone runtime build past the first missing @embedFile inputs. Continuing with the referenced React template assets in 3-5 file batches.

14 days ago

Ported Bun's current React + Tailwind bun init template into Home in three small commits:

  • 8787921f2 — template metadata and lockfile (5 files)
  • e889090d2 — app sources (5 files)
  • 3ad071fd7 — build script, API tester, and SVG assets (4 files)

Verification: all text files match the live ~/Code/bun/src/runtime/cli/init/react-tailwind sources byte-for-byte except the two upstream files that omit a final newline; those differ only by the newline added by the patch workflow. JSON/JSONC metadata parsed successfully, both SVGs pass xmllint, Pickier reports 0 errors (only Bun-upstream quote-style warnings), and git diff --check passes. All commits are on origin/main.

14 days ago

Port checkpoint pushed directly to main:

  • db01209a4 — fix(runtime): restore native crash reporting (#66) (5 files)
    • routes Home through the real crash handler and native exports instead of inert/no-op stubs
    • ports Zig 0.17 terminal/file/Mach-O/signal APIs used by crash reporting
    • restores packed crash feature telemetry and analytics gating
    • focused analytics/Features.zig tests: 3/3 pass
  • 4bb40b005 — fix(runtime): expose Markdown terminal support (#66) (3 files)
    • exposes Kitty graphics and image URL collection from the real Markdown module
    • aliases the real bun_stdio_tty storage and nullableFallback formatter

Verification:

  • full runtime semantic compile (zig build-exe -fno-emit-bin, ReleaseSmall): PASS, peak guarded footprint 528 MB
  • full binary codegen was kept under the required 3,840 MB ceiling and correctly stopped by the guard at 3,897 MB (host memory still 73%); the ceiling was not raised
  • all touched Markdown facade files pass zig fmt --check; crash-handler fmt drift is limited to two pre-existing fork formatter builtin renames

Both commits are authored and committed as glennmichael123 <gtorregosa@gmail.com> with no coauthors.

14 days ago

Ported Bun’s real generated Bash, Zsh, and Fish completion assets in commit 6febc66 (feat(runtime): port shell completion assets (#66)). This removes the three empty completion-script stubs and reconnects Shell.completions() to @embedFile assets copied byte-for-byte from the pinned Bun SHA 4982b91e3702094330f3be3883354c52b8c01323.

Verification:

  • production shell_completions.zig tests: 3/3 pass under the 3,840 MB guard (259 MB peak)
  • all three asset SHA-256 hashes match the pinned Bun checkout
  • zig fmt --check, bash -n, and zsh -n pass

The commit is pushed directly to origin/main under Glenn’s identity with no coauthors. This validates the embedded module and scripts; it does not claim a regenerated runnable Home binary, since the pinned native Bun/WebKit artifacts are still absent locally.

14 days ago

Pushed 2a8f46442 (fix(build): migrate Windows codegen helper to Zig 0.17 (#66)) directly to origin/main under Glenn’s identity, no coauthors. This replaces removed process/file/ArrayList writer APIs in the Win32 translate-C postprocessor while preserving its symbol-rewrite behavior.

Evidence:

  • pre-fix actual entrypoint semantic compile failed at removed std.process.argsWithAllocator
  • post-fix actual entrypoint semantic compile passes
  • fixture unit test passes and covers NTSTATUS/HANDLE/PHANDLE replacements, unsuffixed Win32 rejection, unchanged declarations, and multiline declarations
  • guarded ReleaseSafe helper build peaked at 239 MB
  • end-to-end fixture output exactly matches the expected file (SHA-256 0832826e781621398f5ad56f42df2a2a1e545747cbf67a38b71bd4ab30dca551)
  • all three files pass zig fmt --check and git diff --check

This is a verified build-tool compatibility increment; it does not resolve the separate full release-codegen memory ceiling tracked in #855.

14 days ago

Pushed ca10a0903 (fix(runtime): migrate init command to Zig 0.17 (#66)) directly to origin/main under Glenn’s identity, no coauthors. The command now uses Zig 0.17 explicit I/O for stdin, file creation/flush, package reads, directory iteration, path creation, and child install processes; its legacy enum builtins are migrated as well.

Verification:

  • exact production home-runtime semantic compile with -fno-emit-bin: exit 0, 548 MB guarded peak
  • focused Bun-reference integration contract for preserving/detecting an existing non-index TypeScript entry: 1 pass, 0 fail, 71 MB peak
  • Pickier passes for the test and fixture
  • zig fmt --check passes for init_command.zig
  • staged/committed chunk is exactly three files

The full emitted runtime remains separately constrained by the release-codegen memory/artifact work in #855; this comment claims semantic compilation and the focused reference behavior only.

14 days ago

FileHandle options and integrated runtime checkpoint (2026-10-12): FileHandle source, runtime integration and verified evidence. FileHandle.writeFile forwards flush to native writes and validates invalid options; public filesystem helpers retain ordinary handle offsets. Descriptor construction preserves zero through nullish fallback, with no descriptor-zero runtime pass claimed. The integrated runtime migrates the dev-server dump writer to Zig Io with explicit flush and shares registered promise completion callbacks; immediate and delayed CLI --print controls pass.

54/54 Debug steps; 26 native groups; 35 unchanged pinned originals: 168 passed cases plus twenty process checks, zero failures/skips/filters and two upstream TODOs. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 1156 committed artifacts and 157 replayed report outcomes validate, retaining 23 negatives, including the interrupted reporter capture. Seven integrated source hashes match the tested commit. Initial Home/reference failures, failed integration builds and memory stop/admission outcomes remain retained. Five existing Pickier errors and one warning remain; changed native JS controls lint clean.

Remaining: The Node descriptor-zero reference aborted and was not rerun; its trigger scripts are excluded and no runtime pass is awarded. Earlier Home opened descriptor 5. General Promise/native producers, FileHandle async IDs, transfer and exhaustive concurrent cleanup remain #877. Directory platform/queued proof #878, corpus #876, context #871/#856, performance #869/#873/#874/#872 and HTTPS #875/#532 remain open. Two TODOs receive no pass credit. Full Bun-suite parity and Release/ASAN/all-platform verification remain open.

14 days ago

Cross-reference: admitted-JavaScript Program diagnostics advanced in #846 via 565fcb84a. Exported primitive @type facts and direct JSDoc-typed constructor fields now survive cross-file imports; focused Program tests are 269/269, checker tests 4570/4570, and a fresh home-tsc fixture produces TS2322 x3 + TS2632 with the prior false TS2339 removed. Remaining scope is tracked in #846 (including literal widening and complex JSDoc transfer).

14 days ago

Bound FileHandle cleanup checkpoint (2026-10-12): source and verified evidence. FileHandle.close is an own bound arrow function: detached cleanup retains the receiver and repeated calls complete. Closed read() now reports read as the EBADF syscall. Ordinary readLines with autoClose:false retains caller ownership. Five additional unchanged originals cover readLines, chmod, appendFile and two write-stream/FileHandle controls.

54/54 Debug steps; 26 native groups; 40 unchanged pinned originals: 168 passed cases plus twenty-five process checks, zero failures/skips/filters and two upstream TODOs. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 580 committed artifacts and 83 replayed reports validate, preserving eleven negative outcomes. Runtime source hashes are unchanged after integrating a TypeScript-only main update. Node reference controls, initial Home failures and the rejected promise-identity assumption remain retained.

Lint accounting correction: Pickier 0.1.71 initially scanned zero files. Explicit-extension isolated scans cover both changed files; baseline and final findings match at eighteen errors and 111 warnings, with zero new findings. Earlier five-error/one-warning counts are insufficient for this broader scan.

Remaining: getAsyncId requires actual native FileHandle ownership/identity; a JavaScript-only counter would not complete that port. Native producer/Promise hooks, transfer and exhaustive concurrency/cleanup remain #877; directory #878, corpus #876, context #871/#856, performance #869/#873/#874/#872 and HTTPS #875/#532 remain open. Two TODOs receive no pass credit. Full Bun-suite parity and Release/ASAN/all-platform verification remain open. Descriptor-zero runtime behavior remains unproven; its earlier aborted reference is not rerun.

14 days ago

Cross-reference: #846 advanced again in 70a14e6bd. Checked JavaScript primitive const exports now widen like TypeScript while .ts literal exports remain exact. Program is 270/270 and a fresh home-tsc fixture matches TypeScript on TS2322 x3 + TS2632 x1 messages. Complex JSDoc/declaration shapes remain tracked in #846; full Bun/runtime parity remains open here.

14 days ago

Cross-reference: 0e6a18df3 advances #846 by retaining complete primitive JSDoc function signatures across admitted-JS imports. Program is 271/271 and the fresh CLI now matches TypeScript on the previously missing TS2345 + TS2322 pair. Complex/generic/rest/partial JSDoc remains explicitly unclaimed in #846; full runtime/Bun parity remains open here.

14 days ago

Native FileHandle ownership checkpoint (2026-10-12): source and verified evidence. Native open completion creates a branded destructible owner for the exact descriptor. Its native storage holds the shared async ID; public getAsyncId delegates to it and remains stable after close. FILEHANDLE init exposes the actual native owner with descriptor access and trigger zero. Real close jobs root the owner and deliver FILEHANDLECLOSEREQ init/before/after/destroy around completion; synchronous/deferred close paths retire the same owner and POSIX close errors are preserved.

GC performs native cleanup and schedules its warning on the owning context. Per-global shutdown retires descriptors only after native jobs quiesce. Transfer detaches sender ownership before receipt/restoration adoption. Canonical-path lsof controls verify abandoned GC closes its descriptor with one warning and worker shutdown closes a retained descriptor. Failed dev-fd/noncanonical observation assumptions, private closed-fd sentinel assumption, compilation failures and memory admission/stop outcomes remain retained.

54/54 Debug steps; 26 native groups; 40 unchanged pinned originals: 168 passed cases plus twenty-five process checks, zero failures/skips/filters and two upstream TODOs. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 594 artifacts and 83 replayed reports validate, preserving eleven negatives. Ten tested source hashes remain unchanged across TypeScript-only main updates. Pickier explicitly scans three changed JS sources and matches baseline findings at eighteen errors and 128 warnings, zero new findings.

Remaining: General Promise identity/trigger delivery, exact native stream-read resource types, exhaustive transfer/concurrency/error cleanup and Linux/Windows/Release/ASAN proof remain #877. Directory #878, corpus #876, context #871/#856, performance #869/#873/#874/#872 and HTTPS #875/#532 remain open. Full Bun-suite parity remains unproven, two TODOs receive no pass credit, and descriptor-zero runtime proof remains absent.

14 days ago

Zig 0.18 migration checkpoint: bcec002 landed on main under #884. The standalone Home I/O package now uses the explicit std.Io filesystem API and has a real package/public test graph. It passes under both the pinned Zig 0.17 compiler and 0.18.0-dev.146 (5/5 build steps and 2/2 public tests on each; embedded tests 3/3 on each). This is infrastructure progress toward keeping Bun/runtime parity buildable as CI advances; full parity and the remaining 0.18 slices are still open.

14 days ago

Zig 0.18 migration checkpoint: c142ab9989685eb3dd5bbb6991a57339e570df13 is on origin/main.

The X25519 std.crypto signature transition is now handled without weakening input validation: public-key recovery supports both Zig 0.17's error union and Zig 0.18's direct value, while scalarmult remains fallible for attacker-controlled identity/small-order points. The dedicated vector target and integrated home-tool build pass under both compilers. Full details and the runtime-corpus configuration caveat are tracked in #884.

14 days ago

Native FileHandle transfer audit: the current worker implementation still uses a user-visible in-band marker conversion. One unchanged pinned worker/FileHandle original passes as a process check, but that does not establish native structured-clone parity. Same-thread structuredClone and real host-object transfer remain required.

A native prototype now uses private JSC branding and an out-of-band descriptor payload, with graph back-references and payload destructor cleanup. The Node ordinary reference passes. Home's prototype control crashed and receives no pass credit; it has not been rerun. Static review found an absent-property/empty-JSValue hazard in the brand lookup and added an explicit guard. Compile-only verification is pending behind a live shared build lock. The prototype is preserved locally and has not been published to main.

Remaining work includes atomic transfer commit across entries, native worker-construction failure semantics, undelivered payload cleanup proof, repeated deserialization policy and all-platform verification. #877 and #66 stay open; the published native FileHandle ownership checkpoint remains the current verified runtime state.

14 days ago

The native-transfer prototype's defensive compile passes 54/54 Debug steps. Its crashing control was not rerun, and native transfer remains unverified. The current published runtime implementation is restored on main; prototype executables were quarantined so subsequent runtime tests cannot accidentally credit them.

Verified audit evidence retains eighteen artifacts and explicitly records native_transfer_verified: false. The crash-trigger source and unpublished prototype patch are excluded. This adds no native-transfer feature pass credit. The real serializer protocol, transactional ownership and payload lifetime work remain #877; full parity remains #66.

14 days ago

Zig 0.18 migration checkpoint: c451ed8525d62a7c2833c4af5ef9ac39da5c88f5 is on origin/main.

The previously uncompiled LTO build package is now in the top-level test graph and passes 6/6 under both the pinned Zig 0.17 compiler and Zig 0.18.0-dev.146. The OptimizeMode change is handled as a qualified-name compatibility rename; stale allocator-explicit ArrayList calls, IR metadata construction, and ThinLTO ownership were separate API/semantic fixes. Full details are in #884.

14 days ago

Zig 0.18 compatibility checkpoint: 61b5cba is pushed to main and tracked in #884.

The new daily/PR Zig-master lane gates the qualified X25519, OptimizeMode/LTO, and std.Io package seams. Release tests now run in the same ReleaseFast mode as shipped binaries, closing the Debug-test/ReleaseFast-artifact configuration mismatch. Security-relevant error paths remain intact: X25519.scalarmult, AEAD decrypt, PBKDF2, and scrypt are still fallible and still checked.

Detailed evidence and remaining std.Io scope: /home-lang/home/issues/884#issuecomment-6129051299

14 days ago

Resource timing option checkpoint (2026-10-12): source and verified evidence. Node perf_hooks delegates setResourceTimingBufferSize to the owned native global API, preserving WebIDL unsigned-long conversion for fractional/string sizes and the shared buffer limit. Named clearResourceTimings uses ordinary string conversion before exact-name filtering; numeric and toString object names clear the matching entry.

54/54 Debug steps; 26 native groups; 40 unchanged pinned originals: 168 passed cases plus twenty-five process checks, zero failures/skips/filters and two upstream TODOs. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 573 artifacts and 83 replayed reports validate, retaining eleven negative outcomes. Node reference controls, Home pre-fix numeric-clear failure, both builds and three tested source hashes remain retained. Source bytes are unchanged across build-test/CI-only main integration. Pickier explicitly scans three JS sources, matching baseline three errors and 61 warnings, zero new findings.

Remaining: The unchanged zero-argument markResourceTiming assertion remains contradicted by actual valid resource creation (#874); it was not weakened or credited. Native performance/fetch parity #869/#873/#872, HTTPS #875/#532, general Promise/native producers #877, directory #878, corpus #876 and context #871/#856 remain open. The native transfer prototype is preserved but unverified; its crash control was not rerun and receives no credit. Full Bun-suite, Release/ASAN and all-platform proof remain open. Two TODOs receive no pass credit.

14 days ago

Promise watcher iterator checkpoint (2026-10-12): source and verified evidence. Promise fs.watch is a genuine lazy async generator with direct next/return/throw and self iterator identity. File URL paths convert to native paths; Buffer paths preserve bytes. Preabort opens no native watcher; active abort preserves AbortError cause. Native close/error and iteration exit share finally cleanup for watcher, abort listener and FIFO. Options validate persistent/recursive/signal/encoding/maxQueue/overflow; queues bound events with the actual Node overflow error code/message or warning behavior.

54/54 Debug steps; 26 native groups; 44 unchanged pinned originals: 168 passed cases plus twenty-nine process checks, zero failures/skips/filters and two TODOs. Four added originals cover glob/regexp/function/mixed ignore options. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 603 artifacts and 87 replayed reports validate, preserving eleven negatives. Node/Home iterator-abort and refined UTF8 named-event controls pass. Initial Home URL rejection, Node Buffer encoding rejection and first-event startup assumption remain retained. Pickier explicitly scans two sources: eighteen baseline errors, warnings reduced from 111 to 109, zero new findings.

Remaining: Abort stopPropagation resistance, every overflow/error combination, queue stress, native watcher hook identity and Linux/Windows/Release/ASAN proof remain unverified or incomplete. Buffer/string option extensions are not Node parity claims. General Promise/native producers and FileHandle transfer #877, directory #878, corpus #876, context #871/#856, performance #869/#873/#874/#872 and HTTPS #875/#532 remain open. Two TODOs receive no pass credit; full Bun-suite parity remains unproven. Known crash controls were not rerun.

14 days ago

Protected cancellation checkpoint (2026-10-12): source and verified evidence. Promise watcher, timeout and immediate operations use native propagation-resistant disposable abort subscriptions. Earlier user stopImmediatePropagation no longer blocks cancellation. Abort closes/cancels the real native producer, preserves cause, and settlement/finally removes its listener.

Promise intervals are genuine lazy async generators: queued next calls serialize, pending ticks are retained, and return/throw/abort reach terminal iteration while finally retires the native interval and subscription. Timeout/interval expose arity two while omitted delay retains the native default. Node/Home controls verify two queued reads, listener counts, reason and terminal return state; Home's pre-fix missed cancellation rejection remains retained.

54/54 Debug steps; 26 native groups; 52 unchanged pinned originals: 179 passed cases plus thirty-five process checks, zero failures/skips/filters and two TODOs. Added originals cover watcher abort, abort-listener propagation/disposal, scheduler and promise timeout/immediate/interval lifecycle. Original --no-warnings flags are applied. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 645 artifacts and 95 replayed reports validate, retaining eleven negatives; three committed source hashes match tested bytes. Explicit Pickier scans retain eighteen baseline errors and reduce warnings from 126 to 117, zero new findings.

Remaining: Every abort/error ordering, native Promise identity/trigger delivery, watcher overflow lifecycle/stress, FileHandle transfer and Linux/Windows/Release/ASAN proof remain #877. Directory #878, corpus #876, context #871/#856, performance #869/#873/#874/#872 and HTTPS #875/#532 stay open. Two TODOs receive no pass credit; full Bun-suite parity remains unproven. Known crash controls were not rerun.

14 days ago

Scheduler and timer payload checkpoint (2026-10-12): source and verified evidence. Scheduler now has its class prototype, illegal public constructor and branded singleton allocated through Reflect.construct. yield/wait expose correct names/arity, reject foreign receivers and use actual native promise immediate/timeout operations. yield ignores incoming result/options arguments and resolves undefined. Promise timeouts retain opaque result values directly, preserving identity without reading Symbol.isConcatSpreadable or spreading the payload.

54/54 Debug steps; 26 native groups; 52 unchanged pinned originals: 179 passed cases plus thirty-five process checks, zero failures/skips/filters and two TODOs. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 643 artifacts and 95 replayed reports validate, preserving eleven negatives. Node/Home controls verify prototype/construction, receiver and argument/result semantics, names/arity and opaque values. Home baseline stops at the plain-Object Scheduler mismatch; no pre-fix opaque-value runtime failure is claimed. Two committed source hashes match tested bytes. Explicit Pickier scans match thirteen baseline errors and 74 warnings, zero new findings.

Remaining: General Promise identity/trigger delivery, every cancellation/error ordering, FileHandle transfer, watcher overflow lifecycle and Linux/Windows/Release/ASAN proof remain #877. Directory #878, corpus #876, context #871/#856, performance #869/#873/#874/#872 and HTTPS #875/#532 stay open. Two TODOs receive no pass credit; full Bun-suite parity remains unproven. Known crash controls were not rerun.

14 days ago

#876 distinct-root suite progress: baa0ae225 now accepts and provenance-binds coordinated relative targets spanning multiple canonical Bun corpus roots. Ownership/context tests pass on Zig 0.17 and 0.18, and the bounded non-JSC production build passes 26/26 steps. The local JSC link exceeded the fixed 3,840 MB ceiling and was correctly killed, so no local end-to-end native pass is claimed; the committed direct-vs-coordinated fixture awaits remote/native confirmation. Full Bun-suite parity and the remaining #876 integration/platform matrix stay open.

14 days ago

Native VM memory attribution checkpoint (2026-10-12): memory source, native distinct-root repair and verified evidence. Native full-collection analysis records JSC marked graph nodes/references and realm reachability, with engine size estimates plus deduplicated backing allocations. Indexed array capacity corrects the first failed unequal-allocation control. Exclusive/shared/unattributed weights produce estimates and ownership ranges instead of duplicating the whole heap for every context.

Default requests wait for full collection; eager requests trigger it. Results deliver asynchronously on the owning context, overlapping requests retain independent promises, and native requests retire on process/worker/test-realm shutdown. Unequal-allocation, collection timing, overlap and shutdown controls pass. Mixed-root native dispatch now preserves caller context and distinct roots; the original regression arguments/assertions are restored and pass.

54/54 Debug steps; 27 native groups; 55 unchanged pinned originals: 179 passed cases plus thirty-eight process checks, zero failures/skips/filters and two TODOs. Fourteen ABI controls (452 assertions) and 32 report-validator controls pass. All 1676 artifacts and 251 replayed report outcomes validate, retaining 26 negatives. Ten source hashes match tested bytes; explicit Pickier scans retain one existing error and eleven warnings, zero new findings. Formatting/docs paths pass. Allocation, compile, disk, stale-cache and both mixed-root repair failures remain visible.

Separate lifetime failure remains: evaluated contexts stay reachable after references are dropped. An unused context collects; a control that never calls measureMemory and installed Bun both retain evaluated contexts. The graph keeps that live row and the unchanged retirement assertion remains failed under #885. #870 stays open. Copy-on-write/shared backing proof, every memory type, profiler interactions and platform/Release/ASAN/full-suite proof remain incomplete. General Promise/native producers/transfer #877, directory #878, corpus #876, context #871/#856, performance #869/#873/#874/#872 and HTTPS #875/#532 remain open. Two TODOs receive no pass credit; known crash controls were not rerun.

14 days ago

Ordinary lifetime investigation narrows #885 to the last evaluated context. In an array/fill/map/Math.max matrix, earlier contexts collect and the final Math.max context stays live. Reversing the order retires Math.max and retains the final array-only context. A host runInThisContext call does not release the last sandbox. The original payload retirement assertion remains failed; an additional ordinary timer control still retains it after 22 seconds/full collections.

Retained exported closures and compiled functions stay callable. A retained Script alone does not retain its prior sandbox in the comparison. These controls preserve valid lifetimes and receive no full-suite parity credit.

A temporary private native heap observer reports RootMarkReason::Output (ordinal 13) for the remaining NodeVMGlobalObject, and JITWorkList (ordinal 14) for code roots named call and an unnamed function. The pinned engine's ScriptExecutable traversal marks code-block globals. This is a concrete compiled-code/worklist lead; it does not yet prove which plan or cache owns the realm. The earlier fill-specific hypothesis is superseded by the ordering controls.

Production sources are restored. No context filtering, cache flushing, worklist cancellation, assertion weakening or production diagnostic change is introduced. Diagnostic compilation errors and the unavailable snapshot-metadata attempt remain in the investigation evidence. #66, #870 and #885 stay open.

Evidence: 58 verified artifacts on main.

14 days ago

Native CLI CPU and heap profiling are implemented on main in source 25f08362b with verified evidence. Both empty disk writers are replaced by actual engine exporters, correct native string ownership and output-path behavior. The native run path applies configuration, starts CPU sampling under API lock before evaluation, and uses the existing idempotent VM shutdown hooks. JSON/Markdown, custom/default names, nested destinations, dual CPU formats and explicit process.exit heap output are covered.

54/54 Debug steps; sixteen cases across both byte-identical pinned profiling originals; five native groups; fourteen ABI controls with 452 assertions; 32 report-validator controls. No original failure, skip, TODO, filter or retry. Pickier, formatting and documentation paths pass. All 43 evidence artifacts, four source hashes and both original report replays verify.

#885 remains incomplete: direct Script.runInContext also retains the last evaluated realm. Refined probes show the JIT-worklist code roots observed in the prior investigation belong to host code, so they do not establish the sandbox owner. Temporary probes are restored and excluded from production. Release/ASAN, Linux/Windows and full Bun-suite parity remain unproven.

14 days ago

Native VM sandbox reuse is fixed on main in 41b8a2400, with 347 verified evidence artifacts.

Before the change, Script.runInNewContext created a fresh native realm for every call and did not contextify fresh sandboxes. The ordinary control failed isContext on Home while Node passed. Fresh sandboxes now register in the native map; contextified sandboxes reuse their realm. Script/module calls preserve lexical declarations, built-in identity and afterEvaluate microtask checkpoints. EventLoopHandle JS entry/exit forwards to the actual nesting-aware loop, and the platform loop alias is restored.

54/54 Debug steps; twenty-eight native groups; seven byte-identical original VM process checks; fourteen ABI controls with 452 assertions; 32 report-validator controls. No original failures/skips/filters/retries. Pickier, formatting and documentation paths pass. Three source hashes match tested bytes, and all 51 report outcomes replay, retaining eleven deliberate negatives.

The distinct last-context retirement assertion remains failed under #885. No live-context filtering, cache flushing or weakened lifetime assertion is used. All EventLoopHandle callers/Windows paths, Release/ASAN/all-platform and full Bun-suite proof remain incomplete.

14 days ago

Native VM context option semantics are fixed on main in 6bca26e9c, with verified evidence.

The baseline read ignored creation-option getters three times on Home while Node read zero. Existing contexts now return before reading creation options. Module new-context calls map contextName/contextOrigin/contextCodeGeneration into creation options; native Script uses the matching context option names, and native createContext validates import callbacks while preserving the default-loader constant. Script execution options keep the Script-owned callback rather than reading/installing another context callback.

54/54 Debug steps; twenty-eight native groups; twelve byte-identical original VM process checks; fourteen ABI controls with 452 assertions; 32 report-validator controls. Original outcomes have no failures/skips/TODOs/filters/retries. All 380 artifacts, three source hashes and 56 report outcomes replay, including eleven deliberate negatives. Explicit Pickier scans retain zero errors and one existing quotes warning, with zero new findings; docs paths pass.

Last-context retirement #885, inspector context name/origin metadata, every import lifetime, all-platform/Release/ASAN and full-suite proof remain incomplete. No live-context filtering, cache flushing or weakened lifetime assertion is introduced.

14 days ago

Native VM compiled-function scope and realm ownership are fixed on main in 8169912f2, with 412 verified evidence artifacts.

The baseline exposed a function-specific context extension to later realm evaluation. Extensions now remain in the function scope chain, and the generated executable carries the with-scope taint. Retained functions still see live extension changes while realm scripts and plain compiled functions cannot see those bindings. Function construction uses the parsing realm, preserving Function.prototype identity. Special parsing contexts use the shared native lookup; options/import callback validation and extension index labels are corrected.

54/54 final Debug steps; twenty-eight native groups; sixteen byte-identical original VM process checks; fourteen ABI controls with 452 assertions; 32 report-validator controls. Original outcomes have no failures/skips/TODOs/filters/retries. All 412 artifacts, two source hashes and sixty report outcomes replay, including eleven deliberate negatives. Explicit Pickier scans report zero errors/warnings; documentation paths pass.

The initial Node v26.10.0 reference aborted in native ContextifyFunction::CompileFunction on a nullable-extension case. Its failure logs remain preserved; that fixture was not rerun or published as executable source and receives no pass credit. The first compiled variant also failed prototype identity; constructing in the parsing realm corrects it without weakening the assertion. Nullable/proxy extension completeness, callback ownership cycles, last-context retirement #885, every memory type, all-platform/Release/ASAN and full Bun-suite proof remain incomplete.

14 days ago

Native VM cache requests and measurement delivery are fixed on main in 5867cb50f, with 804 verified evidence artifacts.

Cache consumption and production are independent requests. Supplied cache input no longer suppresses requested production of actual engine cache bytes. Serialization uses the executable's external with-scope flag; source strict directives remain source-derived. Complete own-runtime function/module caches roundtrip, and consuming function code with another extension object binds that fresh environment without leaking bindings into realm evaluation.

The first broader native run aborted during worker measurement delivery. The diagnostic and disassembly identify array construction returning null on an exception path before indexed access at offset 4. Range/result construction now checks fallible allocations/writes before use. Terminated owners retire native requests without clearing engine termination. The unchanged shutdown regression passes the focused check and guarded broader batch; the original abort remains failed in its own summary/logs.

54/54 final Debug steps; twenty-eight native groups; seventeen byte-identical original VM process checks; fourteen ABI controls with 452 assertions; 32 report-validator controls. Original outcomes have no failures/skips/TODOs/filters/retries. All 804 artifacts, three source hashes and 122 report outcomes replay, retaining 22 deliberate negatives. Explicit Pickier scans report zero errors/warnings; docs paths pass. Compile failures, the missed first include edit, the worker abort and a disk stop are retained.

Every measurement/termination schedule, invalid/cross-version cache input, callback ownership cycles, last-context retirement #885, every memory type, all-platform/Release/ASAN and full Bun-suite proof remain incomplete.

14 days ago

Native CPU profiler ownership is fixed on main in 28e9d1054, with 433 verified evidence artifacts.

The baseline worker Session disconnect stopped parent profiling on Home while Node passed. Running state, sampling interval and start timestamp now belong to the actual JSC VM. Explicit VM contracts wire CLI/inspector calls. Shutdown exports requested CLI output first, then stops/removes sampling state. Parent samples and function names survive an idle worker disconnect and an active profiling worker's natural exit. The complete C++ profiler implementation is now Home-owned in its ABI-matched unified source; the public header remains byte-identical.

54/54 Debug steps; twenty-eight native groups; twenty unchanged selected files with 54 passed cases plus seventeen process checks; fourteen ABI controls with 452 assertions; 32 report-validator controls. No original failures/skips/TODOs/filters/retries. All 433 artifacts, nine source hashes and 64 report outcomes replay, retaining eleven deliberate negatives. Explicit Pickier, formatting and docs checks pass.

Six pinned inspector assertions cover unsupported/partial behavior and receive no implemented-feature credit. Full native protocol sessions, same-VM per-session agents, notifications, worker attachment, open/close/URL/wait lifecycle, legacy same-thread multi-VM callers, #885 retirement, all-platform/Release/ASAN and full Bun-suite proof remain incomplete. #428 stays open with its original acceptance criteria.

14 days ago

Verified native generation input tracking is on main in 531cdfdfc, with 47 verified investigation artifacts. HomeCPUProfilerState.h and BunCPUProfiler.cpp now invalidate generation. Header-only/source-only marker probes each regenerate the copied owned input, then restore bytes and clean output. native-runtime-modules invokes the same generator without compilation/linking.

The final 54/54 restored build is byte-identical to the tested binary. Maintained profiler behavior, VM memory/shutdown, corpus dispatch, fourteen ABI controls and 32 report-validator controls pass. Source/format/docs checks and all committed artifact hashes verify. The unrelated TS origin update was rebased without altering tested input/archive bytes.

The real native inspector transport prototype evaluates ordinary expressions and independently routes session IDs, but unchanged context-created notification assertions fail. Bare JSC global runtime agents emit no creation notification on enable, and JSC ScriptProfiler is not the CDP Profiler contract. Proper context/profiler agents, worker attachment and enabled lifecycle remain required. The unready replacement is preserved locally and excluded from main; published inspector/profiler source is restored. No fabricated protocol results or weakened notification assertions are used. #428 and #66 stay open.

14 days ago

Native local inspector sessions and sampled profiler agents are on main in 035d2a491, with 1054 verified artifacts.

GC-traced local channels dispatch actual JSC commands, route session-specific IDs, deliver registered owner-context notifications, support nested posts/callback disconnect, and retire on shutdown/global replacement. Native sampling brokers retain only immutable verified-frame data and preserve independent start/stop boundaries. Profiles use actual definition metadata, source IDs/URLs and integer microsecond timing. Bun's synchronous result extension and actual-main convenience are retained through real native dispatch; workers do not silently attach locally.

Owned pinned controller teardown releases non-owning checked references before destroying agents, and shared agents stay enabled until the last frontend disconnects. The initial checked-reference worker abort, earlier 240-second measurement deadline, compile/type/API failures, harness error and disk stops remain in evidence. Later focused and broader exact-source shutdown checks pass; the deadline cause is not claimed resolved.

56/56 Debug steps; all twenty-eight native groups; positive evaluation/notification/routing/reentrancy/reconnect/profile controls; fourteen ABI controls with 453 assertions; 32 validator controls. Twenty unchanged original files retain 53 passed cases, one failed unsupported-runtime expectation, plus seventeen process checks. #886 tracks the obsolete case, with no pass credit. All 148 report outcomes replay, retaining 25 negatives; fifteen source hashes match tested bytes. Pickier matches zero errors/ten baseline warnings, zero new findings; formatting/docs pass.

#428 stays open for full context lifecycle, worker attachment, debugger pause/resume, open/close/URL/wait lifecycle, full protocol schemas, coverage, CLI/session sampling coexistence, primordials, every shutdown schedule and all-platform/Release/ASAN. #885/#870 and full Bun-suite parity remain incomplete.

14 days ago

Profiler ownership follow-up: preserved evidence shows the ordinary Node control retains CLI before/during/after samples and inspector-only session samples; verified Home rejects session startup while CLI profiling is active. Proposed native detached-record/shared-owner code and repeated-session/shutdown regressions are preserved on recovery source 0ebc3c208, excluded from main. All eight guarded Debug attempts stopped for shared disk (seven) or host memory (one), despite about 10.6 GiB inactive cache/log cleanup. No completed build or new runtime pass credit. Main runtime remains at 035d2a4 / verified evidence 7e0f249. #428 and #66 stay open; the unchanged #886 original-test conflict is retained.

Sign in to comment on this issue.