DSH Plugin MarketA community catalog for DeepSeek Harness plugins

dsh-turn-rewind

Verified Skills & agents ★ 145 0.3.12

Turn-level conversation and workspace rewind for DeepSeek Harness, powered by a persistent Change Ledger

What it is

Turn-level conversation and workspace rewind for DeepSeek Harness, powered by a persistent Change Ledger

How to install

Run this in the DSH web profile, then refresh the page.

$ dsh plugin --profile web add @anionex/dsh-turn-rewind@0.3.12

DSH versions accepted

0.2.1-rc.3 || >=0.1.0-rc.8 <0.2.0 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.5-rc.1 || 0.2.0-rc.2 || 0.2.1-rc.2 || 0.2.1-rc.5

Author and traction

Anionex · ★ 145 · Updated 2026-11-06

About this plugin

DSH Turn Rewind

中文说明

Message-anchored project-file recovery for DeepSeek Harness, with an option to restart from the restored request.

Turn Rewind is the user-facing feature, repository, and Profile Bundle name. Change Ledger is the durable restore engine underneath it: the ctx.changeLedger service, on-disk format, and storage path keep that name because they describe the reusable snapshot and recovery layer rather than the Web action alone.

Change Ledger gives a DSH session an explicit safety boundary around workspace mutations:

It never commits, stashes, resets, switches branches, edits the Git index, or decides automatically that a change should be reverted. What's new

Most recent work first: File rewind works in ordinary directories (0.3.0) — when the working directory is not a Git repository it is snapshotted as an ordinary directory (.git and node_modules excluded by default, plus an optional .dsh-rewindignore), so messages-only rewind is no longer the only option. The fastest path is now the default (0.3.8) — the new auto mode uses Git-native checkpoints in a Git worktree (reusing the repository object database, so committed content is never stored twice) and the plugin's own store for ordinary directories. Unchanged files are no longer re-read (0.3.5) — each workspace keeps a persistent path identity cache; a measured 20 000-file / 351 MB workspace dropped from 237 s to about 7 s per capture. One oversized file no longer discards a whole checkpoint (0.3.3) — it is skipped and reported while the rest is still captured, and a restore never touches a path its checkpoint did not record, so a file that was too large then and small now is never deleted. Checkpoint budget 5 s → 60 s, parallel capture (0.3.4) — a 5-second budget in a large directory could only ever report a skip. Rewind button and messages-only fixes (0.2.2 / 0.2.3) — adapted to

Rewind appears as an icon-only third action under each user message, after its timestamp and native Copy action:

Opening it shows the affected files and offers three choices: restore the files and restart from before that message, restore only the files, or rewind only the messages and leave the files untouched:

Why it has a Change Ledger engine

A diff button can show current changes, but it does not own a durable restore lifecycle. Change Ledger owns: content-addressed restore-point manifests; Git worktree, HEAD, branch, and in-progress-operation fences; stale-plan detection between review and mutation; exact two-step confirmation plus DSH human approval; automatic pre-restore rescue points; post-restore hash verification; rollback after a failed restore; startup reconciliation of interrupted restore journals; a public ctx.changeLedger service that other plugins can consume.

Similar plugins