Перейти к основному содержимому
Q

dsh-composer-rewind

qiuzaiyou/dsh-composer-rewind

Composer history that restores the whole input state: composer contents, image and file attachments, @ references and slash commands, plus the model, thinking effort, permission and agent preset used.

Установка

dsh plugin --profile web add github:qiuzaiyou/dsh-composer-rewind

README

Composer Rewind · 输入框历史

Composer Rewind 是 DeepSeek Harness Web UI 的输入框状态历史插件。它在你输入时静默保存整个输入框——文字、图片和文件附件、@ 引用、/ 指令——以及当时的模型、思考程度、权限预设和使用模式;需要时一键还原成记录时的完整输入框。

所有数据只保存在本机浏览器,不上传、不写日志、不进会话记录。

兼容性

  • 当前适配 DeepSeek Harness 0.2.1-rc.3(客户端插件协议:window.__ModuleLoader__ + Cordis 4 服务)。
  • 0.2.x 的服务访问、插槽注册、inputActions.setDraft、conversation.createDrafts、remote.agentPresets.select、/permission 指令均按该版本校验通过。
  • 设置还原改用 0.2.x 的写入路径:模型走 remote.session.selectModel,空白会话判定走 session.getSnapshot().blank,不再依赖已移除的 sessions.selectModel 与 session.projectionValues(旧版本仍保留回退分支)。

功能

  • 完整记录:输入框里的文字、图片和文件附件、@ 引用、/ 指令,以及当时的 DSH 配置。
  • 完整恢复:把一条历史还原成记录时的输入框,包括附件缩略图、引用与指令。
  • 按会话归档:历史跟着会话走,面板和 Ctrl+Alt+Z 只显示当前会话的记录,切换会话自动切换视图。
  • 独立管理页:在 Harness 设置的“输入框历史”里按会话浏览、删除、清空或导出全部记录。
  • 不打断输入:停顿约 450ms 才写入一次,连续打字只更新同一条草稿,不会堆出逐字记录。
  • 快速找回:搜索、方向键选择、回车还原;Ctrl+Alt+Z 连续回溯更早的输入内容。
  • 原生外观:复用 Harness 加号菜单的浮层外壳与主题 token,自动适配深色和浅色模式。

记录内容

内容说明
输入框文字输入框中的完整文本
附件图片缩略图、文件条目;附件字节单独缓存,恢复时重新挂回输入框
@ 引用文件引用及其在输入内容中的位置
/ 指令输入框中的命令 token
DSH 配置模型、思考程度、权限预设、使用模式(标准 / 精简 / PTC / 创造)

记录时机

  • 停止输入约 450ms 后更新“当前草稿”;它始终只有一条,原地覆盖。
  • 发送、清空输入框、切换会话、关闭或刷新页面时,当前草稿进入历史。
  • 10 分钟内同一草稿的前缀修改、回退会合并为一条,保留更完整的版本。
  • 再次发送正文和附件都相同的记录时,不新增条目,而是把原条目刷新到列表最前面;附件按文件名、类型和字节大小判断是否同一文件。
  • 去空白后少于 3 个字符、且没有附件的内容会被忽略。
  • 最多保留 300 条,超出后丢弃最旧的一条。

使用

点击输入框左侧工具栏的时钟按钮打开历史面板。面板只显示当前会话的记录。

  • 顶部搜索框可按文字、附件名或配置筛选。
  • 记录按“当前草稿 / 今天 / 昨天 / 更早”分组。
  • ↑ / ↓ 选择,Enter 还原,Esc 关闭。
  • 鼠标悬停可查看完整文字、附件与当时的配置;悬浮卡会自动避开屏幕边缘。
  • 每条历史记录支持还原、复制、删除;“清空”会删除全部历史与附件缓存。
  • 在输入框中按 Ctrl+Alt+Z 可直接回溯插入当前会话的上一条,连续按下继续往前。

还原只写入输入框,不会自动发送,可以继续修改后再提交。

设置页

Harness 设置中新增“输入框历史”页面,用于跨会话管理记录:

  • 顶部显示会话数、记录数、附件数与本插件占用的浏览器存储。
  • 记录按会话分组,标出当前会话;每组可单独清空,也可逐条删除。
  • 可一键清空全部记录,或导出 JSON。导出只含文字与元数据,不包含附件文件。
  • 设置页不提供“还原”,需要还原时回到对应会话,用输入框左侧的历史面板。

恢复范围

还原一条记录时,插件按以下顺序恢复:

  1. 使用模式、模型与思考程度、权限预设。
  2. 附件:从本地缓存重建并重新上传到当前会话。
  3. 正文、@ 引用与 / 指令。

使用模式只能在空白会话中切换;当前会话已经开始对话时,该配置会跳过并提示,其余内容仍会正常恢复。

数据与隐私

存储键内容
localStoragedsh-composer-rewind:v3历史条目(正文、引用、指令、配置、附件元数据)
localStoragedsh-composer-rewind:live:v3当前草稿快照
IndexedDBdsh-prompt-vault / blobs附件字节(沿用旧库名,保证已记录附件仍可恢复)
  • 数据只存在当前浏览器配置中,按 Web GUI 的 origin 隔离;换端口或换浏览器不会共享。
  • 清空历史会同时清理不再被引用的附件缓存。
  • 旧版 dsh-prompt-vault:v1 / :v2 / :v3 的数据会在首次加载时自动迁移。

安装

从 npm 安装到当前 Harness profile:

dsh plugin add dsh-composer-rewind

本地开发时也可以直接安装目录:

dsh plugin add <本目录绝对路径>

安装后刷新 Web GUI 页面,输入框左侧会出现回溯按钮。

已知限制

  • 使用模式(agent preset)只能在空白会话中切换。
  • 单个附件超过 32MB 时只记录元数据,不缓存字节,恢复时会标记为内容缺失。
  • 浏览器存储配额不足时,部分附件可能只保留元数据。
  • 只监听 Harness 的输入框,不记录页面中的其它输入框。
  • 每条记录最多保留 20 个附件。

Похожие плагины