DeepSeek Harness Hub
← 返回列表

robiteame/dsh-session-tree-extension

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

面向 DeepSeek-Harness…

暂不能直接安装(需源码编译或环境不满足):缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。 · 最近上游提交 2026/9/14 · 已提供中文文档

dsh-session-tree-extension 为 DeepSeek-Harness 提供仅追加、多分支的对话树——一种 PI-Agent 风格的 SessionTree。智能体的历史记录变成一棵由不可变节点组成的树,可在任意历史节点分叉,支持标准 LLM 消息重建、带版本的 JSON 快照,以及嵌入现有聊天输入框的 WebUI 树面板(无 sta

综合分
41
GitHub 分
41
用户评分
★ Stars
20
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add robiteame/dsh-session-tree-extension
缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装,改用 GitHub 源安装
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-session-tree-extension(未发布到 npm,仅可源码安装)
Node 引擎要求 >=22 · 基线 Node 22.19 满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件缺少入口声明

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 07:09:20

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-attachment@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-chat@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-session-tree

npm
CI
license
Harness

面向 DeepSeek-Harness 的仅追加、多分支对话树——可对任意历史节点进行分叉、将分支克隆为新会话,并将整条谱系作为一个合并的 WebUI 图进行浏览。旧历史记录永远不会被编辑或删除。

三个命令:

| 命令 | 功能 |
|---|---|
| /tree | 打开合并的谱系图:每个非子代理会话和节点,均可点击和绑定 |
| /fork | 从任意历史节点分叉——分叉会出现在图中,并作为其源会话下的内联菜单显示 |
| /clone | 将当前对话复制为同一项目下的一个独立新会话 |

截图

树面板(浅色和深色)以及侧边栏的内联分叉分支菜单:

会话树面板,浅色主题

会话树面板,深色主题

其源会话下方的内联 /fork 分支菜单:

内联分叉分支菜单

以 @robiteame 作用域下的四个 npm 包发布:

| 包 | 作用 |
|---|---|
| @robiteame/dsh-session-tree | 载体 Bundle:一次安装即可通过其组合层挂载以下所有内容 |
| @robiteame/dsh-pi-agent-session-tree | 宿主域服务:SessionTree/SessionTreeStore 域模型以及 sessionTree Remote |
| @robiteame/dsh-tool-session-tree | 命令界面:/tree /fork /clone 命令 |
| @robiteame/dsh-client-ui-session-tree | WebUI 树面板:在官方构建上为附加式右侧覆盖层,在已打补丁的构建上为原生详情停靠区 |

安装(用户)

一条命令——从插件市场 UI,或从 Harness 检出目录的 CLI:

dsh plugin --profile  add @robiteame/dsh-session-tree

预构建的 tarball 安装方式相同,且无需构建脚本:

dsh plugin --profile  add robiteame-dsh-session-tree-0.3.0.tgz

安装后,重启该 profile。组合中会新增三行
(pi-agent-session-tree、tool-session-tree、ui-session-tree),分别加载
宿主服务、命令和浏览器面板。验证组合后的层:

dsh --profile  --dump-config   # should list the three session-tree rows
需要 DeepSeek-Harness 0.1.5-rc.2(或兼容的 0.1.5 构建)以及
Cordis ^4.0.2;目标安装会提供这些对等依赖。不会运行安装
脚本——压缩包中已附带预构建的 lib/ 产物。

三个命令

/tree — 打开树面板

/tree 会打开右侧面板,将当前会话的血缘关系显示为一个合并图:
祖先、分叉和克隆会出现在同一个 git 风格的视图中,用户消息、
助手回复、工具调用和模型切换都会显示为相连的节点。共享的复制前缀会去重,
分叉点带有会话徽章,当前会话的路径保持高亮。点击
节点即可绑定;点击属于另一个会话的节点会先打开该会话。
可以折叠单个子树或整个会话分支,以便专注于
图。

/fork — 从任意历史节点分支

/fork 会选择一条更早的用户提示,并从那里生长出一个新分支:
对话会沿着新路径继续,而原始路径保持完整。
分叉通过官方原生 fork API 创建,因此它会以真实的父级关联
出现在会话列表中。该插件会将新分支添加到
合并图中,还会将其渲染为内联可折叠菜单,直接位于
其源会话行下方。两个视图都遵循官方响应式会话列表,
因此新分支无需刷新即可出现。

/clone — 复制到新会话

/clone 会将当前对话——沿其根路径——复制到同一项目下的
一个独立 Session 中。源历史保持
只读;克隆会话由你单独继续。

分支切换与优雅降级

该插件从不修改 Harness 核心文件。它会在运行时
对可选的分支选择引擎 API 进行能力检测:

- 原生模式 — 在带有
dev/session-branch-surface.patch
(Session.selectMessageSurface())的检出上,跳转/分叉会直接切换模型可见的
历史:下一轮会真正从新分支开始。
- 原版模式 — 在未修改的官方 Harness 上,该插件通过官方追加 API
(一个空的 replace surface 事件)以及位于
$DSH_HOME/storages/session-tree/ 下、由插件拥有的 sidecar 来模拟
切换,以实现持久的分支状态。日志保持可恢复有效。
- 投影模式 — 如果连模拟也不可用,导航只会移动
树投影和面板,下一轮仍会保留规范
历史。

每种模式都会如实说明自身:当
会话以非原生模式运行时,Host 日志会打印一次性通知。在机器之间移动原始 session.jsonl.zstd 时,
请连同匹配的 sidecar 文件一起移动。

工作原理

- 仅追加 — 每个节点都是不可变的;分支和跳转只会移动
光标。旧分支永远不会被编辑或删除。
- 每个条目都是一个节点 — 消息、工具调用、模型切换、压缩
记录和分支摘要都会变成带类型的节点;每个节点都有一个唯一的
nodeId 和一个 parentId(根节点为 null)。一个节点可以有多个
子节点——这就是分叉。
- 光标导航——跳转会将活动叶子移动到历史节点;
下一次追加会从那里长出一个新分支。兄弟分支保持完整。
- LLM 上下文——模型始终只接收根节点→光标路径的
标准 messages 数组。

开发(贡献者)

该仓库是一个 pnpm 工作区,独立构建三个实现包
(无需检出 Harness):

pnpm install
pnpm verify      # build + typecheck (host & client) + pack dry-run + vitest
pnpm pack:all    # produce the four tarballs

测试针对已发布的 Harness 包(0.1.5-rc.2)运行——即
stock 模式路径——并从仓库根目录使用 vitest。packages/client/ui-session-tree
中的浏览器测试规范需要 Harness 客户端测试运行时,并且
在源码集成的检出环境中运行。

针对 Harness 检出的源码集成

用于针对 Harness 源码进行调试(原生模式、原生详情停靠栏):

dev/install.sh /path/to/deepseek-harness     # applies both dev patches + copies packages
cd /path/to/deepseek-harness && pnpm install && pnpm run build

每个补丁的作用请参见 dev/README.md。此流程
仅供贡献者使用——用户安装永远不会触及 Harness 检出。

许可证

MIT。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群