Parent: #66. Related: #202, #702. Logical parity is incomplete; an adapter-generated green count must not be treated as suite completion.
Current publication (2026-09-08)
The native-only discovery/dispatch remains in place: 4,754 original pre-exclusion entries, 1,863 test-runner and 2,891 script modes, with synthetic corpus rewriting/bootstrap fallback removed. Inventory is not passing coverage.
The launch contract is now ported in fcd8ccb97 and corrected in 0785d795a, with final evidence 07b32b554, all pushed to origin/main as Chris Breuer without coauthors. 23/23 native/harness build steps and 9/9 harness tests pass. Five focused launch units pass. An independent selector comparison matches 19,016 rows across all 4,754 paths and four CI/local/ASAN contexts against pinned runner functions. It does not execute those corpus files. Baseline, final evidence.
The real launcher now selects original ordinary/integration test deadlines and per-test defaults, separate Node deadlines and script bounds, applies CI GC/integrity/cache settings and validation rules, creates per-file temp/cache storage, and routes command aliases to Home. Native child/cleanup tests and a paired Home/Bun cache control verify allocation ownership, initially empty caches and actual child execution. The initial 6/9 harness result (three allocator crashes) and Home cache failure remain preserved; both causes are fixed and retested.
Grouped selected originals: Home 71 pass / 1 fail; pinned Bun 72 pass, plus two successful Node process checks and one comment-only file with no passing cases. Seven native private files pass. Original sources/snapshots remain unchanged. The only selected original failure is the known impossible audit snapshot edge in #721, still reported as failure.
Remaining durable selection/start/completion, native JUnit retention and separate skip/TODO outcomes are split into #722. Full intended CI execution, service/vendor setup, platform/ASAN execution, default CLI ownership and independent native builds remain unfinished under #66/#709/#202. This issue remains open. Historical selected results and lost-log caveats remain in #66; no earlier interrupted aggregate is reclassified as complete.
Historical discovery and dispatch gap (corrected in the native-only migration)
A read-only audit during #702 extracted Home's exact production classification/routing/mode predicates into a standalone Zig program and ran them over the unchanged tracked manifest. In the HTML candidate based on main f491cacd7ae34d4c8f49c1fb02464699e073afa6, 4,708 classified files comprise 175 native test-runner files, 266 native script files and 4,267 bootstrap-adapter files. These are route counts, not passing-test evidence. Published main before the five-file HTML activation has five fewer native test-runner routes.
Separately, the exact getTests, isTest, isNodeTest, isClusterTest, JavaScript and hidden-path predicates extracted from scripts/runner.node.mjs at Bun pin 4982b91e3702094330f3be3883354c52b8c01323 discover 4,754 tracked paths in the mirror, with zero untracked discovered paths, under local Darwin arm64 context. This is discovery before expectations, include/exclude filters, sharding, integration setup and vendor selection, not a final CI execution count.
Compared with Home's manifest classifier:
- 78 upstream-discovered paths are absent: 73 in
js/bun/test/parallel, two TypeScript cluster scripts,js/bun/http/http-spec.ts, and two.test.mtsfiles in Node HTTP/HTTP2. - 32 Home-only entries include helper/negative fixtures, standalone N-API children and
jsonwebtoken/test-utils.js. Their coverage must be attributed through their original owning tests; indiscriminately treating them as independent successful files is incorrect. - Four current native mode differences:
test-buffer-isencoding.jsandtest-buffer-tojson.jsuse Home's test runner where upstream usesrun;test-module-isBuiltin.jsandtest-url-is-url-internal.jsuse Home's script mode where upstream usestest. - A single native recursive
testcommand is not sufficient: its scanner's suffix rules differ from the CI runner's Node-script discovery and mode selection.
Required work
- Establish a reproducible pinned upstream execution inventory, including modes, original config/startup environment, integration/vendor scope, platform applicability and original negative-fixture ownership. Preserve source bytes, workloads, deadlines and the distinction between upstream skips and implementation gaps.
- Correct Home's missing/extra discovery and native mode/context mismatches. Verify negative controls so omitted tests, zero-test runs, process failures and helper fixtures cannot produce false passing coverage.
- Migrate the remaining corpus to actual Home runtime and actual child-process execution in substantial batches. Remove semantic substitutes and fallback successes; do not preserve an adapter's historical green status at the expense of real behavior. Truthfully report newly exposed failures and split missing features into linked implementation issues.
- Remove the bootstrap corpus fallback once native execution owns the intended inventory. Audit remaining synthetic outputs/RSS and filename-driven behavior rather than merely bypassing them in a small whitelist.
- Run the intended complete upstream suite through Home and retain per-file/test results, platform skips, failures and source-integrity evidence. Native build ownership and platform completeness remain separate required work under #66.
Local audit evidence: /tmp/home-702-routing-inventory.zig, /tmp/home-702-routing-inventory.log, /tmp/home-702-routing-counts.json, /tmp/home-702-upstream-discovery.mjs, /tmp/home-702-upstream-discovery.json, /tmp/home-702-discovery-comparison.json. The audit executed only discovery/predicates; it did not execute or claim passes for the 4,754 files.
Further source inspection: the upstream Node runner passes bunfig.node-test.toml, which preloads both test/js/node/harness.ts and test/preload.ts and disables auto-install. That config was absent before this migration and is now restored from the pinned upstream Git object. Mode differences require semantic review, not a blind table update: upstream's textual node:test check also matches the module-name assertion in test-module-isBuiltin.js and a comment in test-url-is-url-internal.js. The latter file's entire test body is commented out and must receive no implemented-feature credit. Preserve actual assertions and report zero-body/zero-test cases truthfully while reconciling context.