ZhengQingJing/dsh-session-tree

ZhengQingJing★ 1TypeScript最后同步: 2026-08-14

在 GitHub 打开

Git-like immutable session branching for DeepSeek Harness

README 摘要

dsh-session-tree 中文 English dsh-session-tree 是一个可安装的 DeepSeek Harness(DSH)浏览器端插件。它将 DSH 原生 Session fork 呈现为不可变的对话版本树,并允许用户从任意 已加载且已完成的对话轮次 创建子分支。 [!IMPORTANT] 非官方社区插件。 本项目由社区独立开发,不隶属于 DeepSeek,也未经 DeepSeek 背书或维护。DSH 与本插件均处于预发布阶段;升级前请审阅变更,并备份重要的 DSH profile 与 Session 数据。 源码仓库:github.com/ZhengQingJing/dsh-session-tree 当前版本支持: - DeepSeek Harness 源码版 0.1.0-rc.5 (审计基线 47f9438 )。 - DSH Client 公开 API 0.1.0-rc.5 和 0.1.0-rc.6 。 - Node.js ^22.19.0 =24.0.0 。 DSH 尚处于开发者预览阶段。为避免在未来 API 变更上作出不安全的假设,本插件的 peer dependency 仅允许上述两个已验证的预发布版本。 功能 - 在对话页面中新增 版本树 / Branches 标签页。 - 将 SessionSummary.parentId 投影为确定性的当前对话家族树。 - 区分普通 fork 与 subagent 谱系。 - 显示但隔离孤儿节点和循环谱系,不修改持久化记录。 - 列出当前已加载历史窗口中的已完成轮次。 - 调用 DSH 原生 ctx.sessions.fork({ sessionId, atSeq }) 创建子 Session,然后打开新对话。 - 按需加载更早的历史轮次。 - 限制大型版本树和长对话的初始 DOM 工作量。 插件不定义自有 SessionEvent 类型,也不维护独立的分支数据库。卸载插件后,已创建的分支仍是普通、可读的 DSH Session。 安全契约 - 回溯始终创建新的子 Session;绝不截断或重写父 Session。 - 只提供已完成的 turn/end 检查点。 - 当 fork 请求进行中时,当前视图中的其他 fork 按钮全部禁用。 - 不自动重试不确定或部分成功的请求。界面会要求用户先检查版本树,以避免生成重复子分支。 - 禁用 increaseTitle ,避免子 Session 已发布后又因标题修改失败而产生额外的部分成功状态。 - 谱系异常在 UI 中 fail-soft,不会被静默修复。 - 对话分支 不会 撤销文件修改、命令、Git 状态、进程、网络请求、邮件、支付或其他工具副作用。 - 不合并不同分支的上下文,也不重放工具调用。 安装 以下命令安装到 DSH 的 w…

在 GitHub 查看完整 README →
Tools / Devconversationdeepseek-harnessdshdsh-pluginsession-managementtypescriptagent

分类