← Back to home@1985899182

dsh-harness-chat-control

ChatGPT-style stop, revise, quote, and side-question controls for DeepSeek Harness Desktop UI.

Stars
6
Language
JavaScript
Created
Sep 4, 2026
Updated
Oct 21, 2026
GitHub repo

Introduction

dsh-harness-chat-control

English · 日本語 · 한국어

让 DSH Desktop 的对话交互接近 ChatGPT。

项目目标:复刻 ChatGPT 的两种引用对话形式。

  1. 主对话引用:在当前会话引用回答,输入问题后继续在原会话中回答。
  2. 侧边栏引用对话:把引用带到 Better Sidebar,在独立侧边会话中追问,主会话保持不变。

界面示例

主对话引用

选择回答中的文字,或点击回答操作栏的“引用”。引用会保留为输入框中的注释胶囊;用户编辑完问题后再发送。

主对话引用示例

侧边栏对话引用

点击“侧栏问”或选中文字工具条中的“在侧边聊天中提问”。侧边栏沿用 Better Sidebar 的原生对话栏,可切换模型;引用胶囊之外的文字全部由用户输入,点击发送后才会开始回答。

侧边栏对话引用示例

功能

  • 主对话引用:引用整条回答或选中的片段;不会把 Markdown 标记(如 >、---)污染到正文。
  • 原生注释胶囊:引用在输入框中显示为 1 条注释 胶囊,用户可先编辑问题、移除引用,再决定是否发送。
  • 内置侧边栏:直接内置并锁定 dsh-better-sidebar@0.24.1 的 SideChatView、转录映射和样式;未安装 Better Sidebar 时也能使用,已安装其他版本时仍由本项目的侧边实现生效。
  • 侧边栏引用:沿用 Better Sidebar 原生对话布局和 DSH 原生会话/模型能力;主会话与侧边会话相互独立。
  • 侧边原生对话栏:权限、模型菜单、停止和发送状态都由原生对话栏负责,避免重复事件导致整页卡死。
  • 模型选择:侧边会话直接使用原生模型选择器,模型设置只作用于当前侧边会话。
  • 编辑并重发:用户消息点击铅笔后回到原生输入框;发送后在原会话位置覆盖显示新的分支,不创建一串重复新会话。
  • 停止回答:复用 DSH 原生停止/发送状态,引用和侧边栏不会拦截或重复提交原生事件。

插件只增加引用胶囊、入口和会话路由;侧边栏的布局、转录和会话生命周期来自锁定的 Better Sidebar 0.24.1 源码,避免外部插件版本冲突。

适配版本

组件版本
DSH Desktop(Windows)0.11.0 / 0.12.0
DeepSeek Harness / @deepseek-ai/dsh0.2.0-rc.2
dsh-better-sidebar0.24.1
Node.js>=20
pnpm10.x 或 11.x

dsh-better-sidebar@0.24.1 面向 Harness 0.2.0-rc.2。使用 DSH Desktop 0.11.0 / 0.12.0(内置 Harness 0.2.0-rc.2)时请固定为 0.24.1。

安装

统一使用 DSH 官方插件命令安装。先完全退出 DSH Desktop,在 Windows PowerShell 中执行:

$env:DSH_HOME = "$env:APPDATA\dsh-desktop\harness"
dsh plugin --profile web add --save-exact --allow-build=node-pty "git+https://github.com/1985899182/dsh-harness-chat-control.git#v0.3.4"

如果 dsh 不在 PATH,使用 DSH Desktop 自带的 CLI;底层仍是同一条 dsh plugin 安装命令:

$desktopNode = 'D:\DSH\DSH Desktop\resources\app\node_modules\node\bin\node.exe'
$desktopDsh = 'D:\DSH\DSH Desktop\resources\app\node_modules\@deepseek-ai\dsh\lib\bin.js'
$env:DSH_HOME = "$env:APPDATA\dsh-desktop\harness"
& $desktopNode $desktopDsh plugin --profile web add --save-exact --allow-build=node-pty "git+https://github.com/1985899182/dsh-harness-chat-control.git#v0.3.4"

命令使用显式 HTTPS Git 地址,避免 pnpm 将 GitHub 简写解析成 SSH。若本机通过代理联网,请在执行前设置 HTTP_PROXY、HTTPS_PROXY 或 ALL_PROXY。首次安装或当前插件尚未运行时,安装完成后请完全退出并重新打开 DSH Desktop;已运行插件的升级按 DSH 提示刷新页面即可。

如果 profile 中已经是 Sidebar 0.24.x,仍然使用同一个 dsh plugin 命令先固定兼容版本:

$desktopNode = 'D:\DSH\DSH Desktop\resources\app\node_modules\node\bin\node.exe'
$desktopDsh = 'D:\DSH\DSH Desktop\resources\app\node_modules\@deepseek-ai\dsh\lib\bin.js'
$env:DSH_HOME = "$env:APPDATA\dsh-desktop\harness"
& $desktopNode $desktopDsh plugin --profile web add --save-exact --allow-build=node-pty dsh-better-sidebar@0.24.1

然后重新执行上面的标准安装命令。

使用方式

  1. 主对话:在回答操作栏点击“引用”,或选中文字后选择“添加到对话”;在输入框中补充问题,再发送。
  2. 侧边栏对话:点击“侧栏问”,或在选中文字工具条选择“在侧边聊天中提问”;侧边栏打开后选择模型、输入问题,再发送。
  3. 编辑重发:点击用户消息旁的铅笔按钮,在原生输入框修改文字并发送;当前会话会在原位置显示新回答。
  4. 标签管理:右击右侧栏的标签,菜单中可直接“关闭其他标签”“关闭右侧标签”“关闭左侧标签”。

开发校验

npm test

校验清单、加载器声明、PowerShell 安装脚本和 JavaScript 语法。

版本

当前里程碑:v0.3.4,适配上表中的 DSH Desktop 0.11.0 / 0.12.0 与 Harness 0.2.0-rc.2,并内置 dsh-better-sidebar@0.24.1 的侧边对话实现。本版在右侧栏标签的右键菜单中增加“关闭其他标签 / 关闭右侧标签 / 关闭左侧标签”:菜单项通过宿主 sidebar.right.tab.menu.item 插槽注册,关闭统一走宿主的 closeIn,左右顺序以实际标签栏为准,没有可关闭目标时对应项自动置灰。同时保留 v0.3.3 的侧边对话多标签修复:插件在安装时和每次打开前把 sidechat 标签类型切换为宿主原生的多实例模式(与内置终端、浏览器相同的 multiple 开关),每次引用都会创建独立的侧边对话标签,引用多个名词时可同时并列多个对话。已在 DSH Desktop 0.12.0(内置 Harness 0.2.0-rc.2)实测:连续三次在主对话选中文本并点击“在侧边聊天中提问”,侧边栏依次出现三个各自的侧边对话标签,每个标签保留自己的引用注释且互不覆盖;三个批量关闭项在同一窗口验证通过。升级 DSH 或 Harness 主版本后,请重新验证原生 Slots、侧边对话 API 和状态接口。

许可证

MIT