DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-autorestart

Autorestart

DeepSeek Harness 插件:支持感知空闲状态的重启并恢复会话;每次重启前创建快照,如果主机未能恢复运行则自动还原;支持倒计时关机;适用于 Windows 桌面客户端和托管的 dsh web(Windows、W

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-autorestart@0.9.1
README兼容性版本

兼容性与来源证明

Autorestart 以 dsh-autorestart 发布,当前版本为 0.9.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/11/5

版本

0.9.1stable
2026/11/4
0.9.0stable
2026/11/3
0.8.6stable
2026/11/3
查看其余 20 个版本收起版本
0.8.5stable
2026/10/30
0.8.4stable
2026/10/29
0.8.3stable
2026/10/29
0.8.2stable
2026/10/29
0.8.1stable
2026/10/29
0.8.0stable
2026/10/29
0.7.0stable
2026/10/29
0.6.2stable
2026/10/28
0.6.1stable
2026/10/28
0.6.0stable
2026/10/28
0.5.0stable
2026/10/27
0.3.6stable
2026/10/26
0.3.5stable
2026/10/25
0.3.4stable
2026/10/25
0.3.3stable
2026/10/24
0.3.2stable
2026/10/24
0.3.1stable
2026/10/24
0.3.0stable
2026/10/24
0.2.1stable
2026/10/22
最新版
0.9.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
2.3 MB
文件数
51
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 1
周下载
2,689
安全扫描
✓ v0.9.1 扫描通过
最近提交
2026/11/3
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
0.2.0
stable
2026/10/22

README

dsh-autorestart

Restart DeepSeek Harness without losing the work that is currently running.

Chinese version: README.zh.md

Current version: 0.9.1

What it does

Three small things, all around restarting.

1. The restart is queued. An agent asks for a restart; the plugin does not cut off the conversations that are still running. It waits until every one of them is idle, restarts the host, and picks the interrupted work back up — the sessions resume and a goal is re-armed. When several conversations ask at once the requests are merged into one restart, and every requester is woken afterwards. A goal-carrying session cannot block the restart forever: its goal is disarmed before the restart (the running round still finishes) and re-armed after it.

2. It backs up before each restart. The configuration and the local link: plugin directories are saved under ~/.dsh/storages/dsh-autorestart/backups/. At most maxBackups copies are kept (default 2, range 2–10); old and incomplete ones are pruned. A snapshot that cannot be removed (for example because a file inside it is locked) is reported in backupHygiene.error rather than silently kept, so the count can briefly exceed the limit.

3. It clears the login cookies. Every launch leaves a dsh-auth-* entry behind; they pile up until the request header overflows (~16 KB), the server answers 431, and the client can only say Web authentication failed. The plugin clears those stale credentials before each restart and records the outcome in last-cookie-clear.json.

There is also a countdown shutdown: a moon button at the bottom of the sidebar waits for every conversation to finish, counts down on screen, and powers the machine off.

What it does not do

  • It does not watch the host and does not decide whether a restart came back.
  • It does not restore anything on its own. The backup is never applied automatically; it is there for you to inspect or roll back by hand. The one exception is the start-at-login supervisor, if you installed it: that separate process rolls the last snapshot back when the host refuses to start.
  • There is nothing left to run by hand. If the host will not start, use its own crash dialog or reinstall the plugin.

Tools for the agent

ToolWhat it does
continuum_restartQueue a graceful restart (waits for every conversation to be idle)
continuum_statusPhase, generation, queued requests, which sessions are blocking
continuum_cancel_restartWithdraw a queued request (scope: "mine" or "all")
continuum_park_goalDisarm a goal so a queued restart can proceed
continuum_recover_nowRetry post-restart recovery immediately
continuum_handoffHand an over-limit session off to a fresh one
continuum_supervisorInspect or install the self-starting supervisor

Configuration

The settings page writes these; the defaults are the ones in the code.

KeyDefaultMeaning
restartModeappapp = ask the desktop client to relaunch itself; command = run your own restart command
restartCommand''The command used when restartMode is command; supports the {pid}, {ppid} and {app} placeholders
settleMs2000How long the host must stay quiet before the restart may start
restartGraceMs0Extra wait after the last conversation went idle, before the host is really restarted — a dropdown: 0 / 5 / 10 / 20 / 30 / 60 seconds. 0 = no extra wait
queuedGraceMs60000How long a queued inbox message may sit before it stops blocking the restart. A running conversation always blocks
forceRestartWhenBusyfalseInterrupt a running conversation instead of waiting. The default never interrupts a session
deferPollMs3000Poll interval while waiting for the conversations to go idle
relaunchDelaySeconds2How long the detached helper waits before it kills the app
backupOnRestarttrueTake a snapshot before every restart
backupIncludePluginstrueInclude the locally linked plugins in that snapshot (~117 MB here, ~3 s). false keeps only the configuration files
maxBackups2How many snapshots to keep (2–10)
restartCommandTimeoutMs30000How long the restart command may run before the plugin stops waiting for it

The settings page

Four groups, all reachable from the settings page:

GroupWhat is in it
Restart settingsThe wait before the restart, the two backup switches, the backup limit, and the list of the snapshots — each with its time and a button that rolls back to that one copy
Shutdown settingsThe countdown of the graceful shutdown
Start at loginHow "start at login" works on this machine, with copyable commands. The plugin never changes your system configuration for you
Something is wrongThe diagnostics and a Report a problem button that copies them and opens a pre-filled GitHub issue. The diagnostics carry no access token and no secrets

Where it writes

PathWhat
~/.dsh/storages/dsh-autorestart/state.jsonBoot generation, phase, per-session restart state
~/.dsh/storages/dsh-autorestart/backups/<stamp>/config/ + node_modules-link/ of one snapshot
~/.dsh/storages/dsh-autorestart/last-cookie-clear.jsonHow many credentials the last clear removed
~/.dsh/storages/dsh-autorestart/access.jsonThe loopback port and token the plugin listens on

About that backup

It holds the configuration files (package.json, cordis.patch.yml, pnpm-lock.yaml) and the local link: plugin directories. Plugins installed from npm are not in it — they can be reinstalled from package.json + pnpm-lock.yaml. So it is good for "what did this look like before" and "put this one plugin version back", not a one-click reinstall.

Platforms

PlatformStatus
Windows desktop client (restartMode: app)Verified on the real machine
Hosted dsh web on WSL with systemd (restartMode: command)Verified on a real instance
Hosted dsh web on WindowsNot verified
WSL without systemd, native LinuxNot verified

macOS, a remote SSH session without a graphical session and containers are out of scope — not tested, and not supported. The per-capability matrix is in docs/platform-matrix.md.

Install

From npm:

dsh plugin install dsh-autorestart

From source:

git clone https://github.com/Eason-22/dsh-autorestart.git
cd dsh-autorestart
dsh plugin --profile desktop add /absolute/path/to/dsh-autorestart

Inside DSH the equivalent is the plugin_manager tool:

plugin_manager install_bundle  target = <absolute path to the package>

The plugin needs no configuration to work: the defaults queue restarts, take a snapshot before each one, and clear the stale cookies.

Uninstall

Remove the dsh-autorestart row from your profile's bundle list — in the Plugin Manager of the UI, or with the dsh plugin CLI:

dsh plugin remove dsh-autorestart

The snapshots under ~/.dsh/storages/dsh-autorestart/backups/ are yours; they are not deleted for you.

Tests

The plugin ships its own test suite in plugins/dsh-autorestart/test/. Run it with the bundled Node:

node --test plugins/dsh-autorestart/test

All 939 test cases pass (939 passed, 0 failed, 0 skipped).

License

MIT

showSleepButtontrueShow the countdown-shutdown button
sleepCountdownSeconds20Countdown length before powering off — a dropdown: 0 / 10 / 20 / 30 / 60 seconds
sleepCommand''Override the power-off command
resumeOnBoottrueResume interrupted sessions after a restart
recoveryDelayMs6000Wait before the first resume attempt
maxResumeAttempts2Resume attempts per session, counted across boots
maxSessions4How many sessions are resumed per boot
continuationText''Override the continuation prompt text
stateFile''Path of the checkpoint file. Empty = <DSH_HOME>/storages/dsh-autorestart/state.json
autoReloadPagetrueReload the web page after a restart
blockManualRestarttrueRefuse an agent that tries to kill or relaunch DSH by hand, and point it at continuum_restart instead
healthPath/__dsh_autorestart/healthHealth check route: the boot id, the pid, the phase and the self-check flags
enabledtrueTurns the whole plugin off
watchEnabledtrueThe plugin watch: after the host settles, compare what the loaded plugins provide with the previous reading and report what is no longer there. A report, not an automatic repair
watchDelayMs8000How long the watch waits after boot before it reads
deferSoftMs, deferHardMs, deferPolicy300000 / 900000 / autoDeprecated — read but completely ignored. A pending restart has no deadline