dsh-side-chat

by ahggg

会话与消息github收录于 08-23

不离开当前 DeepSeek Harness 对话,就对选中文本追问一个聚焦的后续问题

Ask a focused follow-up about selected text without leaving your current DeepSeek Harness conversation.

安装

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

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

在不离开当前 DeepSeek Harness 主会话的情况下,针对选中的文本发起一个独立的侧边对话。

兼容性:当前版本仅适配 @deepseek-ai/dsh@0.1.0-rc.7。

English

先在 Side Chat 中询问选中文本,再把带批注的选区加入主会话

安装

如果尚未安装 DSH rc.7,先安装它。添加插件前只刷新这个包的 registry metadata,避免刚发布新版本时 pnpm 仍复用旧的 latest:

npm install --global @deepseek-ai/dsh@0.1.0-rc.7
pnpm cache delete "@ahggg/dsh-side-chat"
dsh plugin --profile web add @ahggg/dsh-side-chat@latest

从希望 Agent 操作的真实工程目录启动 DSH:

cd E:\path\to\your-project
dsh web --port 3080

打开 DSH 输出的网址,插件会自动加载到 Web 客户端中。

本地链接调试

当 dsh plugin --profile web list 显示插件来自 link: 工作区时,DSH 加载的是被 Git 忽略的 lib/client.js,而不是 src/。切换分支或修改客户端源码后,需要重新构建并重启 dsh web 进程:

pnpm install --frozen-lockfile
pnpm build

使用 Side Chat

在手机或平板上,可以长按已完成消息中的文字进行选中。有足够空间时,Side Chat 操作条会显示在选区下方,把浏览器系统选文菜单留在上方。你可以直接在触摸操作条中使用 Add to chat、More details 或 Ask in side chat。

  1. 在主会话中至少完成一轮对话。
  2. 在一条已完成的用户或助手消息内选中文字。
  3. 点击 Add to chat 可以先填写一条可选批注,再把引用加入主会话输入框;点击 More details 可以立即发送详细解释请求;点击 Ask in side chat 可以自己输入聚焦问题。
  4. 自己输入消息或问题时,按 Enter 发送。
  5. 完成后按 Esc,或者点击 × 关闭。

常用操作:

  • Shift+Enter 换行。
  • 使用发送按钮旁的模型控件可以选择 provider/model 及其可用的推理等级;该选择只属于 Side Chat,不会修改主会话,并会成为下次打开 Side Chat 时使用的全局默认值。
  • 点击 Add to chat 后,按 Enter 或点击 Save 保存 annotation;点击批注框外部或点击 Cancel 则直接取消。
  • Add to chat 会保留输入框中已有的草稿,并可把多段带序号的文本及各自的可选批注汇总到同一个 annotation 胶囊中。
  • 输入框会随内容自动增高,达到最大高度后在内部滚动。
  • 回复生成期间,发送图标会替换为停止按钮。
  • Assistant 回复使用 DSH 原生 Markdown 渲染。
  • hover N annotations 可以预览每一段所选文本及对应批注。
  • 发送前可以 hover annotation 胶囊并点击 × 移除;发送后,同一个胶囊会显示在用户消息上方。
  • 主会话会一直保留在页面中,不会自动切换到 child Session。

会话和数据如何处理

第一次发送时,插件会在所选消息处创建一个真实的 DSH Session fork。child 会继承完整事件前缀、preset 和 workspace;初始模型优先使用最近一次被接受的 Side Chat 选择,没有已保存选择时才快照主会话配置。之后修改模型或推理等级只会作用于 child 的后续 step,既不会修改主会话,也不会继续跟随主会话切换。保持前缀不变有利于供应商的 prompt cache 复用,但不保证一定命中缓存。

关闭 Side Chat 时,插件会停止正在运行的任务、归档 child Session,并释放其 Agent;不会删除 child 的磁盘历史。因此,child 和复制的完整前缀会占用正常的 DSH Session 存储空间。

父会话与 child 共享同一个 workspace。Side Chat 中产生的文件修改、命令执行及其他工具副作用都是真实的,关闭面板不会撤销它们。

当前限制

  • 选区必须位于同一条已完成消息内。
  • 暂不支持附件和 /side。
  • 关闭后不能从面板重新打开原 Side Chat。
  • 暂无自动历史清理或“保留为普通会话”操作。
  • 已归档的 child 可能短暂出现在普通会话列表中。

升级或卸载

刷新这个包的 registry metadata,升级到最新稳定版,然后重启 DSH:

pnpm cache delete "@ahggg/dsh-side-chat"
dsh plugin --profile web update @ahggg/dsh-side-chat --latest

卸载插件:

dsh plugin --profile web remove @ahggg/dsh-side-chat

许可证

MIT

References

原始 README: https://github.com/AHGGG/dsh-side-chat/blob/master/README.zh-CN.md ↗