DeepSeek Harness 消息原地编辑插件:dsh-message-rewrite

前言

DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。在实际开发与调试会话时,一旦用户消息发出且 AI 完成回复,若发现之前的提问需要修正,通常只能通过发送新消息或重启会话来处理,这会打断上下文的连贯性。dsh-message-rewrite 插件通过引入 Codex 风格的消息编辑机制,允许用户在会话过程中直接修改历史消息,并在同一会话内触发 AI 重新生成后续回复,从而保持对话流的完整性。

插件概览

这是一个运行在 DSH 客户端(桌面 App / Web)上的插件,利用 DSH 的 profile 插件体系与 Cordis 框架实现功能。插件支持消息原地编辑、浮层编辑器、编辑链、中间消息自动 fork 以及虚拟滚动兼容。

  • 名称: dsh-message-rewrite
  • 维护者: zouxiaoyang
  • 许可证: MIT

核心功能

插件提供以下核心能力:
1. 消息原地编辑: 鼠标悬停在已发送的用户消息行上,出现编辑入口。
2. 精致浮层编辑器: 点击后弹出居中的编辑卡片,支持深色/浅色主题自适应,可反复编辑形成编辑链。
3. Codex 式截断重生成: 发送修改后,旧消息及后续回复从会话表面(surface)移除,AI 从编辑点重新生成回复。
4. 编辑链: 支持对已编辑的消息继续编辑(A → B → C),界面仅展示最终版本。
5. 中间消息自动 fork: 若编辑的是中间消息(其后还有更新的用户消息),会自动 fork 新会话进行改写,避免影响后续对话。
6. 虚拟滚动兼容: 通过 UUID 精确绑定消息行,确保长会话或虚拟列表复用时不错位。

安装与启用

插件通过 profile bundle 方式安装,需手动编辑 DSH 的配置文件。

  1. 创建目录并复制文件
    创建插件目录,将必要的文件复制进去:
    PLUGIN_DIR=~/.dsh/profiles/web/plugins/dsh-message-rewrite
    mkdir -p "$PLUGIN_DIR"
    cp index.js client.js cordis.patch.yml package.json "$PLUGIN_DIR/"
  1. 修改配置
    编辑 ~/.dsh/profiles/web/package.json:
    • 在 dependencies 中加入:
        "dsh-message-rewrite": "file:./plugins/dsh-message-rewrite"
*   在 `dsh.profile.bundles` 数组中添加:
        "dsh-message-rewrite"
  1. 重启服务
    安装依赖并重启 DSH 服务器(例如执行 ~/bin/dsh-server-restart),随后刷新浏览器页面即可生效。

使用方法

  1. 在任意会话中,将鼠标移动到一条用户消息(自己发送的消息)上。
  2. 点击消息行末尾出现的 ✎ 编辑 按钮。
  3. 在弹出的编辑浮层中修改文本内容,按发送并重新生成(或快捷键 ⌘Enter)。
  4. 该消息后的旧回复会被隐藏,新的编辑后内容气泡和 AI 重新生成的回复将出现在原位置。
  5. 若需继续修改,再次 hover 新生成的消息气泡,点击「✎ 再次编辑」,形成编辑链。

注意事项

  • 编辑范围: 仅对「用户消息」行挂载编辑按钮,AI 的回复行暂不支持编辑。
  • 运行环境: 依赖 DSH 桌面 App 或 Web 的 profile 插件体系,非独立 CLI 工具。
  • 内核版本: 插件适配目标为 DSH 内核版本 0.1.2-rc.1,内核 API 随版本演进可能变化。
  • 配置冲突: cordis.patch.yml 通过 bundle 通道自动加载。请勿在主 cordis.patch.yml 中重复 insert 本插件,否则 webserver 会因路由冲突(duplicate prefix route /dsh-rewrite)启动崩溃。

结语

dsh-message-rewrite 插件为 DSH 用户提供了更接近 IDE 或现代 AI 客户端的消息编辑体验。通过保持会话的连续性和上下文的一致性,它降低了调试与对话修正的门槛。更多细节可查看社区目录或GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