DeepSeek Harness Hub
← 返回列表

DDDonzy/dsh-history-rewind

DeepSeek 客户端兼容 / 相关生态spec-screened在 GitHub 查看 ↗
未验证

个人自用的小插件,给 DSH 聊天加上类似 Git 的版本回退能力。随缘维护~

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/31 · 已提供中文文档

DSH 会话与工作区分支历史管理插件:支持对话/工作区快照。多分支自由分支跳转,回退(仅会话/仅代码/双轨全回退),同窗口原地热重载,影子 Git 仓库零污染、秒级快照、KV Cache 友好。 / Branch manager & turn-level rewind/rollback plugin for DeepSeek Harness (DSH).

综合分
28
GitHub 分
28
用户评分
★ Stars
0
周下载量
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/DDDonzy/dsh-history-rewind.git
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-history-rewind

个人自用的小插件,给 DSH 聊天加上类似 Git 的版本回退能力。随缘维护~

UI Preview

它是干什么的?

每次和 AI 对话,后台都会自动拍下快照。

如果你觉得 AI 答偏了、或者代码改坏了,可以随时点开历史面板,一键跳回当时的状态,就像在 Git 里 checkout 一样。

- 不新建会话:就在当前窗口原地切回去;
- 彻底回滚:目标时间点之后的消息会真正消失;
- 支持改代码:不仅能回退聊天记录,还能把写过的文件代码一起恢复回去。

前置依赖

- 电脑需要安装 Git(命令行里输入 git --version 有输出即可)。
- 本插件底层是纯调用本机 Git 来做版本管理,不依赖任何第三方云服务。

安装步骤

在电脑上打开终端(Windows 推荐打开 命令提示符 (CMD) 或 PowerShell,Mac/Linux 打开 Terminal),按以下步骤操作:

1. 安装插件

方式一:直接通过 GitHub 安装(推荐)
dsh plugin --profile web add github:DDDonzy/dsh-history-rewind

方式二:通过本地源码安装
如果你已经把代码 clone 到本地:
dsh plugin --profile web add
例如 Windows:
dsh plugin --profile web add E:\dsh-history-rewind

2. 重启 DSH
安装完成后,在终端重启 DSH 服务即可生效:
dsh web

卸载插件

在终端执行以下命令即可卸载:

dsh plugin --profile web remove dsh-history-rewind

卸载完成后重启 DSH 即可。

提示:插件卸载后不会影响你的项目代码。如需彻底清理历史快照数据,可直接删除本地数据文件夹 $DSH_HOME/.dsh-history-rewind/(Windows 在 C:\Users\\.dsh\.dsh-history-rewind\,Mac/Linux 在 ~/.dsh/.dsh-history-rewind/)。

怎么用?

1. 打开面板:点击右上角的 HISTORY 按钮,或者输入 /history 回车;
2. 选择版本:在弹出的一条条版本线上,找到你想回到的那一轮对话,点一下;
3. 选择回退方式:
- 仅会话:只把聊天内容倒回去,你写的文件代码不动;
- 仅工作区:只把代码文件恢复到当时的模样,聊天记录不动;
- 会话和工作区:聊天和代码一起回到当时(最常用)。
4. 点完确认后,面板会立刻关闭,页面平滑刷新并恢复到该版本。

工作区是精确还原:恢复后你的项目文件会跟快照那一刻一模一样——当时没有的文件会被删掉,当时有的会被还原,不多不少。(.gitignore 排除的目录不受影响。)

回退前会自动兜底备份:动手改任何文件之前,插件会先把当前的对话文件和整个工作区完整复制一份到 backups/。回退成功后,这份刚做的备份会自动删掉,不再堆积占盘;一旦中途出问题(恢复失败、会话没能重新加载),备份就会原样保留下来,方便手动找回。

想关掉历史面板?直接按键盘 Esc,或者点击卡片外部任意空白区域。

核心机制

