dsh-session-tree-extension 给 DeepSeek-Harness 加上只追加、多分支的对话树——PI-Agent 风格的 SessionTree。智能体的历史变成一棵不可变节点树,任意历史节点都能分叉…
数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
dsh plugin --profile web add robiteame/dsh-session-tree-extension状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 15:49:24
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 包内无可扫 JS
- · TS 源码(可能为非 JS 实现或未发布源码),无法判定
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
@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给这个插件打分还没有人投票↓
界面预览
3 张 · 点击查看大图功能亮点
- 只追加多分支对话树
- 任意历史节点分叉
- 带版本JSON快照
展开完整介绍(168 字)↓
dsh-session-tree-extension 给 DeepSeek-Harness 加上只追加、多分支的对话树——PI-Agent 风格的 SessionTree。智能体的历史变成一棵不可变节点树,任意历史节点都能分叉,支持标准 LLM 消息重建、带版本的 JSON 快照,还有嵌进现有聊天输入框的 WebUI 树面板(无需单独
README
由 DeepSeek 最新模型翻译生成展开完整文档(README 剩余 1 节)
dsh-session-tree 为 DeepSeek-Harness 提供只追加、多分支的对话树——从任意历史节点分叉,把分支克隆成新会话,再把整条血缘当成一张合并的 WebUI 图来浏览。旧历史永远不会被编辑或删除。 三条命令: | 命令 | 作用 | | /tree | 打开合并的血缘图:所有非子代理会话与节点,可点击、可绑定 | | /fork | 从任意历史节点分叉——分叉会出现在图里,也会以行内菜单的形式挂在来源会话下方 | | /clone | 把当前对话复制成一个独立的新会话,归入同一项目 | 截图 树面板(浅色与深色),以及侧边栏里的行内分叉分支菜单: 会话树面板,浅色主题 会话树面板,深色主题 来源会话下方的行内 /fork 分支菜单: 行内分叉分支菜单 以四个 npm 包发布,统一在 @robiteame 作用域下: | 包 | 职责 | | @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 树面板:Harness 0.2 右侧边栏里的原生标签页,对旧版官方构建另提供叠加式浮层兜底 | 安装(用户) DeepSeek Harness Desktop 打开 Settings → Plugins → Market,搜索 @robiteame/dsh-session-tree,安装后重启桌面应用。桌面插件管理器会激活载体 bundle,下次启动时就会组合出三行(pi-agent-session-tree、tool-session-tree、ui-session-tree),分别加载宿主服务、命令和浏览器面板。 桌面应用目前内置 0.2.1-rc.2 版命令行,它的 dsh plugin 命令只会转发给 pnpm,不会激活新装好的 bundle。请改用应用内市场;重启之后,/tree 就能打开面板。 命令行(0.2.1-rc.3 及更新版本) 如果命令行自带 0.2.1-rc.3 插件管理器,一条命令就能安装并激活这个包: dsh plugin --profile <profile> add @robiteame/dsh-session-tree 预构建的 tarball 安装方式相同,不需要构建脚本: dsh plugin --profile <profile> add robiteame-dsh-session-tree-0.7.0.tgz 安装完成后重启配置档。验证组合后的层: dsh --profile <profile> --dump-config # should list the three session-tree rows 需要 DeepSeek-Harness 0.2.1-rc.2 到 0.2.1-rc.3(最新发布的 next 是 0.2.1-rc.3;当前桌面版是 0.2.1-rc.2)以及 Cordis ~4.0.5;目标安装会提供这些同级依赖。不会运行安装脚本——tarball 自带预构建的 lib/ 产物。 三条命令 /tree —— 打开树面板 /tree 打开右侧面板,把当前会话的血缘关系显示为一张合并图:祖先、分叉和克隆出现在同一个 git 风格视图里,用户消息、助手回复、工具调用和模型切换显示为相连的节点。共享的复制前缀会去重,分叉点带会话徽标,当前会话的路径保持高亮。点击节点即可绑定;点击属于其他会话的节点会先打开那个会话。可以折叠单个子树或整个会话分支,以便聚焦图表。 /fork —— 从任意历史节点分叉 /fork 选一条更早的用户提示词,从那里长出新分支:对话沿新路径继续,原路径保持完整。分叉通过官方原生 fork API 创建,因此会出现在会话列表里,并带有真实的父子关联。插件把新分支加入合并图,还会在源会话那一行正下方,把它渲染成内联的可折叠菜单。两个视图都跟随官方响应式会话列表,所以新分支无需刷新就会出现。 /clone —— 复制成新会话 /clone 把当前对话——沿其根路径——复制成同一项目下的一个独立会话。源历史保持只读;克隆归你,可以单独继续。 分支切换与优雅降级 插件从不修改 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 workspace,独立构建三个实现包(无需 Harness checkout): pnpm install pnpm verify # build + typecheck (host & client) + pack dry-run + vitest pnpm pack:all # produce the four tarballs 测试针对已发布的 Harness 包(0.2.1-rc.3)运行 —— 即 stock 模式路径 —— 从仓库根目录用 vitest 执行。同一套测试对 0.2.1-rc.2 也通过,那是当前桌面构建捆绑的版本。packages/client/ui-session-tree 中的浏览器测试在独立套件里同时覆盖 0.2 原生右侧边栏注册和旧的 overlay 回退。 针对 Harness checkout 的源码集成 针对 0.2.1 Harness 源码 checkout 调试(原生分支切换和源码集成): 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 checkout。 许可证 MIT。
预览分享卡片长什么样 ↓
dsh-session-tree-extension 给 DeepSeek-Harness 加上只追加、多分支的对话树——PI-Agent 风格的 SessionTree。智能体的历史变成一棵不可变节点树,任意历史节点都能分叉…
相关插件 · UI / 主题
这是你的仓库?认领条目