DeepSeek Harness 插件

dsh-conversation-rewind

Append-only conversation rewind and safe message editing for DeepSeek Harness(英文原文)

跳到安装方式

来源信息

GitHub 仓库
DTSFO/dsh-conversation-rewind
最近更新
2026年8月16日
分类
记忆
GitHub stars
2
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/DTSFO/dsh-conversation-rewind
插件名:dsh-conversation-rewind
作者:DTSFO

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-conversation-rewind

为 DeepSeek Harness Web UI 增加原 Session、append-only(只追加)的消息分支浏览与安全历史消息编辑。

English · DSH 插件专题

功能

  • 在每条可编辑用户消息下方、复制按钮旁直接增加“编辑历史消息”;编辑器原位出现在该消息行中,不再弹出 Modal。
  • 原历史切换视图改名为“消息分支”,展示可视化消息树;每个语义分支只有最后一条消息可以点击,中间消息只是树节点。
  • 点击分支末端只是客户端只读浏览已有路径:不会发送消息、调用 Provider、唤醒 Agent、写入 inbox、追加 replacement,也不会截断 Session。
  • 分支浏览仍在原 Session 内:Session ID 与浏览器 URL 全程不变,不创建子 Session。
  • 使用 DSH Surface replacement 元数据,把目标消息、旧回复及后续旧路径从当前对话和后续模型上下文中隐藏。
  • 持久事件日志仍然只追加。历史事件保留用于审计与恢复,插件追加 replacement marker,不改写或删除旧事件。
  • 修改后的文本作为一条真实的新用户消息发送,助手回复会重新生成。
  • 确认编辑后始终从这条消息在原 Session 内新开一个兄弟分支;编辑器不提供任何“后续消息”选项。
  • 常驻保护编辑流程的内部 trigger,确保它在 Provider 请求前被取消;Host 重启后的 orphan 恢复同样 fail-closed。

原 Session 语义

1. 插件只在确认编辑时验证已经完成、可安全重放的用户轮次,并在提交前重新检查 live Session。 2. 一个受保护的内部轮次追加 DSH SurfaceOp replacement,覆盖从目标消息到当前活动尾部的旧路径。 3. 内部 trigger 与被遮蔽的旧路径不会进入 Provider 请求。 4. 内部轮次完全回到 idle 后,修改后的消息才作为普通用户轮次排入同一个 Session。 5. 新消息与新回复都是 append-origin 事件,因此修改后的消息之后仍可再次编辑。

确认编辑会从目标消息替换当前活动路径,只把修改后的文本作为一条新的普通用户消息排入同一个 Session。旧消息仍保留在 append-only 历史中,成为新消息的兄弟分支;编辑操作不会重放后续消息。消息分支浏览不会执行 replacement 或重放流程。

安全边界

只有“已完成轮次中唯一一条、由用户直接发送的普通纯文本消息”可编辑。目标之前仍在当前 Surface 上的注入上下文会原样保留;目标之后的上下文则必须是 Host 可重新生成的系统快照或技能目录。包含附件、非文本块、多条直接用户消息、尚未结束或正在运行的轮次、入队历史有歧义,或后续轮次无法安全重放时,目标会被隐藏或请求会被拒绝。

当前编辑要求 Session 在本 DSH 进程中处于 live 状态。Surface 或 inbox 并发变化时操作会 fail-closed。若 Surface replacement 已提交、但后续 checkpoint 失败,错误会返回原 Session 与 replacement event;行内编辑器会立即作废旧消息快照,并在重新加载 Session 后才重新开放编辑入口。

包含附件、歧义用户上下文或其他无法安全重放轮次的分支仍会显示在树中;只要有明确末端仍可只读浏览,但其中消息不会提供编辑入口。

编辑才会改变会话历史;分支浏览不会改变会话。两者都不会恢复工作区文件,也不会逆转工具调用、命令、网络请求或其他外部副作用。

环境要求

  • DeepSeek Harness >=0.1.0-rc.6
  • Node.js ^22.19>=24
  • DSH Web profile

安装

dsh plugin --profile web add \
  https://github.com/DTSFO/dsh-conversation-rewind/archive/refs/tags/v0.1.7.tar.gz
dsh web

卸载:

dsh plugin --profile web remove dsh-conversation-rewind

使用

1. 在 DSH Web 中打开一个已经完成的 Session。 2. 点击目标用户消息下方、复制按钮旁的“编辑历史消息”。编辑器会原位展开;修改文本后点击“确认”或“取消”。确认会在同一个 Session 内从该消息新开兄弟分支。 3. 打开“消息分支”视图查看消息树,只点击分支末端即可在 Chat 中只读浏览该已有路径。 4. 浏览期间发送会被暂时禁用;回到当前活动末端后才可发送或编辑。 5. 旧路径仍保留在 append-only 日志中,只有确认编辑才会在原 Session 内追加 replacement 并重新生成回复。

本地开发与测试

pnpm install
pnpm run check
dsh plugin --profile web add /absolute/path/to/dsh-conversation-rewind
dsh web

pnpm run check 会依次执行 TypeScript 检查、ESLint、单元测试与生产构建。

已知限制

  • 编辑范围刻意限制为可安全重放的单条普通纯文本用户消息。
  • 编辑不会重放后续用户输入;如需切换已有历史路径,请在消息树中点击对应节点。
  • 分支浏览是客户端只读投影;Host 当前窗口未提供的 Chat 行无法由插件伪造恢复。
  • 非末端消息显示为静态树节点;Host 直接收到非末端选择时会返回 BRANCH_NOT_ENDPOINT
  • Session 必须在当前 Host 进程中打开并处于 live 状态。
  • 不恢复工作区,也不逆转外部副作用。
  • 当前版本面向 DSH Web UI 与 DSH 0.1.0-rc.6 API。

MIT