dsh-session-surgeon

DSH PLUGIN开发与运行时

仓库 xiaoshenming/dsh-session-surgeon · npm dsh-session-surgeon

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 为 DeepSeek Harness 会话提供复制 ID、检查与修复功能,解决会话无法加载的问题。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 10 复刻 3 · 未关闭 issue 0
最近更新 2026-10-11 创建于 2026-08-18
README 7.2 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:xiaoshenming/dsh-session-surgeon#v0.1.0
兼容 DSH 版本0.2.0-rc.2 等 11 个版本版本不匹配时安装会报错
Node.js 要求^22.19.0 || >=24.0.0来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/dsh-tools@>=0.1.0-rc.6 <0.2.0需要同时安装的同级依赖
npm 包名dsh-session-surgeon可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-session-surgeon:DeepSeek Harness 的会话修复与复制 ID 插件

  • 复制会话 ID
  • 检查会话健康
  • 修复损坏会话
  • 压缩与导出

适用场景

文件读写

上游标签

deepseek-harnessdshdsh-pluginjsonlrepairsession

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方xiaoshenming仓库 dsh-session-surgeon · 默认分支 main
分类开发与运行时developer
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue10 / 3 / 0收录时的数值,非实时
创建 / 更新2026-08-18 · 2026-10-11最后推送 2026-10-11
本站收录2026-08-19首次进入本站目录的时间

README 全文

7.2 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-session-surgeon

左侧会话 ⋯ → 复制会话 ID,贴进新对话,让新会话接着学旧会话。这是 Codex 那种「拿线程 ID 继续聊」的用法;官方菜单只有重命名 / 分叉 / 归档,没有复制 ID。

