Sessions & Messages

dsh-session-pause

watericetangcw/dsh-session-pause · ★ 3

watericetangcw

A Cordis plugin for DeepSeek Harness that suspends the entire conversation state and resumes it after restart.

License
MIT
Added
2026-08-16
Maintenance
active
Install kind
github
Manifest details
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:watericetangcw/dsh-session-pause

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. dsh-session-pause
  2. ✨ Features
  3. ⏸ One-click pause
  4. 💾 Full persistence
  5. 🔄 Survives restarts
  6. 🛑 Three small things while draining
  7. 🚀 Quick install
  8. 🧪 Try it now
  9. 📖 Usage
  10. 🔗 Links
  11. 📄 License

dsh-session-pause

Pause anything in DeepSeek Harness, then pick up right where you left off

License: MIT DeepSeek Harness

简体中文 · English

Install once, use forever: click ⏸ Pause next to the send button, let the current turn finish gracefully (answer written, all tools run to completion), and the whole session is persisted — close or even restart DSH, come back and click ▶ Resume to continue from the exact pause point, as if nothing ever stopped. No DSH code is modified — the entire feature is a drop-in profile bundle.

✨ Features

⏸ One-click pause

A pause button appears right to the left of the send/stop button. Clicking it never interrupts an in-flight request; once the current step reaches its boundary, the turn closes as paused and everything is flushed to disk — the button then becomes a Resume button.

💾 Full persistence

Pausing = persisting everything: messages, chunks, tool calls and results, and request context are all written into the existing session JSONL — no new storage format is introduced. So as long as DSH is around, you can always continue.

🔄 Survives restarts

When the last turn in the session log ends paused, reopening the session after a DSH restart puts the agent straight back into the paused state, and the Resume button just works — shut DSH down or even move machines, and you lose nothing.

🛑 Three small things while draining

Action Effect
Hover the spinning button The icon briefly swaps to ✕, then back when you leave
Click ✕ (cancel pause) Cancels the pause request; later runs go back to normal
Click stop Does not cancel the pause — it only aborts the current turn, and the spinner keeps waiting for the next pausable moment

While paused the agent enters a paused state, so goal auto-rounds naturally never fire; they resume once you continue.

🚀 Quick install

One command:

dsh plugin --profile web add github:watericetangcw/dsh-session-pause

Then restart dsh web and refresh the browser page once.

The bundle ships no installable @deepseek-ai/* dependencies on purpose: at runtime its host half resolves those packages from the DSH installation itself (the shared module instances), so the forked agent loop stays identity-compatible with the deployment's presets, scope, and session services. Install it through dsh plugin add (as above) — do not npm install it as a plain library into a profile.

dsh plugin --profile web remove dsh-session-pause

Restart dsh web afterwards to restore the stock agent-loop behavior.

🧪 Try it now

Install, then give DSH a long tool-using task and let it run:

① Pause and resume

Click ⏸ to the left of the send button → wait for the spinner to finish and the button to turn into ▶ → click ▶. The model continues the original task from the persisted tool results — semantically identical to never having paused.

② Resume after a restart

Pause, then restart dsh web and reopen the same session → it is already paused; click ▶ to continue from the pause point.

③ Queued a message while paused?

New messages you send while paused stay in the session and get claimed together on resume — nothing is lost.

📖 Usage

  • Pause: click ⏸ while running (or type /pause); you can also arm it while idle so the next run pauses at its first step boundary.
  • Cancel pause: hover the spinner → click ✕ (or /pause-cancel).
  • Resume: click ▶ when paused (or /resume).
  • Commands: /pause, /pause-cancel, and /resume are all available from the slash menu.

📄 License

MIT © 2026 WateRice