dsh-annotation:在 DSH 助手回复上就地批注、批量发送

前言

审阅一条很长的 AI 回复时,麻烦往往不在提出意见,而在说清楚「我说的是哪一句」。常见做法是把原文复制进输入框,再补一段解释,几轮下来上下文就散了。dsh-annotation 的思路是把意见直接留在对应句子旁边:选中原文、就地写下注解、攒齐多条后一次发送,模型按编号逐条回答。下面介绍这个插件。

插件简介

dsh-annotation 是一个 DSH Web 插件,作者 ruisenbai,MIT 许可证,当前版本 0.5.2,分类为客户端插件。它的定位一句话概括:为 DeepSeek Harness 助手回复提供内联、可批量提交的注解,最终通过官方输入框发出。

需要说明的是,作者在 README 中写明:这套交互是独立、非官方地复刻 ChatGPT 的正文注解功能,只复用使用流程,项目与 OpenAI 无隶属或官方合作关系。

核心功能

选中即批注

1、在已完成的助手回复内选中文字,弹出带「添加注解」和「复制」的浮条;蓝色选区保持可选,随时可 Ctrl+C 复制。
2、点击「添加注解」后,在选区旁就地编辑,输入停止 400ms 后自动保存,完整处理中文输入法的组合输入。
3、支持普通注解(note)和空内容注解(仅标记原文,highlight-only)。
4、选区重叠时合并到原有草稿,避免高亮堆叠歧义。

草稿与发送

  • 注解草稿默认自动附加到官方输入框,可在配置中关闭自动附着,或用标题栏回形针手动切换。
  • 官方输入框是唯一发送入口:文字、注解、图片合并为一条任务发送。
  • 输入框上方显示「注解 ×N」紧凑概览,点击展开完整注解列表;数量随新增、删除、附着、发送实时更新。
  • 斜杠命令自动放行:附着状态下输入以 / 开头的内容时,命令不携带注解、不触发发送。
  • 发送失败时文字、图片和注解全部保留,重试沿用同一 submissionId,幂等去重。

模型逐条回复

  • 模型按注解顺序逐条回答,每段以「注解 N:」开头。
  • 回复中通过隐藏标记关联,渲染可悬浮查看的注解芯片。
  • 协议跟随 DSH 中英文 locale,回复解析兼容「注解 N:」「注解 N:」「Annotation N:」等格式。

数据保存与恢复

  • 每条注解保存完整原文、前后文选择器、助手消息 ID、事件序号、注解 ID 与提交 ID;代码记录语言与起止行,表格记录起止行列。
  • 使用 localStorage 恢复未发送草稿、编辑中内容和不可变重试记录,用提交 ID 派生的稳定消息 ID 去重重试。
  • 支持撤销最近一次草稿删除、导出当前 Session 恢复 JSON、清空未提交草稿、显示本地存储占用。

兼容性

  • 可选兼容 dsh-focus-chat,未安装时正常启动、不等待任何服务。
  • 浏览器不支持 CSS Custom Highlight API 时,仍保留编号标记和定位能力。

安装与启用

宿主要求比较严格:

  • DSH Web 0.1.2-rc.1(精确版本,运行 dsh --version 检查)
  • Node.js ^22.19.0>=24.0.0
  • web Profile

推荐直接安装 GitHub Release 提供的预构建包,共三步:

curl -fL -o dsh-annotation.tgz https://github.com/ruisenbai/dsh-annotation/releases/latest/download/dsh-annotation.tgz
dsh plugin --profile web add ./dsh-annotation.tgz
dsh web

第一条命令下载最新发行版的 Tarball,第二条把插件加入 web Profile,第三条启动 DSH Web。如果 DSH Web 已在运行,安装后需要重启。

如果宿主版本不一致,可按版本映射选择对应发行版:v0.5.2 / v0.5.1 / v0.5.0 适配 DSH 0.1.2-rc.1v0.4.0 适配 0.1.2-alpha.3v0.3.0 适配 0.1.2-alpha.1v0.2.4 适配 0.1.1-rc.2

也可以从源码构建:

git clone https://github.com/ruisenbai/dsh-annotation.git
cd dsh-annotation
corepack enable
pnpm install
pnpm verify
dsh plugin --profile web add .
dsh web

先克隆仓库并启用 corepack,pnpm install 解析依赖,pnpm verify 通过校验后,把当前目录加入 web Profile 再启动。

典型用法

1、打开 DSH Web 页面,在一条已完成回复中选中文字,点击浮条中的「添加注解」打开紧凑输入框,填写意见后按 Enter 或点击对号创建草稿。
2、草稿出现在官方输入框上方并默认附加;可选地填写任务文本、附加图片,按官方 Enter 或点击发送按钮,文字、注解和图片会作为一条任务一起发出。
3、在 设置 → 插件 → 插件配置 的「注解」卡片中,可开关「启用 DSH 注解」「新增注解后自动附着到输入框」「显示本地数据控件」,默认都开启。

可覆盖配置

Bundle 会在 Profile 中插入 dsh-annotation 行,可在 Profile Composition 中覆盖以下默认值:

配置项 默认值
commandName annotation_submit
maxPayloadBytes 524288
maxAnnotationsPerSubmission 100
warnSelectionChars 12000

各配置项的具体作用见仓库 README 的配置表;需要留意的是,README 的表格在 warnSelectionChars 处被截断,可能还有未展示的配置项,以仓库文档为准。

适用场景与注意

适合的场景:在 DSH Web 里审阅长回复、意见需要精确到某一句或某段代码、希望把多条反馈合并成一次发送的工作流。

安装前有几点需要确认:

1、插件以当前 dsh 进程权限运行,安装前应自行检查源码与许可证(本项目为 MIT)。
2、宿主版本是精确要求,先运行 dsh --version 确认是否为 0.1.2-rc.1
3、DSH 仍处于预发布阶段,升级前建议阅读仓库内的 docs/compatibility.md 兼容性说明。

小结

dsh-annotation 解决的是审阅长回复时「指哪说哪」的问题:批注留在原文旁,多条攒齐一次发送,模型按编号逐条回应,本地草稿可恢复、失败可重试。如果你日常在 DSH Web 里做逐句反馈,值得一试。

  • 社区目录页:https://www.skillhub.cn/plugins/ruisenbai/dsh-annotation
  • GitHub 仓库:https://github.com/ruisenbai/dsh-annotation
羽毛球分组比赛记分
小程序二维码

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

小夜