dsh-revise-chan:在 DSH 里署名、修订回答与悬浮大纲

前言

在 DeepSeek Harness(dsh)里跑对话时,会话日志是只追加、深度冻结的;assistant/message 在 0.2.x 上也不能做 surface replacement。因此「直接改历史里那条回答」在宿主契约下做不到。若你仍希望把回答当文稿来管——看清计费归属、改一版正文而不丢对话脉络、在长对话里快速跳到某一轮——就需要在 Web 客户端侧补一层能力。

社区插件 dsh-revise-chan(npm 包名 dsh-revise-chan,中文名「修订酱」)由维护者 shellexy 发布,分类为客户端插件。它在不改动宿主只读历史的前提下,提供回答署名、从提问处 fork 并追加修订稿、以及对话区悬浮大纲三件事。

这是什么

一句话:dsh-revise-chan 让 dsh web 可以修改 AI 回答内容,并在对话区显示大纲悬浮栏。

插件面向 dsh 0.2.x 的 session / surface / slot 契约(README 写明目标 0.2.0-rc.2),纯 JavaScript、无构建步骤、Browser 半仅 require('react')。

核心功能

下面三项均来自官方 README,行为以宿主 0.2.x 语义为准。

署名

每条助手回答下方的时间行末尾会补上 模型 | 提供方。取值优先来自该轮 turn-tail.tokenUsage.routes(真正被计费的路由);Chat 折叠没有这条时,回退到消息自带的 providerMetadata。

修订

复制按钮右侧增加铅笔图标。点开应用内对话框修改回答正文并保存后,流程不是改写原事件,而是:

  1. Host 半 revise-chan/plan 在来源会话日志里定位该回答所属轮次的人类提问事件序号(仅 source.kind === 'user' 的 user/message)。
  2. Browser 半在提问处 sessions.fork({ atSeq }),子会话继承到该提问为止(含标题),原回答不在分支里。
  3. Host 半 revise-chan/revise 向子会话追加完整轮次:修订正文沿用原消息 id、provider、model,保留思考块与图片,丢弃工具调用;模型可见历史折叠为「…, 提问, 修订后的回答」。

被取代的旧会话会加上 ·<修改时间> 后缀并归档;新分支沿用原标题,你仍停留在「同一条对话」语境里。同轮次号沿用,避免与后续轮次撞号。

目录(悬浮大纲)

对话区右上角有悬浮「大纲」按钮。展开后是贴着对话列右侧的列表:每个已开始轮次一行(提问 1 行 + 回答 2 行预览;纯图片/纯命令轮次显示轮次号),当前轮高亮,点击可跳到该轮(未载入轮次会按 turnOutline 的 seq 先翻页)。面板高度占满对话栏至输入框上方,不占用侧栏列宽。点击面板与按钮外区域、Esc、关闭或再次点按钮可收起。

安装与启用

安装命令须使用 README 原文。Web profile 示例:

从 npm:

dsh plugin --profile web add dsh-revise-chan

从 GitHub:

dsh plugin --profile web add github:shellexy/dsh-revise-chan

本地路径(改完即用,无需构建):

git clone https://github.com/shellexy/dsh-revise-chan.git
dsh plugin --profile web add ./dsh-revise-chan

装完后重启正在运行的 dsh web(Host 半需重启才能加载 revise-chan Remote;Browser 半刷新页面即可)。

典型用法

  1. 在 dsh web 中打开任意对话,查看助手回答下方是否出现 模型 | 提供方 署名。
  2. 需要改某一版回答时,点该条回答旁的铅笔,在对话框中编辑正文并保存;侧边或会话列表中会出现带时间戳后缀的归档会话,当前工作分支里是修订后的回答,标题不变。
  3. 长对话中点右上角「大纲」,在列表中选轮次跳转;未加载的历史会先翻页再滚动定位。

维护者在仓库 tools/ 提供可复跑验证(README「已验证到什么程度」):

bash tools/verify-all.sh          # 离线:不需要模型,不联网
bash tools/verify-all.sh --e2e    # 再启一次性 profile 走真实网关

适用场景与注意

适合谁:经常在 DSH Web 里校对模型输出、需要分支式「改稿」而非重开对话、或需要在多轮对话中快速导航的开发者。

边界(README「已知边界」):

  • 修订会丢掉原轮次的工具调用链;思考块与图片保留。
  • 压缩摘要已吞掉该轮时无法修订,宿主返回 message-not-found。
  • 会话标题有 UTF-8 80 字节上限,插件会先裁标题再补时间戳后缀。
  • 大纲按钮位置与高亮依赖宿主发布的 [data-conversation-scroll] / [data-chat-turn];宿主改名会导致按钮或跟随失效,大纲数据本身不受影响。

安全与信任:插件以当前 dsh 进程权限运行,会参与会话 fork、追加日志与 Remote 调用。安装前请阅读 源码 与 MIT 许可证,仅从 npm 或你信任的 Git 来源安装。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-revise-chan 把「署名、修订分支、悬浮大纲」接到 DSH 0.2.x 的可行路径上:不篡改冻结历史,用 fork + 追加实现改稿,并在 Web 对话流里补导航。若要安装或看更新说明,可访问 SkillHub 目录页 与 GitHub 仓库。

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

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

小夜