dsh-side-chat:DeepSeek Harness 的只读侧边对话插件

前言

在 DeepSeek Harness(DSH)中做较长任务时,主会话里已经积累了一批已完成 turn、上下文和正在处理的工作。中途如果直接追问一个临时问题,可能会把主 agent 从当前任务轨迹上拉走。

dsh-side-chat 是 DSH 的一个插件:在主会话旁边打开一个只读 side chat,继承已完成的父级上下文,用来回答临时问题,同时让 parent agent 继续独立运行。项目归属于 Lukeknow0,许可证为 MIT。

这是什么

dsh-side-chat 的定位是:一个 read-only side chat plugin for DeepSeek Harness。

它继承 completed parent context,处理临时 side question,并让 parent agent 继续运行。侧边会话用于旁路提问,不把侧边交流写回主对话。

核心能力

dsh-side-chat 的已核实能力包括:

  • 继承 completed parent context,并在临时会话中提问。
  • 保持 parent agent 独立运行,侧边问题不影响主会话继续。
  • 提供自适应界面:可用 Better Sidebar integration 时使用 Better Sidebar;否则使用 collision-aware overlay drawer fallback。
  • 强制只读约束:沙箱只读模式,审批策略为 never
  • 只暴露 parent composition 中实际可用的 read-oriented tools。
  • 执行时拒绝未知或非只读工具,包括 nested Code Mode dispatch。
  • 保留 transcript 和 draft:Minimize、Escape、native tab close、header action 或 Cmd/Ctrl + Shift + . 都不会丢失当前内容。
  • 提供明确的生命周期控制:internal End 需要确认;当 parent 和 child 都 idle 时,进入 30 分钟 parked lease。
  • 支持 English/Chinese UI。

安装与启用

先确认运行环境满足以下要求:

  • DeepSeek Harness:>=0.1.0-rc.7 <0.2.0
  • Node.js:^22.19.0 || >=24.0.0
  • Browser:DSH Web 支持的当前 Chromium/Safari/Firefox

从 npm 安装:

dsh plugin --profile web add @lukeknow0/dsh-side-chat

从 GitHub 安装:

dsh plugin --profile web add github:Lukeknow0/dsh-side-chat

安装完成后,重启运行中的 dsh web 进程,然后刷新现有 Harness 页面。

典型用法

  1. 先在普通 parent conversation 中完成至少一个 turn。
  2. 在 conversation header 中选择 Side Chat,或按 Cmd/Ctrl + Shift + .
  3. 输入一个聚焦的 side question。此时,completed parent context 会在后台静默准备。
  4. 可以切换任务。drawer 会由 parent parked;返回时,它会带着原有 transcript 重新出现。
  5. 需要隐藏 Side Chat 时,可以使用 Minimize、Escape、native tab close、header action 或 Cmd/Ctrl + Shift + .。transcript 和 draft 会保留。
  6. 如果确认结束,选择 internal End 控制并确认。

保留与关闭

  • 一个 parent 同时只能拥有一个 retained Side Chat。
  • parked countdown 只在 parent 和 child 都 idle 后开始。
  • parked lease 为 30 分钟。
  • 如果 countdown 期间 parent 或 child 任一方重新 active,下一次回到 both idle 时会重新开始 30 分钟。
  • 隐藏 Side Chat 会保留可恢复状态。
  • 确认 internal End 会移除可恢复状态。

安全与清理边界

dsh-side-chat 对 child 侧会话使用只读和默认拒绝策略:

  • 继承已完成的父级上下文。
  • 使用沙箱只读模式,审批策略为 never
  • 只暴露 parent composition 中实际可用的 read-oriented tools。
  • 在执行时拒绝未知或非只读工具,包括 nested Code Mode dispatch。

关于清理,需要注意:在 DSH 0.1.0-rc.7 上,temporary side chat 不保证物理删除,因为该版本没有公开 API 用于删除 durable session log。

在 confirmed internal End 或 idle expiry 时,插件会:

  1. 移除 client admission。
  2. abort pending start 或 cancel active work。
  3. dispose live AgentHandle,把 child 从 active runtime 中移除。
  4. 在可用时调用 public workspace archive API。

archived session log 可能仍保留在磁盘上。该项目不会 unlink private persistence files,也不依赖 unstable internal storage paths。

适用场景

dsh-side-chat 适合在 DSH Web 中处理较长任务时,临时提出一些只读问题,例如确认上下文、查看已完成信息或做旁路澄清,同时希望主 agent 保持当前轨迹。

它不适合把侧边会话当作写操作入口。它的工具面受限制:只暴露实际可用的 read-oriented tools,并在执行时拒绝未知或非只读工具。

插件以当前 dsh 进程权限运行。安装前建议检查源码与 MIT 许可证,确认其符合你的使用环境。

链接

GitHub 项目页:https://github.com/Lukeknow0/dsh-side-chat

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

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

小夜