DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
A

dsh-ask-user-timeout

Ask User Timeout

Guard plugin for DeepSeek Harness: gives ask_user_question a bounded lifetime so a question nobody renders cannot hang the loop forever

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:yeruizhi/dsh-ask-user-timeout#c1dae1f27bb9c95837a0e2bb99c856e8ccccd32a
READMECompatibilityVersions

Compatibility and provenance

Ask User Timeout is published as dsh-ask-user-timeout and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
9/15/2026

Versions

0.1.0stable
9/15/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/15/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in productivity-workflow.

Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-baseExperimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundleOptional bundle that adds Schedule, its task page, and time context to the Web compositionWeb All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / pet / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Ab Ocrdsh-ab-ocr--- description: "The out-of-tree ocr tool: recognizes a scanned PDF or image page by page, merges the pages in order only after the last one, and saves one Markdown document with the heading levels the model decided." kind: "package-reference" ---

README

dsh-ask-user-timeout

Guard plugin for DeepSeek Harness: gives the model-facing ask_user_question tool a bounded lifetime, so a question that no browser tab renders cannot hang the agent loop forever.

The bug this fixes

When the model calls ask_user_question, the tool call parks the loop until a human answers in the Web UI. The question is rendered only by the live browser composer takeover (ui-user-questions). If no tab is actively showing that session — tab closed, backgrounded overnight, mux connection dropped — nothing renders the question, and nothing ever times it out:

  • the turn stays "in progress" indefinitely (no timeout, no re-notification, no visible error);
  • the only exit is a manual stop, which surfaces a misleading ASK_ABORTED ("aborted before the user answered") even though the question was never shown to anyone.

This plugin wraps ask_user_question's execution with a cooperative deadline (the same deadline() primitive the shipped timeout-policy guard uses). When the deadline wins, the tool returns a structured, model-visible ASK_TIMEOUT result instead of hanging forever — the loop moves on and the model can re-ask or proceed.

Install

# public GitHub install (works without an npm account)
dsh plugin --profile web add git+https://github.com/yeruizhi/dsh-ask-user-timeout.git

Restart dsh web, then hard-refresh the browser. The wrapper applies to ask_user_question calls in sessions created after the plugin loads.

Configuration

keydefaultmeaning
timeoutMs600000 (10 min)how long a pending ask_user_question may wait before it times out
# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
    - id: ask-user-timeout
      name: 'dsh-ask-user-timeout'
      config:
        timeoutMs: 300000

How it works

  • Listens on tools/execute (same extension point as the official timeout-policy guard).
  • Only wraps tools named ask_user_question; everything else delegates unchanged.
  • Swaps exec.signal for the fused deadline during dispatch, restores the upstream signal afterwards.
  • On timeout, substitutes a result with error.code = ASK_TIMEOUT; a nested/upstream deadline reads as an ordinary cancel and passes through untouched.
  • Does not change the tool's schema, output shape, or semantics.

Scope

This is a guard plugin, not a fix to the Web UI rendering gap. It stops the hang; the deeper issue (a question nobody renders is never re-notified on tab return / reconnect) is tracked upstream in deepseek-ai/deepseek-harness discussion #2929.

License

MIT