Follow-up to #66, discovered while verifying the adjacent bytecode coverage for #491 against Bun pin 4982b91e3702094330f3be3883354c52b8c01323.
Reproduction
cat >/tmp/home-bytecode-entry.ts <<'JS'
console.log("hello");
JS
./zig-out/bin/home-debug build /tmp/home-bytecode-entry.ts \
--compile --bytecode --format=cjs --outfile=/tmp/home-bytecode-entry
BUN_JSC_verboseDiskCache=1 /tmp/home-bytecode-entryHome prints:
[Disk Cache] Cache miss for sourceCode
hello
[Disk Cache] Cache miss for sourceCodeThe pinned Bun release prints a cache hit for the embedded entry bytecode under the same reproduction. This is not specific to deferred imports: a one-line entry has the same miss. The compiled executable still produces the correct program output.
Likely boundary
Home already generates bytecode with the compile-time virtual module URL, and ResolvedSource exposes bytecode_origin_path, but the native standalone_graph/StandaloneModuleGraph.zig surface remains partial and does not preserve the bytecode origin path through the embedded graph. Pinned Bun stores that exact path beside each bytecode payload and returns it through ResolvedSource so JSC's cache key matches at runtime.
Port the standalone graph field, serialization/deserialization, loader handoff, and cache-hit coverage together. Keep the generic compiled-executable fix separate from #491's deferred phase metadata; #491's native runtime transpiler-cache cold/warm path is independently covered.