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 设置里的「输入框历史」页用来跨会话管理:
- 顶部有「绑定工作区」开关,默认关闭。打开后历史面板和
Ctrl+Alt+Z按当前工作区取记录;关掉就只看当前会话。 - 下方统计会话数、记录数、附件数,以及本插件占用的站点存储。
- 记录按会话分组并标出当前会话,可以清空单组、逐条删除或全部清空。
- 导出 JSON 只含文字与元数据,不含附件字节。
- 这一页不提供还原;要还原就回到对应会话,用输入框面板。
记录规则
| 项目 | 规则 |
|---|---|
| 草稿更新 | 每次输入都写草稿快照,「当前草稿」的界面更新约 450ms 一次,始终只有一条 |
| 进入历史 | 发送、清空输入框、切换会话、关闭或刷新页面;进程被杀时,下次打开页面补记 |
| 落盘 | 草稿逐次写入;历史去抖 800ms;发送、切会话、关闭页面前立即落盘 |
| 合并 | 10 分钟内同一草稿的前缀修改与回退合并为一条,保留更完整的版本 |
| 去重 | 正文与附件都相同时不新增,把原条目刷新到列表最前 |
| 忽略 | 去空白后少于 3 个字符且没有附件的内容 |
| 上限 | 300 条记录、每条 20 个附件、单个附件 32MB |
| 存储不足 | 丢弃最旧的四分之一并提示一次,不会静默停止保存 |
附件是否同一文件,按文件名、类型、字节大小与修改时间判断。
还原顺序
- 使用模式 → 模型与思考程度 → 权限预设。
- 附件:从本地缓存重建并重新挂回输入框。
- 正文、@ 引用与 / 指令。
使用模式只能在空白会话中切换。当前会话已经开始对话时,该项会跳过并提示,其余内容仍正常恢复。
数据与隐私
| 存储 | 键 | 内容 |
|---|---|---|
localStorage |
dsh-composer-rewind:v3 |
历史条目(正文、引用、指令、配置、附件元数据) |
localStorage |
dsh-composer-rewind:live:v3 |
当前草稿快照 |
localStorage |
dsh-composer-rewind:prefs:v1 |
「绑定工作区」开关 |
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 的输入框,不记录页面中的其它输入框。
- 使用模式切换会重建会话,还原会在新会话上继续。
- 多标签页共用同一个草稿键;两个页面同时输入时,后写的会覆盖前面的。
- 附件字节是异步写入的;刚粘贴附件就重启 DSH,重启后可能只剩附件名与大小。
开发
| 文件 | 作用 |
|---|---|
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
No comments yet. Be the first to write one.