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
S

@local/dsh-session-auto-resume

Session Auto Resume

Automatically resumes DeepSeek Harness sessions interrupted by app closure: active-goal sessions re-arm and continue their round budget at next launch; mid-turn non-goal sessions are detected and logged for one-click resume.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:tmt-homelab/dsh-session-auto-resume#80faa90da1e072ecde0134c62809f102279f4885
READMECompatibilityVersions

Compatibility and provenance

Session Auto Resume is published as @local/dsh-session-auto-resume and currently resolves to version 1.0.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
10/19/2026

Versions

1.0.0stable
10/19/2026

Related plugins

Loading related plugins…

Latest
1.0.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
10/19/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 compositionClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / pet / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。

README

dsh-session-auto-resume

A DeepSeek Harness plugin that automatically resumes agent sessions interrupted by app closure. When the DSH host relaunches, sessions that were mid-work at closure are detected from persisted state and recovered without human action:

  • Sessions with an active goal are explicitly resumed and the goal re-armed — after which the bundled goal-round-driver continues the round budget automatically. (The driver deliberately "never revives work on its own"; this plugin performs the explicit resume the driver requires.)
  • Mid-turn sessions without a goal are detected and logged with a ready-to-run resume command — surfaced, never auto-worked.
  • Cleanly-ended, stale (>48 h), live, and subagent-owned sessions are skipped. Per-boot resume cap. Fail-closed on goal transitions. Never-throw activation.

Why

The desktop host has quit-time inspection of active work but no startup recovery path: after any closure (crash, SIGTERM, deliberate quit/reload), interrupted sessions stay interrupted until a human notices. This plugin closes that gap entirely outside the app bundle, so it survives app updates.

Live verification

Tested against a real closure-then-relaunch cycle (operator-approved SIGTERM of the running host; app relaunched):

  • An unscripted interrupted goal session (not planted, not known to the operator) was auto-resumed and its goal re-armed at boot; the round driver then continued the session.
  • A session holding an active goal continued on an automatic continuation round with no human message.
  • Round budgets advanced correctly; a live session was correctly skipped; 489 subagent-owned sessions were correctly excluded in one pass.

verify-d1.mjs (included) turns any future closure into a one-command verdict: PASS (exit 0) / FAIL (exit 1, names the broken check + evidence tail) / VOID (exit 2, no closure recorded after the plugin armed). Its own fixture selftest (verify-d1.test.mjs) exercises every verdict path against synthetic evidence trees.

Design notes

  • Policy is explicit and minimal: only durable goal phase active auto-resumes; paused/blocked goals are deliberate human states and are never re-armed; non-goal sessions are surfaced only. The plugin's installation is the one-time authorization.
  • Resume mirrors the harness's own resume flow (agents.resume({resumeSessionId, agentOptions, setup}) + goals.resume(agent, {id, revision})), including binding the default model — a resume without a model binding produces turns failing with prompt variable "{{model}}" has no value (the agent loop binds that variable from agent.options). This plugin binds it and logs a loud resume-no-model line if it cannot.
  • It never hand-appends to session logs. Session-log append contracts (headerSeq must reference an earlier request/header) make cold-log markers unsafe; detection is recorded in the plugin's own log instead.
  • Fail-closed everywhere: goal resume throws on exhausted budgets or invalid phase transitions (caught, logged, never retried); the boot pass, classification, logging, and resume are each guarded so a plugin failure cannot block host boot.

Install (as a local profile plugin)

  1. Copy this package to ~/.dsh/plugins/dsh-session-auto-resume.

  2. Link it into your profile's dependencies and add it to the profile's dsh.profile.bundles list:

    "dependencies": { "@local/dsh-session-auto-resume": "link:/Users/you/.dsh/plugins/dsh-session-auto-resume" },
    "dsh": { "profile": { "bundles": [ "@local/dsh-session-auto-resume" ] } }
    
  3. The package's own cordis.patch.yml carries the required insert row (a bundles-list entry alone is silently skipped). It ships with dryRun: true — the first boot logs would-resume decisions without acting; verify them against your live sessions, then set dryRun: false.

  4. Restart the app. Evidence lands in ~/.dsh/logs/session-auto-resume.log (ARMED on every activation, one pass-done per boot).

Test

node selftest.mjs        # classification truth table, fake-ctx passes, mutation checks
node verify-d1.test.mjs  # proves verify-d1 on every verdict path (synthetic fixtures)

Status

  • Selftest: all legs green under the app runtime (ELECTRON_RUN_AS_NODE).
  • Live fire: one real closure-recovery verified end to end; one defect found and fixed during it (the model binding above).
  • Known limitation: sessions are matched against the most recent 30 persisted sessions by creation time (config scanLimit), and the mechanism mounts at boot only (no hot reload of plugin-file changes).

Not affiliated with DeepSeek. MIT licensed. Filed upstream as a discussion — this repo is the reference implementation.