mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-13 18:32:12 +03:00
resolveWorkerPath() had two return branches: a process.cwd()-anchored primary path and an import.meta.url-relative fallback. Turbopack's dev-mode static worker-chunk detector partially resolves the new URL(literal, import.meta.url) construct in the fallback branch independent of which branch actually runs at runtime, producing an inconsistent module graph node. turbo-tasks then panics on startup with either 'inner_of_upper_lost_followers...' (aggregation_update.rs) or 'there must be a path to a root...' (module_graph/mod.rs), and Restart=on-failure just silently retries forever. git bisect (443c96d28 good ..b7a0c5413bad, 418 commits, 9 steps) isolated this to657d3a484(#11732). Confirmed by isolation probe: removing the Worker construct, or inlining a single non-branching new Worker(new URL(literal, import.meta.url)) at the call site, both avoid the panic; only the two-branch resolver does not. The import.meta.url fallback was also silently dead in production: the standalone bundle (webpack) freezes import.meta.url to the build-machine path -- the same app-wide gotcha already documented on GATE_DEP_REL in llmlingua/worker.ts's fail-open probe. Dropping that branch fixes both problems with the same change: process.cwd() alone is correct in every real runtime layout this app uses (dev via run-next.mjs, and the production standalone bundle, where outputFileTracingIncludes already copies the worker script preserving its process.cwd()-relative path). Verified live: - Dev (Turbopack): npm run dev reaches '[Next] dev server listening on ...' cleanly; previously panicked and looped under Restart=on-failure. - Standalone build: npm run build produced a clean webpack compile and a working .build/next/standalone/open-sse/lib/deepseek-pow-worker.mjs at the traced path; running the real solveDeepSeekPowAsync from cwd = the standalone dir spawned the worker and returned the correct nonce for a fabricated DeepSeekHashV1 challenge. - node --test tests/unit/deepseek-pow-js-only.test.ts tests/unit/deepseek-web.test.ts: 44/44 passing. - eslint and tsc --noEmit: clean on the touched file (tsc's remaining errors are pre-existing, in unrelated test files).