v0.1.0
v0.1.0 — First release
Rewind and redo for DeepSeek Harness: go back to the start of an earlier turn — the
conversation and the files it changed.
Works in a project that has never seen git init, and in one that has. Your commits,
your stash, your worktree state are untouched, and nothing is stored inside your
repository.
What it does
- Captures once per turn, on
agent/pre-step, before the model request and before
any tool runs. The capture is awaited, so a snapshot is never half-taken. - Declares a pre-image before an edit lands, so a file the per-turn scan cannot see
— outside the workspace, over the size limit, past the recency budget — is still
restorable. /rewind <point>forks the conversation and restores the files into the fork.
/redoreverses it./rewind statusreports what is tracked and what it costs on
disk.- A rewind control in each turn's own message row, beside copy and branch, and a
status strip in the session header.
Install
dsh plugin --profile <name> add dsh-filesnapNothing to install by hand: the filesnap
engine is a dependency, so the prebuilt binary for your platform comes with it. Every
@deepseek-ai peer is optional — the plugin degrades rather than refusing to load.
Worth knowing before you install
The plugin records its rewind points as session events, and the harness has no
supported way for an out-of-repo plugin to declare an event type — so it declares them
by mutating a harness constant at load. Uninstalling the plugin leaves the
conversations it captured unopenable, because the reader refuses a log holding a type
it does not know. The data is untouched on disk; reinstalling restores access.
DeepSeek Harness 的回退与重做:回到某一轮开始之前 —— 对话和它改过的文件一起。
在从没 git init 过的项目里可用,在 git 仓库里也可用。你的 commit、stash、worktree
状态一概不动,也不会往你的仓库里存任何东西。
它做什么
- 每轮捕获一次,在
agent/pre-step,早于模型请求、早于任何工具运行。捕获是被
await 的,所以不会出现拍到一半的快照。 - 在编辑落盘前声明前像,所以每轮扫描看不到的文件 —— 工作区之外的、超过体积上限
的、超出近期预算的 —— 仍然可以还原。 /rewind <point>fork 出对话并把文件还原进这个 fork,/redo撤销它,
/rewind status报告追踪了什么、占了多少磁盘。- 每一轮的消息操作行里有一个回退控件(和复制、分支并排),会话头部有一条状态栏。
安装
dsh plugin --profile <name> add dsh-filesnap不需要手动装任何东西:filesnap
引擎是依赖项,你平台对应的预编译二进制会跟着装好。所有 @deepseek-ai peer 都是可选的
—— 缺了就降级,而不是拒绝加载。
安装前值得知道
插件把回退点记为会话事件,而 harness 没有为出仓插件提供声明事件类型的受支持途径 ——
所以它在加载时改写了一个 harness 常量。卸载插件会让它捕获过的对话打不开,因为读取
器会拒绝含有未知类型的日志。磁盘上的数据完好,重新安装即可恢复访问。
Full Changelog: https://github.com/extracurricular-ai/dsh-filesnap/commits/v0.1.0