Back to home@1985899182

dsh-harness-chat-control

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

Stars
0
Language
JavaScript
Created
Sep 4, 2026
Updated
Sep 7, 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.17.1SideChatView、转录映射和样式;未安装 Better Sidebar 时也能使用,已安装其他版本时仍由本项目的侧边实现生效。
  • 侧边栏引用:沿用 Better Sidebar 原生对话布局和 DSH 原生会话/模型能力;主会话与侧边会话相互独立。
  • 侧边原生对话栏:权限、模型菜单、停止和发送状态都由原生对话栏负责,避免重复事件导致整页卡死。
  • 模型选择:侧边会话直接使用原生模型选择器,模型设置只作用于当前侧边会话。
  • 编辑并重发:用户消息点击铅笔后回到原生输入框;发送后在原会话位置覆盖显示新的分支,不创建一串重复新会话。
  • 停止回答:复用 DSH 原生停止/发送状态,引用和侧边栏不会拦截或重复提交原生事件。

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

适配版本

组件版本
DSH Desktop(Windows)0.7.2
DeepSeek Harness / @deepseek-ai/dsh0.1.2-alpha.1
dsh-better-sidebar0.17.1
Node.js>=20
pnpm10.x11.x

dsh-better-sidebar@0.18.x 面向 Harness 0.1.2-rc.1+,会读取 alpha.1 没有的 connection.state.getSnapshot()。使用 DSH Desktop 0.7.2 时请固定为 0.17.1,否则点击新对话可能出现 Cannot read properties of undefined (reading 'getSnapshot')

安装

在 Windows PowerShell 中执行当前稳定版本的一键安装命令:

$script = (irm 'https://raw.githubusercontent.com/1985899182/dsh-harness-chat-control/v0.2.64/scripts/install.ps1').TrimStart([char]0xFEFF)
& ([scriptblock]::Create($script)) -Ref 'v0.2.64'

安装器会把插件放入 DSH Desktop 的 web profile。首次代际安装或当前插件未运行时会直接暂存并提示完全退出、重新打开 DSH Desktop;只有已运行插件升级才同步 Web Client 并通过 HMR 更新,随后刷新页面(Ctrl+R)即可。

安装源使用显式 HTTPS,不会让 pnpm 将 GitHub 简写解析成 SSH。脚本会优先使用已有的 HTTP_PROXY/HTTPS_PROXY 或 WinINET 代理,并把代理传给 pnpm、git、node;也可以显式指定:

& ([scriptblock]::Create($script)) -Ref 'v0.2.64' -Proxy 'http://127.0.0.1:7897'

网络较慢时可指定 npm registry 和重试次数:

& ([scriptblock]::Create($script)) -Ref 'v0.2.64' -Registry 'https://registry.npmjs.org/' -FetchRetries 5

命令通过内存中的 scriptblock 执行,不要求修改 PowerShell 执行策略;若保存为 .ps1 后直接运行,请使用 powershell -ExecutionPolicy Bypass -File

如果 profile 中已经是 Sidebar 0.18.x,先执行兼容修复:

$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 dsh-better-sidebar@0.17.1

然后重新执行上面的一键安装命令并刷新页面。

如果 dshmarket 热挂载返回 502 或其他错误,安装器会保留脱敏后的 HTTP 状态和响应体,并明确提示需要冷启动;不会把代理超时误报成安装成功。

使用方式

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

开发校验

npm test

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

版本

当前里程碑:v0.2.64,适配上表中的 DSH Desktop 0.7.2 / Harness 0.1.2-alpha.1,并内置 dsh-better-sidebar@0.17.1 的侧边对话实现;本版本让侧边栏模型选择和图片发送都走 DSH 主对话的原生 InputBar/附件准入链路,并修复隔离加载路径下消息 ID 缺失造成的 undefined is already pending 请求失败。升级 DSH 或 Harness 主版本后,请重新验证原生 Slots、侧边对话 API 和状态接口。

许可证

MIT