同时能修好打不开的 DeepSeek Harness 会话(seq gap / torn zstd / 末帧之后整段 0 字节的崩溃残渣 #9372:崩溃落在 write() 与 fsync() 之间,文件长度落盘而帧数据没落盘,官方扫描器在第一个零字节处判坏魔数、整条拒载,其实已提交的帧帧完好 —— 我们点出边界并丢掉那串 0 / 孤立代理字符 / 消息缺 ID)。崩溃恢复插进来的短闭包如果撞上还活着的写者(#1586),会丢掉那几条合成闭包、保住后面的真内容,而不是一刀切到第一个缺口。packed 行只重叠已经提交的前缀、后面连续时(#5151),会接上尚未提交的后缀。文件已经 seq gap 时 compact 会拒绝,先停写者再 repair。Alpha 把 sourceEventSeqs 压成区间(#5160)时:0.1.2-rc.1 起官方读盘就会展开,surgeon 不再改文件;更旧的 rc.2 仍打不开,repair 才会把 [start,end] 无损展开成密集整数。Alpha 写入、rc.2 不认识的 model/selection 会在结构校验通过后保留原事件,只补 ignorable: true;任意未知插件事件绝不套用。inspect 还会警告悬空 tool/call(没有对应 tool/result,下次模型请求永久 400;0.1.7 上 v3→v4 的 restore 与读一份已存的 v4 日志都会因此拒收整条会话,而结果只能补在还开着的 step 里)以及空的 tool_calls[].id(#5182,下次请求 id cannot be empty),但不会编假结果或假 callId。inspect 也会报告「turn/end 之后同一回合的 step 还在继续」这类失衡(#7824):官方关系校验(v1→v2 对转换后的工件跑 v0→v1 的 assertReleasedArtifactRelationships)会整份拒读,报 &lt;类型&gt; does not match an open turn and step;合并还是拆分这个回合在工件里没有唯一答案,拆分还要重编号后面所有 seq,所以只报告、不改文件。同一步里重复通告的 callId(#5909)在 0.1.3 的 v0→v1 迁移会拒读;本机已是 v1+ 时 repair 只给后面的 id 加 #n。0.1.3 起还会扫 session.vN.jsonl.zstd;本机装 0.1.7-rc.2(或 rc.1)时格式已是 v4(桌面端内置的 0.2.0-rc.2 同代际、同 SESSION_FORMAT_VERSION = 4,本文引用的闸门在两版发布包里逐行一致),v0–v4 各代 header 都能 inspect / repair(改代际的迁移仍由官方负责)。升级到 0.1.5 后老会话打不开(#6151/#6175/#6189/#6194:权限事件多 origin、子代理描述 version 2、插件消息来源 summary/form 不配、分块溯源断档)时,本机已是 v1+ 的 repair 会按官方冻结清单无损归一这些形状,已用官方 0.1.5-rc.1 转换器逐条验证;未知类型(如 session/imported)迁移连 ignorable 都拒,我们只报告不删。官方以后修加载器,也救不回已经坏掉的日志文件。#6559 里那两类「官方自己写过、迁移不认」的形状在 0.1.7-rc.1 / rc.2 上依然存在,处理方式相同:退役的 source.kind(instruction-hint,已不在 v2→v3 SOURCE_KINDS 里)只改名成键集相同的 plugin;agent/inbox/spliced 的 inserted[] 消息缺 id/role 时补 id 与官方校验器自己写死的 user 角色。成员超出 released 形状的一律只报告、不猜。

最常用:复制会话 ID

  1. 左侧某条会话点 ⋯ → 复制会话 ID
  2. 开一个新聊天,把 ID 贴进去,例如:
接着 session-1e66cda9-a046-4893-8f4b-b817080acbea 继续。
需要旧上下文时去读那份会话。

如果新会话已经装了本插件的 agent 工具:

session_inspect id=session-1e66cda9-a046-4893-8f4b-b817080acbea
从上次停的地方继续。

有 session- 前缀和没有前缀是同一种会话,只是 ID 写法不同。分叉会复制一份文件;复制 ID 是让新会话引用旧会话。

安装

DSH 桌面端(2026-09-29 起本仓库的对齐目标):打开「插件」页,添加 git 包 github:xiaoshenming/dsh-session-surgeon#main。profile 在 ~/.dsh/profiles/desktop,pnpm 会把 #main 解析成某个 commit 的 tarball。

CLI 装法等价:

dsh plugin --profile desktop add &quot;github:xiaoshenming/dsh-session-surgeon#main&quot;

装好后:

  • 会话 ⋯ 菜单:复制会话 ID(日常就用这个)/ 检查 / 预览修复
  • 左侧「会话医生」:看对话、复制 ID、预览修复、应用修复、导出

更新=在「插件」页对这个插件点更新(pnpm 重新解析 #main 到新 commit),或在 profile 里:

cd ~/.dsh/profiles/desktop &amp;&amp; pnpm update dsh-session-surgeon

不用重启 dsh web,也不用重新 add:装出来的是 pnpm 解出的一份普通拷贝,本身没有 .git,所以先推到 main,再更新。

本地开发请使用项目锁定的 dsh 版本和 pnpm 锁文件(Node.js 24):

pnpm install --frozen-lockfile
export DSH_HOME=&quot;$HOME/.dsh-surgeon-dev&quot;
./node_modules/.bin/dsh plugin --profile web add &quot;link:$(pwd)&quot;
./node_modules/.bin/dsh web

DSH_HOME 将开发会话与日常会话隔离;面板和 CLI 按 $DSH_SESSION_ROOT → $DSH_HOME/sessions → ~/.dsh/sessions 找会话,面板的「会话根」下拉会自动列出机器上所有 DSH home(按 home 形态识别,也可手输任意路径),另一个 home 里的会话一步就能切过去。不要用 npm 重装此开发环境:当前 DSH 的工具调度器依赖单一 @deepseek-ai/dsh-tools 模块实例,npm 的重复实体副本可能让工具调用报 reading &#x27;prepare&#x27;。

在能加载本仓库技能的对话里,说一句 更新(或 更新插件)即可:扫官方 Discussions、吸收对口反馈、改代码、写 CHANGELOG、回复、用 px 推 main。技能正文:skills/dsh-session-surgeon-update/SKILL.md。如果 agent 的技能目录里没列出它,就直接让它读这份文件 —— 纯 markdown 流程,不需要注册。

DSH 的技能索引只扫 /.dsh/skills、/.agents/skills、$DSH_HOME/skills、~/.agents/skills,不扫已装插件包内的 skills/。想让桌面端的技能目录列出它,把它链进用户技能根(以后插件更新会自动跟着):

mkdir -p ~/.dsh/skills
ln -sfn ~/.dsh/profiles/desktop/node_modules/dsh-session-surgeon/skills/dsh-session-surgeon-update \
~/.dsh/skills/dsh-session-surgeon-update

命令行

npx --yes github:xiaoshenming/dsh-session-surgeon scan
npx --yes github:xiaoshenming/dsh-session-surgeon inspect
npx --yes github:xiaoshenming/dsh-session-surgeon repair           # 默认 dry-run
npx --yes github:xiaoshenming/dsh-session-surgeon repair  --apply  # 先写 .bak.(Windows 上备份文件只读 fsync 的 EPERM 不再中止 apply)

DSH 没有 Codex 那种任务 ID。能 resume 的是 session。复制会话 ID 是日常最接近的做法。详见 docs/LEARNING-TASKS.md。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-session-surgeon 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:xiaoshenming/dsh-session-surgeon#v0.1.0` 即可。对应的 npm 包名是 `dsh-session-surgeon`。

dsh-session-surgeon 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-session-surgeon 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-session-surgeon 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-session-surgeon 需要什么运行环境?

Node.js ^22.19.0 || >=24.0.0;需要同时安装 @deepseek-ai/dsh-tools@>=0.1.0-rc.6 <0.2.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-session-surgeon 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-session-surgeon 有哪些功能?

复制会话 ID、检查会话健康、修复损坏会话、压缩与导出。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。