← 返回列表
未验证
个人自用的小插件,给 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,看到且有空时会修修 ☕
扫码进群