插件目录 / Developer / dsh-conversation-branches
dsh-conversation-branches
已验证 · 实测可装 Caramel-Geass
功能简介
Developer 类别的 DeepSeek Harness 插件。
可用 — 实测通过,早期项目
Developer 类别的 DeepSeek Harness 插件。 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
@deepseek-ai/dsh-conversation-branches
对话分支(conversation branches)插件:在主对话中选中一段文本,即可在右侧详情列开启 IM 风格的独立问答分支。分支问答由流式模型生成、随会话持久化,支持追问、折叠、定位高亮与删除。
这是一个 dsh bundle 插件:包内声明了 dsh.bundle,dsh plugin add 后会自动成为 profile 的 composition 层,无需手写挂载配置。
功能特性
- 选区提问 — 选中主对话文本即弹出提问框,针对选中片段发起独立问答,不打断主对话
- IM 气泡对话 — 分支以聊天气泡呈现,流式输出,支持同一分支内多轮追问
- 随会话持久化 — 分支以
fork/branch事件写入会话自身的事件日志,与主对话同一持久化管线;重新加载会话时按事件顺序重放 - 定位高亮 — 点击分支卡片中的"选中片段"定位回主对话并短暂高亮
- 折叠 / 删除 — 分支卡片可折叠为一行,可删除
安装
作为 bundle 加入 profile:
dsh plugin --profile <name> add @deepseek-ai/dsh-conversation-branches
harness 会检测到该依赖声明了 dsh.bundle,自动把它追加进 profile 的 bundle 层。
也可以手动加入 profile 的依赖与 bundle 层:
// <profile>/package.json
{
"dependencies": {
"@deepseek-ai/dsh-conversation-branches": "^0.1.0-rc.6"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"@deepseek-ai/dsh-conversation-branches"
]
}
}
}
使用
- 在主对话正文中选中一段文本
- 弹出提问框,输入问题后回车(或点击"提问")
- 右侧详情列出现分支面板,开始流式回答
- 可继续"追问";点击"选中片段"定位回主对话;折叠或删除分支
工作原理
Host 端(
lib/index.js):ConversationBranchesService,暴露load / save / ask / askPoll四个 Remote 方法。ask以主对话上下文 + 选中片段 + 分支历史构造提示词,后台消费llm.stream增量,askPoll轮询取回;分支数据经save作为fork/branchlog-only 事件写入会话日志。Client 端(
lib/client.js):注册到三个 slot:Slot 用途 conversation.session.header.utilities分支面板开关按钮 details分支面板(优先级 -1,替换默认详情列) shell.overlay选区提问弹窗与文本高亮层
命名空间解析说明:插件自挂载
conversationBranchesRemote 命名空间。挂载者与本插件是兄弟 fiber,ctx.remote.conversationBranches的 fiber-store 链解析不到它(自注入会死锁),因此统一通过ctx.get('remote.conversationBranches')走共享 reflect store 解析。
开发
conversation-branches/
├── lib/
│ ├── index.js # Host 服务(构建产物)
│ ├── client.js # Client 插件(构建产物)
│ └── types/ # 类型声明(.d.ts)
├── src/
│ ├── index.ts # Host 服务源码
│ └── client.tsx # Client 源码
├── cordis.patch.yml # bundle patch(自插插件行)
├── package.json
├── README.md
└── LICENSE
运行依赖:@deepseek-ai/dsh-session、@deepseek-ai/dsh-typert-protocol;peer 依赖:react、@deepseek-ai/dsh-client-connection。
License
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-conversation-branches」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:Caramel-Geass/dsh-conversation-branches Headless(CLI)profile:
dsh plugin --profile headless add github:Caramel-Geass/dsh-conversation-branches 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。