dsh-composer-rewind
记录并还原整个输入框状态:文字、图片/文件附件、@ 引用和 / 指令,以及当时的模型、思考程度、权限预设和使用模式;还原后与记录时一致。
安装
dsh plugin --profile web add dsh-composer-rewind
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
Composer Rewind · 输入框历史
DeepSeek Harness Web UI 的输入框历史插件。它在你输入时静默记录整条输入框——文字、图片与文件附件、@ 引用、/ 指令——以及当时的模型、思考程度、权限预设与使用模式;需要时一键还原成记录时的输入状态。
记录只存在本机浏览器,不上传、不进会话记录。
安装
dsh plugin add dsh-composer-rewind
本地开发可直接装目录:
dsh plugin add <本目录绝对路径>
需要 DeepSeek Harness 0.2.1 系列(rc.3 及之后的小版本均可运行)。安装后刷新 Web GUI,输入框左侧出现时钟按钮。
功能
能力 · 说明
完整记录 · 文字、图片与文件附件、@ 引用、/ 指令,连同当时的模型、思考程度、权限预设与使用模式
完整还原 · 把一条历史写回输入框,附件重新挂回,正文、引用与指令一并恢复
按会话归档 · 历史跟随会话,面板与快捷键只显示当前会话的记录
历史面板 · 搜索、键盘选择、悬停预览,逐条还原 / 复制 / 删除
快捷回溯 · 输入框内按 Ctrl+Alt+Z 取回上一条,连按继续往前
设置页 · 按会话浏览、单组清空、清空全部、导出 JSON
主题跟随 · 复用 Harness 浮层外壳与主题 token,深色浅色自适应
使用
点输入框左侧时钟按钮打开历史面板,面板只列当前会话的记录。
- 顶部搜索框按文字、附件名或当时的配置筛选。
- 记录按「当前草稿 / 今天 / 昨天 / 更早」分组。
↑↓选择,Enter还原,Esc关闭,鼠标悬停可看完整内容与配置。- 在输入框内按
Ctrl+Alt+Z回溯上一条,连按继续往前。 - 还原只写入输入框,不会自动发送。
设置页位于 Harness 设置 →「输入框历史」,用于跨会话管理:
- 顶部统计会话数、记录数、附件数与本插件占用的站点存储。
- 记录按会话分组并标出当前会话,可清空单组、逐条删除或全部清空。
- 导出 JSON 只含文字与元数据,不含附件字节。
- 设置页不提供还原,还原请回到对应会话使用输入框面板。
记录规则
项目 · 规则
草稿更新 · 停止输入约 450ms 后更新「当前草稿」,始终只有一条
进入历史 · 发送、清空输入框、切换会话、关闭或刷新页面
落盘 · 去抖 800ms;发送、切会话、关闭页面前立即落盘
合并 · 10 分钟内同一草稿的前缀修改与回退合并为一条,保留更完整的版本
去重 · 正文与附件都相同时不新增,把原条目刷新到列表最前
忽略 · 去空白后少于 3 个字符且没有附件的内容
上限 · 300 条记录、每条 20 个附件、单个附件 32MB
存储不足 · 丢弃最旧的四分之一并提示一次,不会静默停止保存
附件是否同一文件按文件名、类型、字节大小与修改时间判断。
还原顺序
1. 使用模式 → 模型与思考程度 → 权限预设。
2. 附件:从本地缓存重建并重新挂回输入框。
3. 正文、@ 引用与 / 指令。
使用模式只能在空白会话中切换。当前会话已经开始对话时,该项会跳过并提示,其余内容仍正常恢复。
数据与隐私
存储 · 键 · 内容
localStorage · dsh-composer-rewind:v3 · 历史条目(正文、引用、指令、配置、附件元数据)
localStorage · dsh-composer-rewind:live:v3 · 当前草稿快照
IndexedDB · dsh-prompt-vault / blobs · 附件字节(沿用旧库名,已记录的附件仍可恢复)
- 数据按 Web GUI 的 origin 隔离,换端口或换浏览器不共享。
- 清空历史会同时清理不再被引用的附件字节。
- 附件预览图最多同时缓存 48 张,超出后按使用顺序回收。
- 旧版
dsh-prompt-vault:v1/:v2/:v3数据在首次加载时自动迁移。
兼容性与限制
适配 DeepSeek Harness 0.2.1 系列,不绑定具体补丁版本(rc.3 起可用,后续 rc 版本实测正常)。客户端插件协议为 window.__ModuleLoader__ + Cordis 4 服务。设置还原使用该系列的写入路径:模型走 remote.session.selectModel,空白会话判定走 session.getSnapshot().blank,使用模式走 remote.agentPresets.select,权限走 /permission 指令;这些能力在版本间缺失时会自动退回旧调用方式,因此同一份代码可在该系列各版本上运行。
已知限制:
- 使用模式仅能在空白会话中切换。
- 单个附件超过 32MB 时只记录元数据,恢复时标记为内容缺失。
- 只监听 Harness 的输入框,不记录页面中的其它输入框。
- 使用模式切换会重建会话,还原会在新会话上继续。
开发
文件 · 作用
client.js · 客户端插件:记录、存储、面板、设置页
index.js · host 侧入口,当前为空实现
cordis.patch.yml · bundle 插入声明
locale/*.json · 中英文案
tools/check.mjs · 静态断言(清单、token、契约)
tools/logic-test.mjs · 沙盒行为测试
node tools/check.mjs node tools/logic-test.mjs
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:11,最后更新 2026-11-04