dsh-plugin-ui-session-fork
deepseek harness 插件 增加会话分组方式“树形”
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 25, 2026
- Updated
- Aug 25, 2026
Introduction
dsh-plugin-ui-session-fork
中文 | English
为 dsh web 工作区侧栏新增一种「树形」(Tree)分组方式。
在树形模式下,顶层与「按工作区」分组保持一致;每个工作区内的会话则按分叉(fork)谱系嵌套: 从某个会话分叉出来的会话会缩进显示在其源会话下方,并在父会话左侧显示折叠按钮(样式与工作区行一致)。 其余会话操作(打开、重命名、分叉、归档、悬停卡片、状态圆点)均保持不变。
该插件是内置工作区浏览器 / 选择器的完整替代:它是 @deepseek-ai/dsh-client-ui-workspace 的分支, 额外增加一种分组选项,并使用 workspace-tree 本地化命名空间注册,因此不会与内置字典冲突。
已知问题
当前项目是以学习为目的建立,代码由 deepseek harness 生成,使用模型为 deepseek-v4-pro-0831,当前成本为 RMB 13.91 元。 由于是对 ui-workspace 插件的粗暴替换,所以应该不会随工作区升级而进行更新,之后考虑如何改进这一点。
安装
- 将包添加到 web profile(转发给 pnpm)
dsh plugin --profile web add /path/to/dsh-plugin-ui-session-fork
- 在 $DSH_HOME/profiles/web/cordis.patch.yml 中禁用内置工作区 UI
- id: ui-workspace
disabled: true
- insert:
- id: ui-workspace-tree
name: dsh-plugin-ui-session-fork
然后重启 dsh web,选择「视图选项 → 分组方式 → 树形」。
工作原理
- lib/index.js 是空的 host 半侧(无 host 侧行为)。
- lib/client.js 是浏览器半侧,通过 dsh.client 清单与 exports[./client] 被发现。 它把浏览器注册到 sidebar.workspaces、把选择器注册到 conversation.hero.workspace, 并像内置插件一样声明 directoryFlow 子槽。
- 新的 tree 分组值流经现有的视图 store(setGroupBy 接受任意字符串)、视图选项菜单, 以及由 deriveTree / deriveForkForest / flattenForkTree 驱动的新 TreeList 主体。 分叉嵌套读取运行时已投影到会话列表中的 SessionSummary.parentId。