从历史轮次新建对话分支并查看家族树
26.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add JUANWANG-BUAA/dsh-session-git该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 55 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/11) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 7 处,展示前 7 条)
- 读取本地文件scripts/prepare.mjs:18
if (!existsSync(config)) { - 读取本地文件scripts/prepare.mjs:19
if (!existsSync(client) || !existsSync(host)) { - 读取本地文件scripts/prepare.mjs:27
if (!existsSync(bin)) { - 执行外部命令来自配置/变量scripts/prepare.mjs:32
const result = spawnSync(bin, ['--config', 'tsdown.config.ts'], { stdio: 'inherit' }) - 执行外部命令来自配置/变量scripts/bootstrap.mjs:30
const result = spawnSync(command, args, { stdio: 'inherit', cwd: options.cwd, env: process.env }) - 读取本地文件scripts/bootstrap.mjs:43
if (!existsSync(join(sibling, 'package.json'))) { - 读取本地文件scripts/bootstrap.mjs:50
if (!existsSync(clientTypes)) {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-slots给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 从历史轮次新建分支
- 查看对话家族树
DeepSeek Harness 的对话谱系:在已完成的轮次处分叉,并展示家族树。不回退文件,也不合并日志。
README
由 DeepSeek 最新模型翻译生成dsh-session-git
dsh-session-git 是 DeepSeek Harness 的插件:把会话当成对话谱系,从已完成轮次新建分支、打开子会话,并在顶栏画出家族树。源会话保持原样。本插件不回退工作区文件,也不合并日志。
兼容 DeepSeek Harness 0.1.0-rc.5 的 fork 语义(锁在 src/policy/host-boundary.ts)。本机 CLI 0.1.0-rc.6 上冒烟通过。升级上游后请跑 pnpm test;若 host-boundary 变红,停止发版。
问题
官方 API 已经支持 fork({ sessionId, atSeq })。Web UI 只在当前 transcript 尾部和侧栏「最后一轮」暴露这个切点。无法从更早的完成轮分支,官方侧栏也故意保持扁平。
| 做法 | 结果 |
| 官方 Branch | 只切最后一轮完成轮;不画家族树 |
| dsh-turn-rewind / dsh-rewind | 文件回退;部分路径会归档源会话 |
| 本插件 | 历史完成轮分叉 + 插件内家族树;不碰文件 |
需要磁盘时间机器时请装 rewind 类插件,不要让本包「撤销那次编辑」。
展开完整文档(README 剩余 1 节)
dsh-session-git
dsh-session-git 是 DeepSeek Harness 的插件:把会话当成对话谱系,从已完成轮次新建分支、打开子会话,并在顶栏画出家族树。源会话保持原样。本插件不回退工作区文件,也不合并日志。
兼容 DeepSeek Harness 0.1.0-rc.5 的 fork 语义(锁在 src/policy/host-boundary.ts)。本机 CLI 0.1.0-rc.6 上冒烟通过。升级上游后请跑 pnpm test;若 host-boundary 变红,停止发版。
问题
官方 API 已经支持 fork({ sessionId, atSeq })。Web UI 只在当前 transcript 尾部和侧栏「最后一轮」暴露这个切点。无法从更早的完成轮分支,官方侧栏也故意保持扁平。
| 做法 | 结果 |
| 官方 Branch | 只切最后一轮完成轮;不画家族树 |
| dsh-turn-rewind / dsh-rewind | 文件回退;部分路径会归档源会话 |
| 本插件 | 历史完成轮分叉 + 插件内家族树;不碰文件 |
需要磁盘时间机器时请装 rewind 类插件,不要让本包「撤销那次编辑」。
解决方案
本插件在官方 fork RPC 之上补产品 UI:
- 在顶栏选一个已完成轮次,按该轮精确的 turn/end seq 分叉;
- 更早的轮次在 turnTail 链空闲时提供「从此处新建分支」;
- 只读父会话芯片与家族树 popover;
- 不归档、不 cancel、不自动 prompt 源会话。
flowchart LR
A[已完成第 N 轮] --> B[executeFork]
B --> C["session.fork atSeq = turn/end"]
C --> D[尽力递增子会话标题]
D --> E[打开子会话]
E --> F[用侧栏 parentId 画家族树]
功能
- 顶栏 从轮次分支:列出当前窗口里已完成轮的 turn/end seq。触发按钮本身不分叉。
- 更早完成轮的历史 turnTail 按钮。最后一轮留给官方 Branch。本插件以 priority: 50 注册,有产物文件时不盖掉官方行。
- 同一 popover 里的家族树:归档或不在列表的父节点显示为占位;origin: subagent 不当作 Git 分支。
- 父会话芯片可打开父会话。
- 同一源会话上重叠的第二次 fork 会被拒绝(error.in-flight)。
- 失败必有 messageKey。产品文案不用「回滚 / 撤销」。
环境要求
- Node.js ^22.19.0 || >=24
- DeepSeek Harness 的 web profile。浏览器半边依赖 conversation 插槽,不适用于 headless。
安装
推荐装 GitHub Release 里预构建好的 tarball。包内已有 lib/。dsh plugin add 会转给 pnpm,用户不用 clone、不用 allowBuilds、也不走 npm 仓库。
dsh plugin --profile web add https://github.com/JUANWANG-BUAA/dsh-session-git/releases/latest/download/dsh-session-git.tgz
dsh --profile web --dump-config | grep session-git
应出现 # == dsh-session-git 层。启动 Web 时不要带着调试用的 DSH_HOME:
env -u DSH_HOME dsh --profile web
钉住某个已发布版本:
dsh plugin --profile web add https://github.com/JUANWANG-BUAA/dsh-session-git/releases/download/v0.1.0/dsh-session-git-0.1.0.tgz
从本仓库开发目录
pnpm install
pnpm run build
dsh plugin --profile web add "$(pwd)"
Git(安装期构建)
钉住所验证过的 commit。pnpm ≥ 10 默认拒跑构建脚本,把包名放进该 profile 的 pnpm-workspace.yaml(通常是 $DSH_HOME/profiles/web/pnpm-workspace.yaml):
dsh plugin --profile web add github:JUANWANG-BUAA/dsh-session-git#<commit-sha>
allowBuilds:
dsh-session-git: true
allowBuilds 等于允许安装期在你的机器上执行这个包的脚本,只允许你信任的来源。日常请用上面的 Release tarball。
本地 tarball
pnpm pack
dsh plugin --profile web add ./dsh-session-git-0.1.0.tgz
tarball 已含 lib/client.js。没有 tsdown.config.ts 时 prepare 会跳过重建。
使用
1. 打开至少有一轮已完成的会话。
2. 用顶栏 从轮次分支 选切点;或在没有产物文件行的更早轮次用 从此处新建分支。
3. 子会话历史停在所选轮结束(含该轮后、下一轮 turn/start 之前的独立事件,例如改标题)。源会话保持原样。
4. 子会话上的 父会话 与家族树可回到源会话。
源会话第 1 轮 ── 顶栏可选 / 历史轮 turnTail 第 2 轮 ── 顶栏可选 / 历史轮 turnTail 第 3 轮(末轮)── 只用官方 Branch
卸载
dsh plugin --profile web remove dsh-session-git
dsh --profile web --dump-config | grep session-git
面板和按钮消失。fork 出来的子会话仍是普通会话,parentSession 还在日志里。官方「在新对话中分支」不变。
配置
- id: session-git
name: dsh-session-git
config:
turnTail: true # false:关掉历史轮按钮,顶栏选择器仍在 prefillComposer: false # 接受后忽略;子会话从不预填
完整选项、默认值与校验在包内 Config schema(src/index.ts)。
当前 Web boot 创建客户端条目时不转发 host yaml,浏览器半边默认仍开启 turnTail;单测覆盖关闭路径。
局限
- 家族树用侧栏 SessionSummary(parentId / 标题 / running / blank / updatedAt)。seedLength 不在摘要里,v0.1 不显示「从 seq N 切开」。
- 归档或不在当前工作区的父节点显示为占位。
- 树只活在本插件 popover 里,不改官方扁平侧栏。
- 该轮若有产物文件,官方 deliverables 占用 turnTail 链,请用顶栏选择器切那一轮。
- 子会话标题按官方 (1) / (n) 递增。从同一源 fork 两次可能撞名。树上看不出切点。
- session.fork 复制的是当前工作区,不是那一轮当时的文件。本插件不回退文件。
- 空白英雄页没有会话顶栏,因此也没有本插件选择器。
- 分支事件 diff 与家族树导出放到 0.2.0。
开发
git clone git@github.com:JUANWANG-BUAA/dsh-session-git.git
cd dsh-session-git
pnpm install
pnpm run check:ci
check:ci 会跑 lint、用 types/ci.d.ts 做类型检查、单测与客户端测试、以及构建。可选的 pnpm run bootstrap 会克隆或构建隔壁的 DeepSeek Harness,以便 pnpm run check 使用真实的客户端 .d.ts。
pnpm test = policy 单测(node:test)+ jsdom 组件测(vitest)。0.1 没有 diff 纯函数。
Git 安装会跑 prepare。打包后的 tarball 不含 tsdown.config.ts,安装时跳过重建。打 GitHub Release 的步骤见 CONTRIBUTING.md;本包不上 npm。
贡献 · 安全 · 许可证
- CONTRIBUTING.md
- SECURITY.md
- MIT © 2026 JUANWANG-BUAA预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
JUANWANG-BUAA/dsh-session-git
从历史轮次新建对话分支并查看家族树
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9