Introduction¶
When using DeepSeek Harness (DSH), if a gateway restart is performed, other ongoing conversations stop. The history is preserved, but the work is interrupted. You need to locate each conversation and manually type “continue” to proceed.
The dsh-keep-going plugin uses the conversation history saved by DSH to automatically resume unfinished work after a gateway restart. It does not require opening each conversation again in a browser, nor is it limited to restarts requested through the plugin.
What Is This¶
This is a DSH workflow plugin maintained by Carrick-K7 (MIT license). Its core value is: A gateway restart should not leave all unfinished conversations waiting.
Core Features¶
The plugin provides the following capabilities:
- Resuming interrupted sessions and history: Uses persisted session records to restore unfinished work.
- Keeping active goals running: Automatically continues goals that were executing after a restart.
- Retaining questions waiting for user answers: Conversations awaiting user replies remain in a waiting state after a restart, without automatically simulating answers.
- Running only once: The plugin runs once after each process restart and then enters a dormant state.
- Filtering invalid tasks: It does not process archived sessions or goals that are paused, blocked, or completed.
- Not restarting tool errors or completed tasks: Tool errors or canceled tasks are not restarted.
Installation and Enablement¶
The plugin is distributed only via GitHub and is not published to npm.
The installation command is as follows:
dsh plugin --profile web add git+https://github.com/Carrick-K7/dsh-keep-going.git#0.2.6
After installation is complete, you must restart the DSH process to enable the recovery feature.
Typical Usage¶
The plugin provides the following commands to manage restarts and recovery status:
restart_harness: Waits for work currently in progress, saves newly received messages, and then requests DSH to exit normally./restart: Behaves the same asrestart_harness, but keeps the conversation that issued the command as the caller.keep_going_status//keep-going: Checks the recovery progress and any issues for the current conversation, including unanswered questions.keep_going_clear_goal: Removes a stopped goal (paused, blocked, or completed), keeps its history as a tombstone, and clears its recovery records.
Recovery Behavior Notes:
* After recovery, active goals are retriggered once and handed to the DSH goal driver.
* Questions waiting for user answers are not answered automatically; you must reply manually in the corresponding conversation.
* Security approvals are not replayed and must be reapproved through DSH’s normal mechanisms.
Applicable Scenarios and Notes¶
- Distribution channel: It is distributed only via the GitHub repository.
- Environment dependencies: It requires DSH to provide core services such as native sessions, persistent queries, and the goal driver; otherwise, it is a deployment error.
- Runtime mechanism: The plugin runs with the permissions of the current DSH process. It does not restart completed tasks or archived sessions.
- Restart method: DSH must be restarted through a service manager (such as systemd); the plugin itself is not responsible for starting a replacement process.
Conclusion¶
dsh-keep-going provides DSH with automated task recovery, preventing conversation interruptions caused by gateway restarts. With simple configuration and commands, it can significantly reduce maintenance costs.