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-auto-reconnect

Auto Reconnect

Client-only auto-reconnect for the DSH web client: wakes the connection controller on visibility/focus/interaction events and on terminal disconnects — the blind spots of @deepseek-ai/dsh-client-connection

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

npx -y @deepseek-ai/dsh plugin --profile web add github:tqcq/dsh-auto-reconnect#1e50f9918d447fd8775e44f00588596d18f6d4a8
READMECompatibilityVersions

Compatibility and provenance

Auto Reconnect is published as dsh-auto-reconnect and currently resolves to version 0.2.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
9/11/2026

Versions

0.2.1stable
9/11/2026

Related plugins

Loading related plugins…

Latest
0.2.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/11/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 integrations-communication.

Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-baseRemote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rRemote Bridge@linxin666/dsh-remote-bridgeDSH remote bridge: the host half serves protocol v1 over one exact /ios/v1 WebSocket route — session roster, history baseline, prompting, live turn increments with tool activity, interrupt, and in-process agent approval — to a device paired by a one-shot Im@xmanrui/dsh-im把微信、飞书、企微、钉钉、QQ、Telegram、WhatsApp、Slack、Discord、Matrix接入DSH。 Connect Telegram, WhatsApp, Slack, Discord, Matrix, WeChat, Feishu, WeCom, DingTalk, and QQ to DSH.

README

dsh-auto-reconnect

English | 中文

Auto-reconnect for the DeepSeek Harness (DSH) web client. The official connection controller has backoff reconnect built in, but it sleeps through two real-world scenarios — this plugin wakes it. Client-only, zero build, no official package touched.

Install / Uninstall

dsh plugin --profile web add github:tqcq/dsh-auto-reconnect

Then restart dsh-web — adding or removing plugins always needs a restart; a browser refresh alone is not enough.

Upgrade (re-running add won't move the resolved commit; update re-resolves):

dsh plugin --profile web update dsh-auto-reconnect

Uninstall:

dsh plugin --profile web remove dsh-auto-reconnect

Runtime tweak, no reinstall needed (then reload the page):

localStorage["dsh-auto-reconnect"] = JSON.stringify({ minIntervalMs: 3000, retryDelayMs: 3000, maxAutoRetries: 20, log: true });

Two blind spots in the official controller (source-audited)

Audited against the actually-served @deepseek-ai/dsh-client-connection 0.1.2-rc.1:

  1. Terminal disconnected sleeps forever. Once the official 500ms→10s backoff tops out, the controller enters a terminal state and only wakes on the browser online event or a manual tap. Phone sleep/wake keeps navigator.onLine === true the whole time, so online never fires — every wake-up needs a manual tap.
  2. Zombie connected. The official client has no visibilitychange / focus listener and no heartbeat. A silently dropped TCP leaves the WebSocket in OPEN while the state still reports connected.

What this plugin does

Listens to visibilitychange(→visible), focus, pointerdown, keydown, pageshow(persisted), and subscribes to the connection state store:

  • Event wakes: call connection.reconnect() only when state ≠ connected (resets backoff, retries immediately) — never interrupts a healthy connection.
  • bfcache restore (persisted): sockets are dead by definition, reconnect unconditionally.
  • Transition into terminal disconnected: delayed auto-retry (default 3s), budgeted to 20 consecutive attempts, reset on connected. Covers "page already visible and focused, no browser event will ever fire again" (2026-09-11 field report: a hard refresh after a host restart landed in terminal state, still needed a manual tap).

Every trigger logs with a [dsh-auto-reconnect] prefix (DevTools console forensics), throttled to 3s by default.

Compatibility

  • Field-verified on host @deepseek-ai/dsh 0.1.5-rc.2 (boot activation assertions all green).
  • Client contract audited against dsh-client-connection 0.1.2-rc.1 source.
  • Shape mismatch on ctx.connection → warn and stay idle, never breaks the page: graceful degradation on API drift.

Limitations

The general form of zombie connected (background tab NAT-dropped, no OS sleep) cannot be detected client-side: the RPC unary channel is separate HTTP, so a successful probe does not prove the WebSocket is alive. The real fix is a host-side heartbeat + dead-connection sweep (prior art: the deprecated enterhalf/dsh-web-network-optimizer) — a separate plugin if ever needed.

Tests

node tests/client_test.js   # 14 groups, vm-sandboxed DOM/connection stubs, no browser

Forking notes

  • The in-repo cordis.patch.yml must stay []: a comment-only YAML file parses to null and kills profile boot.
  • Client-code-only changes need just a browser hard refresh, no dsh-web restart.

License: MIT (see LICENSE).