Replies: 3 comments
|
It works. thanks. |
|
Also reproduced here (macOS, Node 24, source launch). @vanuska's dual-load diagnosis is right, and Regression origin
-const resolutionMode = packaged ? 'runtime' : options.resolutionMode ?? 'link'
+const resolutionMode = packaged ? 'runtime' : options.resolutionMode ?? 'runtime'With
Two copies → two Resolver-level fix
// packages/boot/app-boot/src/profile-resolution/resolver.ts
function fallbackDeclarer(declarer: string): string {
return realpathSync(declarer)
}
const routedParent = pathToFileURL(route.kind === 'fallback'
? fallbackDeclarer(route.entry.declarer)
: route.parent).href
Unlike Upstream status
|
|
Thanks for the report. |
Uh oh!
There was an error while loading. Please reload this page.
Environment
pnpm install && pnpm run build && pnpm dsh web)pnpm dsh headless)Symptom
Every turn that calls a tool fails. The UI shows the tool card as "Interrupted: interrupted", then the turn ends with:
This turn failed: Cannot read properties of undefined (reading 'prepare')(codeUNKNOWN).The failing site is
packages/core/agent-loop/src/tool-calls.ts:170:Root cause
When dsh boots from source, its packages end up loaded twice in the same process:
vendor/loader/src/config/tree.ts) resolves plugin packages through real package resolution →packages/*/lib/index.js;pathsaliases fromtsconfig.base.json→packages/*/src(source copies).TOOL_RUNTIME_SCHEDULERis declared as a plainSymbol('@deepseek-ai/dsh-tools.scheduler'). TheToolRuntimeinstance is constructed by one module copy and the agent-loop reads the scheduler with the other copy's symbol, soctx.tools[TOOL_RUNTIME_SCHEDULER]isundefined.Fix
Registering the symbol in the global symbol registry makes both copies agree:
Verified locally: with this one-line change, headless runs execute tools and complete normally.
All reactions