dsh-quote-context:在 DSH 聊天里划词引用与批注

前言

在 DSH 里和模型来回对话时,经常需要针对某一句助手或用户回复继续追问:若只靠复制粘贴,原文会挤进输入框、上下文边界模糊,刷新后也难以精确回到那句话。部分桌面聊天产品已有「选中消息 → 引用/评论 → 发送后仍可跳回原文」的交互;DeepSeek Harness 社区里,维护者 Yhx888 的客户端插件 dsh-quote-context 把同类能力接到 DSH Web 客户端,视觉沿用 DSH 输入卡与语义 CSS 变量,实现上是对 OpenChamber 聊天引用模式的 DSH 原生复刻(不搬运 OpenChamber 外观)。下面介绍它做什么、如何安装与日常使用,以及与其它引用类插件并存时的注意点。

这是什么

dsh-quote-context 是分类为「客户端」的 DSH 插件:在消息正文里选中文字,可「引用」或带批注的「评论」;引用内容常驻在输入卡 [data-composer-card] 上方,发送后消息内渲染为可跳回原文的引用块。引用原文不会写入输入框正文,输入框只保留你自己要发送的文字。

DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

以下能力均来自仓库 README 与 package.json 说明。

选区浮条与评论

在任意用户或助手消息里选中文字,浮出「引用」「评论」。Esc 或点击外部可关闭浮条。选「评论」时,浮条内联 textarea:Enter 提交、Shift+Enter 换行;确认后引用与批注一并进入引用区。选「引用」则不写批注,直接进入引用区。

常驻引用区

引用区插在输入卡之前:输入卡尺寸不变,上方内容上移。每条显示序号、单行原文、批注,支持编辑批注与删除;删除后序号自动重排,支持清空。

发送后的引用块与刷新回读

发送后,消息里出现「引用自先前的消息」、原文(默认 4 行折叠)、批注,以及「在原消息中显示」。点击可滚动回原消息并高亮选中过的原文。引用坐标作为传输行写入消息正文(线格式,见下文),刷新会话后仍可解析并跳回。

主题

样式只使用 DSH 语义 CSS 变量(--dsw-alias-*),浅色与深色自动适配。

安装与启用

插件为纯 Node 实现,无额外构建链。安装前请自行查看仓库源码与 MIT 许可证;插件在当前 DSH 进程权限下运行,安装即信任该包行为。

从 Release tarball 安装(README 推荐):

dsh plugin --profile web add https://github.com/Yhx888/dsh-quote-context/releases/download/v0.1.1/dsh-quote-context-0.1.1.tgz

从 GitHub 源码安装(README 注明:pnpm 11 默认拦截 git 依赖的构建脚本,遇 allowBuilds 提示时按提示放行后再运行):

dsh plugin --profile web add github:Yhx888/dsh-quote-context

本地开发 link:

dsh plugin --profile web add "link:C:/path/to/dsh-quote-context"

路径含空格时直接使用空格;README 说明 pnpm 11 会把 %20 当字面量目录,不要编码。

挂载后通过包内 cordis.patch.yml 插入 quote-context Loader 行。桌面端 profile 由 Electron 独占管理,CLI 不直接写入;需在应用内「插件」页从本仓库目录安装,或按 profile 的 pnpm 流程加入 dsh.profile.bundles。更细的验证步骤见仓库 docs/verification.md。

典型用法

经过上面的安装步骤后,可按 README「使用」一节操作:

  1. 在任意用户或助手消息里选中文字。
  2. 点「引用」直接加入引用区;点「评论」写批注后 Enter 或「添加」。
  3. 在引用区可点原文跳回来源、点编辑批注、点删除。
  4. 在输入框继续写问题并发送;引用块随消息发出,并在消息里显示为引用卡片。

发送时,引用源 codec 将内容展开为 DSH 可读的纯文本线格式(界面渲染时会剥离坐标行,模型仍可读):

> ❝ 原文第一行
> 原文第二行
> ❞ 批注第一行
> 批注第二行
> ※ │qc1:<base64url(JSON)>

无批注时省略 ❞ 段;※ 行为传输坐标。坐标 JSON 含 {v,s,i,t,c,a}(版本、会话、引用 id、原文、批注、锚点)。解析失败时保持普通文本,不阻断发送。

适用场景与注意

适合谁: 需要在 DSH Web 聊天里针对某段历史消息追问、并希望发送后仍能一键回到原文的开发者或日常 DSH 用户。

兼容性(README): 目标为 DSH 0.2.1-rc.3 Web 客户端;依赖 DOM 契约如 [data-conversation-content]、[data-composer-card]、[data-composer-input] 等。依赖宿主服务 slots、locale、conversation.input、inputTriggers;缺失时引用动作会提示失败,不会把半截内容写进消息。

与其它插件: 与内置 @ 引用、dsh-quote-deck 不共享 trigger/source。若同时安装,两者都会争夺选区浮条,README 建议二选一。

暂不支持(BACKLOG): 文件、终端、diff、PR、浏览器等其它上下文类型;朗读、笔记、右侧引用清单、引用区拖拽排序等——以仓库 BACKLOG 为准。

结尾

dsh-quote-context 把「划词 → 引用区 → 发送 → 跳回原文」接到 DSH Web 客户端,并用线格式保证刷新后可回读。需要进一步了解特性与截图时,可看仓库 README;安装与问题反馈分别见社区目录页与 GitHub Issues。

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

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

小夜