DeepSeek Harness (DSH) currently does not have a built-in way to edit the last message or retry a failed turn (for example, when interrupted by a network error). The locietta/dsh-rewind-retry plugin solves this problem by adding Retry, Edit prompt, and Continue actions, and its core implementation approach is to “fork” the session.

Plugin Overview

This is a DeepSeek Harness (DSH) plugin maintained by Locietta. It adds Retry, Edit prompt, and Continue actions for completed turns in the web/desktop chat UI.

Core Features

The plugin modifies history and retries by forking the session:

  1. Retry: For each completed turn generated by a user prompt, fork the session before the prompt and resend the same prompt.
  2. Edit: Fork the session at the same boundary, then place the old prompt into an editor for modification.
  3. Continue: Only takes effect when the latest turn fails or has no response; sends “Continue from where you left off” in the same session, preserving work already done.

Installation and Activation

DSH’s Plugin Manager installs bundles directly from GitHub, without requiring npm packages.

Run the following command in the DSH agent:

Install the plugin bundle github:Locietta/dsh-rewind-retry#v0.1.0

After installation, there is no need to restart DSH. Refresh the page to see the buttons.

Update and Uninstall

  • Update: Remove the old bundle and install the new tag, for example by typing reinstall github:Locietta/dsh-rewind-retry#<new tag> in the agent.
  • Uninstall: Go to Settings → Plugins, find @local/dsh-rewind-retry, and remove it.

How It Works

DSH’s session log is append-only, so “rewinding” is fundamentally a fork. The plugin calls the Host’s session.fork with a precise atSeq boundary, and the original session is preserved as a branch.

  • Idle prompt: Cuts before the prompt arrives, preserving setting changes between turns (such as model and permission mode).
  • Queued prompt: Cuts after the previous turn ends, ensuring the old prompt in the queue does not execute with priority in the forked session.

Note that rewinding only affects conversation history; file changes on disk remain unchanged after the rewind.

Limitations and Precautions

  • Attachment limitations: Retry only supports text. If the original prompt included images or files, you need to add them manually again.
  • UI location: The action buttons appear at the end of the turn (because DSH’s user message bubbles have no extension slots).
  • Rewindable turns: Limited to turns you initiated manually. Turns initiated by goal rounds, schedules, or subagent notices do not support Retry or Edit.
  • Dependency version: Currently tested with DSH 0.1.7-rc.1. The plugin defensively reads Client internals (chat snapshots and session event window), so future DSH versions may require updates.