fix(workers): replaced file-URL import pattern with compiled-binary-aware spawn

- Replaced `with { type: "file" }` worker imports with `isCompiledBinary()` hybrid: literal string for `--compile` static analysis, `new URL(import.meta.url)` for dev portability.
- Added worker entrypoints as explicit `--compile` args in `build-binary.ts` so Bun emits them into bunfs.
- Added `smokeTestSyncWorker` and `omp --smoke-test` to catch silent worker-load failures in compiled binaries (fixes #1011, #1027).
- Added `isCompiledBinary()` utility to `@oh-my-pi/pi-utils` detecting bunfs path markers.
This commit is contained in:
can1357
2026-05-12 16:39:42 +02:00
parent ab4416f5bb
commit 1cb451a071
11 changed files with 179 additions and 41 deletions
@@ -40,6 +40,17 @@ async function main(): Promise<void> {
"--root",
"../..",
"./src/cli.ts",
// Worker entrypoints. Bun's `--compile` discovers the literal in
// `new Worker("…", …)` at each spawn site, but only actually
// emits the worker into the bunfs root when it is listed here as
// an explicit additional entry. Paths are relative to this
// script's cwd (packages/coding-agent) and the `--root` above
// (../..) makes them appear inside the binary at
// `/$bunfs/root/packages/<pkg>/src/<worker>.js`, which is
// exactly what the literals at the spawn sites resolve to.
"../stats/src/sync-worker.ts",
"./src/tools/browser/tab-worker-entry.ts",
"./src/eval/js/worker-entry.ts",
"--outfile",
"dist/omp",
],