Dsh Ask Guard
Q1hangL/dsh-ask-guard · skills
Timeout guard for askuserquestion in DeepSeek Harness: a lost or unanswered question resolves as ASKTIMEOUT instead of hanging the turn forever.
★ 3GitHub stars
1Forks
2026-08-25Last updated
JavaScriptLanguage
MITLicense
Key features
- 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
Install command
dsh plugin --profile web add github:Q1hangL/dsh-ask-guard