1. 快照是怎么拍的?
- 发送消息前:如果检测到你修改了项目文件,会自动拍一个 WORKSPACE 锚点,标记这次提问前的代码状态(没改文件就不拍,不产生废节点);
- AI 回答完成后:自动拍一个 TURN 完整快照,同时记录这一轮的聊天内容和最新代码;
- 所有快照都存在本机的纯裸 Git 仓库(影子仓库)里,零拷贝、不占额外空间。

2. 回退后会影响模型的回答速度吗?(缓存机制)
完全不会变慢。
大模型(如 DeepSeek、Claude)都有服务端前缀缓存(KV cache)。回退时,插件会自动还原目标时刻的工具集、系统提示词和模型路由,让新请求的前缀和历史逐字节完全一致,服务端直接命中缓存,响应速度和原来一样快。

3. 哪些文件不会被快照?(.gitignore)
快照只按目标项目自己的 .gitignore 排除文件——没有任何插件自带的默认排除列表。

- 项目第一次被快照时,如果这个项目根目录下还没有 .gitignore,插件会自动创建一份(内容取自设置面板里的"默认 .gitignore 模板",默认仅排除 .git,用户可在设置中按需添加);
- 项目已经有 .gitignore 的话,插件完全不会去改它——想调整某个项目排除哪些文件,直接编辑那个项目自己的 .gitignore 即可,跟平时用 Git 一样;
- 想改"以后新项目自动创建的默认内容",去设置页面(设置 → HISTORY-REWIND)改那个模板文本框;
- .gitignore 文件本身永远会被快照收录,不会被自己的规则误排除掉;
- 目前只支持基础通配符(、?、开头 /、结尾 /),暂不支持 ! 取反和 * 递归写法。

常见疑问

- 回退后还能反悔吗?
可以。旧版本依然会留在时间线上,随时可以再跳回去——这是主要的反悔方式,不依赖 backups/(回退成功后那份备份就清掉了)。backups/ 兜的是另一种情况:回退中途出错,或者你回退前有些改动还没被快照记录过。
- 回退后继续对话会怎样?
如果继续聊了新的内容,时间线上会自动分叉出一条新的彩色分支,以前的旧路线依然保留。

数据存在哪?如何清理?

所有数据均保存在本地电脑的 $DSH_HOME/.dsh-history-rewind/(通常是 ~/.dsh/.dsh-history-rewind/ 或 C:\Users\\.dsh\.dsh-history-rewind\):

- repos/:会话聊天记录的 Git 裸仓库(按会话 1:1 隔离);
- repos-ws/:项目代码快照的 Git 裸仓库;
- backups/:回退前的兜底备份。回退成功后本次备份会自动清理,只有出问题的那几次才会留在这里。
容量监控与清理(设置面板)
设置 → HISTORY-REWIND 里有一块「快照缓存」:

- 容量上限:默认 100 GB,可以自己改。这只是个提醒线——到了不会自动删任何东西,也不会拦住快照,只是把进度条颜色变一下;
- 占用进度条:绿(健康)→ 橙(偏高,超过 75%)→ 红(接近或超出,超过 90%),下面还会分项列出会话 / 工作区 / 备份各占多少;
- Clear 按钮:弹窗里三选一 —— 仅会话、仅工作区、会话和工作区。

为什么满了不自动清理? 因为这里能删的只有你的回退历史本身,删了就再也跳不回去了。这种决定应该由你来做,不该由插件替你做。

如何清理历史数据?
- 推荐:用设置面板里的 Clear 按钮,可以按范围清,不用手动翻文件夹。
- 想彻底重置:直接把 .dsh-history-rewind 文件夹整个删掉即可(不会影响你的原项目代码,也不影响 DSH 的正常聊天)。删掉后插件会在下次对话时自动重新建库。
- 关于 backups/:每次回退成功后会自动清掉本次备份,一般不用管。若里面还有残留,说明那几次回退出过问题,确认不需要找回后可以放心删掉。

⚠️ 清空是不可恢复的:它删的是影子仓库历史,清完这些版本就无法再回退了。你的项目代码本身不受影响。

说明

- 个人自用的小项目,按自己的日常工作流随缘更新~
- 随便用、随便改,不提供任何保证。遇到问题可以提 issue,看到且有空时会修修 ☕

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群