精选
为什么选中它
待人工精选——以下事实来自源码仓库。
它能做什么
Timeout guard for ask_user_question in DeepSeek Harness: a lost or unanswered question resolves as ASK_TIMEOUT instead of hanging the turn forever
适合谁
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
风险提示
- 未发现明显风险信号;安装前仍建议查看源码。
Timeout guard for ask_user_question in DeepSeek Harness: a lost or unanswered question resolves as ASK_TIMEOUT instead of hanging the turn forever
待人工精选——以下事实来自源码仓库。
Timeout guard for ask_user_question in DeepSeek Harness: a lost or unanswered question resolves as ASK_TIMEOUT instead of hanging the turn forever
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
dsh plugin --profile web add github:Q1hangL/dsh-ask-guard 作者没有声明支持的平台。
ask_user_question in DeepSeek Harness: a lost or unanswered question resolves as a structured ASK_TIMEOUT instead of hanging the turn forever. ## The problem The question card is delivered to the browser over a single push on the mux WebSocket. When the page is backgrounded, the laptop sleeps, or the connection dies half-open, the frame is lost, the client never notices (no heartbeat), and the tool waits forever — observed hangs of 6+ hours, recoverable only by pressing Stop. Upstream report: deepseek-ai/deepseek-harness#1554. ## What this plugin does It registers a tools/execute wrapper that arms a cooperative deadline on every ask_user_question dispatch (the same mechanism as the official dsh-tool-call-timeout-policy, which only enforces budgets declared by tool plugins — ask_user_question declares none). - When the deadline wins, the waiting provider's abort handler fires: the web provider broadcasts question/resolved cancelled, so the stuck composer (if any) is cleaned up. - The wrapper then replaces the normalized abort with a structured error result (code: ASK_TIMEOUT, name: AskTimeoutError) with a model-facing message, so the agent can end the turn gracefully instead of blocking. - All other tools pass through untouched. The timeout is cooperative (@deepseek-ai/dsh-timeout notifies via exec.signal; the web user-questions provider honors the signal, so it terminates for real). ## Install bash dsh plugin --profile web add dsh-ask-guard Restart dsh web. The plugin is a dsh.bundle package, so its patch row is added to the profile composition automatically on reconcile. Install from a git checkout instead: bash dsh plugin --profile web add github:Q1hangL/dsh-ask-guard ## Config | Field | Default | Meaning | |---|---|---| | timeoutMs | 300000 | Deadline for one ask_user_question call (ms). | Tune it in the profile's cordis.patch.yml: yaml - id: ask-guard config: timeoutMs: 600000 ## Recovery note A page refresh (F5) re-syncs pending questions — the host replays unanswered questions to a reconnecting client. With this plugin, even without a refresh the turn no longer hangs forever. ## Test bash npm install node --test ## License MIT不看 Star,人工一条条挑的。
把 DSH 的 settings.yaml 做成可视化看板:所有已注册的 settings namespace——包括官方界面从未覆盖的第三方插件配置——都渲染成可编辑表单。项目还早,但方向很对:告别手改 YAML。
给 DSH 的 DIY 轨迹可视化:把 agent 的计划与执行画成图,不用翻原始日志也能看清它在干嘛。项目还早,但补上了「一眼看懂 agent 在做什么」这个真实缺口。
从 Claude Code / Codex 把活派给 DSH:在宿主内拉起带分级预设的 DSH agent 会话,看原生子代理进度,还能借它的多模态桥给纯文本的 DSH 补上视觉和生图。编排型插件,把 DSH 变成其他编码 agent 的后端。