Replies: 1 comment
|
The scheduler is implemented — your grep pattern missed it, and that is the whole conclusion that needs correcting. Everything else you wrote is right and the fix list at the end of this reply is short. The implementation is a computed-property class field
// packages/core/tools/src/index.ts:797-803
/** Internal staged view consumed by `dsh-agent-loop`'s parallel scheduler. */
readonly [TOOL_RUNTIME_SCHEDULER]: ToolRuntimeScheduler = {
prepare: exec => this.prepareScheduledExecution(exec),
dispatch: exec => this.dispatchScheduledExecution(exec),
finalize: (exec, result) => this.finalizeScheduledExecution(exec, result),
finish: (exec, result) => this.finishScheduledExecution(exec, result),
}A search for
Why
|
Uh oh!
There was an error while loading. Please reload this page.
Environment
packageManagerin root package.json)dsh-v0.1.6-alpha.2(tagdsh-v0.1.6-alpha.2, commitddefc45fbc)git clone→pnpm install→pnpm run build)web(viapnpm dsh web)Steps to reproduce
dsh-v0.1.6-alpha.2pnpm installpnpm run buildpnpm dsh web— startup succeeds, zero failed pluginsGlobfile search)Actual behavior
Every tool call fails with two cascading errors:
The UI shows "本轮运行失败" (turn failed) with
UNKNOWN/INVALID_REQUESTstatus tags.Root cause analysis
The failure originates at:
Grepping the whole repo,
TOOL_RUNTIME_SCHEDULERappears only as a declaration — there is no implementation assigned to it anywhere:So
ctx.tools[TOOL_RUNTIME_SCHEDULER]resolves toundefined, and.prepare(...)throws immediately.Because the tool never executes, no tool result is produced. DeepSeek's API strictly requires each
assistant.tool_callsentry to be followed by a matchingtoolmessage, so the next request is rejected with400 INVALID_REQUEST / tool calls need immediate results. The second error is a consequence of the first, not an independent issue.Suspected missing provider (needs maintainer confirmation)
packages/ptc-runtime/exists in the tree and is the most likely provider of this scheduler. However:ptc-runtimedoes not appear in thepackage.jsonof any of the six bundles:packages/bundle/{base, web-app, headless, acp-app, sdk-app, sdk-minimal}.I am not certain that
ptc-runtimeis the intended provider — this is my inference from the package name. If another package is supposed to registerTOOL_RUNTIME_SCHEDULER, please correct me.Important: startup is clean
This is not a dependency or build problem. I verified:
pnpm run buildcompletes successfully (alllib/produced)pnpm dsh webstarts with zero failed plugins (no newFailed pluginsentry in.dsh/logs/startup-*.log)The failure happens at runtime, during tool dispatch, not at plugin activation.
Things already ruled out
node_modules— fully removed (\\?\prefix to bypass MAX_PATH) and reinstalled from scratch; also cleared the pnpm storepnpm run build(tsx scripts/build.ts); note thatpackages/*/*have nobuildscript, sopnpm -r buildis a no-op for themEADDRINUSEon 3080) — killed stale node processes@deepseek-ai/node-addon-landlock-run(landlock) is Linux-only, butsandbox-localfailing is non-blocking and unrelated to this stackImpact
Every tool call fails, so the agent cannot do anything requiring tools on Windows. The session transcript also becomes permanently poisoned once an unpaired
tool_callis written: all subsequent messages in that session return the same 400, and a restart does not repair it (the broken transcript is reloaded as-is).Questions for maintainers
TOOL_RUNTIME_SCHEDULERimplementation?ptc-runtimebe included in theweb/headlessbundles? If so, its absence looks like a packaging omission.webprofile unsupported on win32 at this version?undefineddereference?Additional context
Happy to provide the full startup diagnostic log (

~/.dsh/logs/startup-*.log) after redacting credentials, plus a screenshot of the failing turn.All reactions