Published Darwin checkpoint
Published 9b3a5c1ad on codex/runtime-port as Chris Breuer, sole author and committer, no coauthor trailers. Not merged to main.
#525 now uses canonical missing-module errors or typed resolver metadata. Runtime installer initialization validates the root directory before singleton allocation, returns and retains initialization failures, and propagates them through resolver/transpiler accessors. Native readable-file dispatch runs before cwd package scanning; custom loaders retain full preflight. The VM-side generic cwd/log reconstruction is removed.
Unchanged pinned suites:
- tsconfig-override: 6 pass / 0 fail / 17 assertions, from published parent's 5/1.
- resolver: 39 pass / 2 skips / 1 TODO / 0 failures / 59 assertions, from parent's 38 pass / 1 fail / 1 error; spawned file 9 passes / 1 TODO / 41 assertions. Pinned Bun matches. The unreadable-cwd test retains its original 5,000 ms deadline.
- bun-run 291/291 / 416 assertions, native hard-link-PATH bunx 33 pass / 1 Windows-only skip / 0 fail / 161 assertions, workspaces 58/58 / 192 assertions, eval 33/33 / 70 assertions.
The expanded existing native registry fixture verifies actual 404s, native identity, CJS/ESM error codes and three repeated initialization failures for each implicit/explicit and absolute/relative entry scenario. Normal and VM-destruction/JSC-check runs pass; all four cwd controls and all 21 prior config controls match pinned Bun.
Build 17/17; units 1,820 pass / 19 skips / 0 failures (19/19 steps); regression commands 56/56, including 25 native files, full spawn and child-process. All 37 measured upstream source files match source pin 4982b91e3702094330f3be3883354c52b8c01323; regenerated tarball contents verified and pinned bytes restored. Declared resolver dependencies were installed with Home into an owned directory and linked without replacing existing empty corpus directories. No upstream assertion/workload/deadline changed. Scoped lint/format/whitespace pass.
Remaining failure: #526. EOF-delimited HTTP/1.0 registry 404s still trigger the pre-existing pending-task assertion after caught errors, including in this final candidate. Content-Length responses pass with both closing and persistent connections; pinned Bun handles the original EOF case. The assertion and failed evidence remain intact. Shared Darwin checkout only; unrelated compiler edits excluded. Other platforms, branch integration, skips/TODOs and full source ownership remain unverified. #66 is incomplete.
Evidence: zig-out/resolve-publication3.json, resolve-build3.{log,json}, resolve-build3-{binary,source-snapshot}.json, resolve-unit3.{log,json}, resolve-regression3s.json, resolve-wide-{parent-declared-deps,release-declared-deps,candidate3}.json, resolve-native-{candidate3,destruction}.json, resolve-cwd-{release-control,candidate3}.json, resolve-transport-matrix3.json, and resolve-source-integrity3.json. Earlier source-only diagnostics, missing dependency failures, startup timeout and inactive-union panic remain recorded.
Original diagnosis and scope
Follow-up to #66, #518 and #517. The unchanged cli/run/tsconfig-override.test.ts at Bun source pin 4982b91e3702094330f3be3883354c52b8c01323 exposes a native resolver diagnostic difference after registry auto-install returns 404.
The test should use custom tsconfig for path resolution first runs without the override and expects Cannot find module. Home instead reports GET https://registry.npmjs.org/@helpers%2fmath - 404 while resolving "@helpers/math". The assertion is unchanged and still fails.
Reproduced on Darwin with strict native execution:
| Runtime | Passing | Failing | Assertions |
|---|---|---|---|
Published Home 3be72ca5b9a9bbc182ce746459f408ed295e4883 | 5 | 1 | 14 |
| #517 config candidate | 5 | 1 | 14 |
Pinned Bun release 1.4.0-canary.1+4982b91e3 | 6 | 0 | 17 |
This is pre-existing in the published installer checkpoint, not introduced by optional config scanning. One earlier candidate run happened to pass; repeated controlled runs retain the failure, so that isolated pass is not stable parity evidence.
Investigate VirtualMachine.resolveMaybeNeedsTrailingSlash: Home uses a generic installer error as resolver_detail, while the pinned Rust path selects resolve-metadata diagnostics and otherwise formats the canonical ResolveMessage. Preserve typed filesystem/cwd failures and useful installer diagnostics; do not weaken the upstream assertion or disable real automatic installation to pass it. Add deterministic local-registry 404 coverage, including error code/message and native process identity, then rerun the complete unchanged file.
Evidence: zig-out/config-wide-{parent,candidate1,release-control}-declared-deps.json. Source identity: config-additional-source-integrity.json. Full logs retain the mismatch. React 18.3.1 was installed by Home into a task-owned directory and linked at the unchanged corpus manifest's declared local dependency path for the adjacent eval suite; no upstream source was modified. Linux/Windows and full installer parity remain unverified. #66 is incomplete.