Replies: 3 comments
|
Verified the root cause at rc.8 ( 1. Root cause confirmed, and Node 24 is officially supported. 2. Four more entry scripts share the exact guard (repo-wide sweep found these are the only
All are invoked through the same 3. This makes the silent-skip class worse than the build case. A skipped build fails loudly at runtime ( 4. Suggested fix shape. Your import { fileURLToPath } from 'node:url'
export const isEntryModule = (): boolean =>
import.meta.main ?? (process.argv[1] !== undefined && resolve(process.argv[1]) === fileURLToPath(import.meta.url))and apply it to all five entries in the same PR. The regression-test shape you added ( One deliberate non-goal: making the guard fail loudly when the fallback also fails would break importing these modules (e.g. Fix stands as PR-ready; happy to co-verify the sweep if you'd like. |
|
I traced this against the rc.8 source boundary and turned it into an operator-facing recovery path. The key diagnostic addition is to treat exit status as insufficient evidence: a complete root build must also print The resulting failure chain is: direct I also documented the safe repair contract: preserve import-without-side-effects, prove direct execution on Node 22 and 24, make invalid direct arguments fail nonzero, and require the artifact record plus Web boot as acceptance gates. Source-backed runbook and visual trace: https://sandbaseai.github.io/deepseek-harness-handbook/node24-tsx-silent-build.html |
|
I prepared a complete patch for this issue on a public fork, including the five-script sweep identified by @argszero. Root cause and impactUnder the affected Node 24 + The same failure mode affected all five direct TypeScript entrypoints in
For PatchThe patch adds a shared
All five scripts use this helper. Coverage includes:
Patch links
External pull requests are currently disabled by the repository, so I am posting the ready-to-cherry-pick branch here. Local verificationPassed on Node
I could not complete the focused Vitest run locally because installing this checkout’s dependencies repeatedly timed out against the npm registry. The test files are included for CI/maintainer execution. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
On 2026-08-20, with Node v24.0.0 and pnpm 11.7.0, starting the web profile failed with
loader fibers failed.The loader reported that
@deepseek-ai/dsh-session-referencecould not importlib/typert.host.js, and that four client bundles were missing:packages/client/ui-renderer/lib/client.jspackages/client/ui-brand-official/lib/client.jspackages/client/ui-attachment/lib/client.jspackages/client/ui-reference/lib/client.jsRoot cause
pnpm run buildreturned exit code 0 but did no work.scripts/build.tsended with:In the Node v24.0.0 + tsx execution path,
import.meta.mainisundefined, somain()was never called. The build therefore created neither the host/client artifacts nor.dsh-build/client-build-environment.json, while still appearing successful to the caller.Fix
Keep the native
import.meta.maincheck and fall back to comparing the launched script path with the current module path:A regression test was added in
scripts/build.spec.ts; it launches the build script through the tsx ESM loader and verifies that invalid arguments produce an error instead of a silent successful exit.Verification
pnpm exec vitest run scripts/build.spec.ts— 1 test passedpnpm run build— exit code 0; recorded 200 client artifactslib/typert.host.js, client bundles, and.dsh-build/client-build-environment.jsonwere generatedpnpm dsh --profile web --help— exit code 0; web profile booted withoutloader fibers failedThe fix is currently verified in the local checkout and has not yet been committed or merged.
All reactions