Q1hangL/dsh-ask-guard

Q1hangL★ 1JavaScript最后同步: 2026-08-14

在 GitHub 打开

Timeout guard for ask_user_question in DeepSeek Harness: a lost or unanswered question resolves as ASK_TIMEOUT instead of hanging the turn forever

README 摘要

dsh-ask-guard Timeout guard for 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 …

在 GitHub 查看完整 README →
工具/开发ask-user-questiondeepseek-harnessdsh-plugintimeout

分类