dsh-patch-library

DSH PLUGIN开发与运行时

仓库 xiamubumu/dsh-patch-library

开发与运行时 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

官方 DSH 内核补丁的数据化版本:10 条自包含补丁 + 自适应应用器(自己找安装位置、逐个备份、语法检查、一键回退),五种打法、零硬编码路径。仅支持 DSH 1.5,后续会跟进更新。 / Official DSH core patches as data: ten patches plus an adaptive applier. Five ways to apply. DSH 1.5 only.

一句话选型结论

按资料字段整理

dsh-patch-library 是开发与运行时类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类开发与运行时 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 0 复刻 未标注 · 未关闭 issue 未标注
最近更新 2026-10-14 创建于 未标注
README 8.9 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:xiamubumu/dsh-patch-library#v1.0.0
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

终端命令文件读写存储

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在开发与运行时场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-patch-library当前 L4 · 沙盒安装通过 低风险 0 未标注 有
deepseek-harness L3 · 安装规范通过 低风险 24.6 万 未标注 无
rea L4 · 沙盒安装通过 低风险 2.6 万 0.1.1-rc.2 有
dsh-TUI L4 · 沙盒安装通过 中风险 4,292 0.1.7-rc.2 等 5 个 有
mirage L3 · 安装规范通过 低风险 3,681 未标注 无
dashi-taskboard L4 · 沙盒安装通过 低风险 3,311 0.1.1-rc.2 有

仓库档案

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

README 全文

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

dsh-patch-library

官方 DSH 内核补丁,以「数据」形式发布 —— 五种方式随你挑。

十条自成体系的补丁,针对 @deepseek-ai/dsh-* 与 @earendil-works/pi-ai;配一个小巧的
应用器,它会自己找到你的 DSH 安装位置。没有硬编码路径,仓库里没有任何个人信息,
全程不需要联网。

> 面向 @deepseek-ai/dsh 0.1.5-rc.2(1.5 系列)。每条补丁都记录了它所期待的原文件与
> 它产出的新文件各自的 sha256,所以应用器在动手之前就能告诉你 exact / applied /
> conflict。
>
> 🌐 English README → README.md
>
> 另外两份中文材料:给 agent 的中文提示词 ·
> 五种方式的详细步骤。


为什么会有这个仓库

有些修复没法做成插件:它们必须跑在官方文件内部,在 Cordis 没有暴露成接缝的函数中间。
其中一批已经做成了插件(dsh-context-reclaim、dsh-capability-composer、
dsh-composer-launcher、dsh-aux-degrade)。剩下的那些 —— 以及只有想凑齐全套时才需要的
那些 —— 就住在这里,是普通的 unified diff:任何人可以阅读、审查、应用、回退、重新生成。

这里没有二进制黑盒,也没有魔法:patches//change.diff 就是一份普通的补丁,
manifest.json 是让脚本能安全、可回退地应用它的元数据。

十条补丁

id 包 → 文件 类型 规模 需重启 已有插件代劳?
dsh-llm-writable-request @deepseek-ai/dsh-llm → lib/index.js lines +18 −1 是 是 —— dsh-context-reclaim
agent-loop-snapshot-prompt @deepseek-ai/dsh-agent-loop → lib/index.js lines +97 −20 是 否
llm-pi-ai-system-prompt @deepseek-ai/dsh-llm-pi-ai → lib/index.js lines +96 −54 是 否
compaction-pruner @deepseek-ai/dsh-compaction-tool-result-pruner → lib/index.js lines +354 −14 是 否
ui-renderer-turntail @deepseek-ai/dsh-client-ui-renderer → lib/client.js lines +9 −1 否 否
ui-sidebar-wrap @deepseek-ai/dsh-client-ui-sidebar → lib/lib-client.js regex +1 −1 否 否
session-format-v1-to-v2 @deepseek-ai/dsh-session-format-v1-to-v2 → lib/index.js lines +2 −1 是 否
session-persistence-jsonl @deepseek-ai/dsh-session-persistence-jsonl → lib/worker.cjs lines +2 −1 是 否
mcp-client @deepseek-ai/dsh-mcp-client → lib/index.js lines +59 −6 是 否
pi-ai-max-tokens-floor @earendil-works/pi-ai → dist/api/simple-options.js lines +11 −1 是 否

每条补丁都有自己的 patches//NOTES.md,中英双语写明改了什么、什么时候需要它、
怎么验证、和你的构建对不上时怎么办
。

ui-sidebar-wrap 故意做成正则补丁:侧栏的类名前缀是构建哈希,行级 diff 一旦遇到重建就
失效。patches//change.json 里存着模式串以及它显式的逆操作。

五种应用方式

挑你顺手的。五种的详细步骤都在 docs/methods.zh-CN.md
(英文:docs/methods.md)。

方式 命令
A 脚本(推荐) node apply.mjs --check,然后 node apply.mjs --apply --all
B git apply cd <包目录> && git apply -p1 <库>/patches//change.diff
C 交给你自己的 AI agent 把 PROMPT.zh-CN.md 里的整块复制给它,让它按 A 或 B 打
D 为你的构建重新生成 node tools/make-patch.mjs --file <改后> --orig <原文件> --pkg <包> --rel <相对路径>
E 回退 node apply.mjs --revert --all,或手工把任一 *.orig 还原回去

十条 diff 全部在包目录里通过了 git apply -p1 --check,所以方式 B 对每一条都可用。

方式 A 全流程

node apply.mjs --list                 # 这里有什么
node apply.mjs --roots                # 本机找到了哪些 DSH 安装
node apply.mjs --check                # 逐文件状态:exact / applied / conflict / missing
node apply.mjs --apply --all          # 应用所有能对上的
node apply.mjs --apply --only mcp-client,compaction-pruner
node apply.mjs --revert --all         # 把所有 .orig 备份还原回去

--check 会给出五种状态之一:

状态 含义
exact 文件正是本库构建时所用的原版 —— 应用是安全的
applied 文件已经等于打补丁后的版本,无需操作
variant 版本号相同但构建不同(哈希不同)而 hunks 仍能对上 —— 需要 --allow-variant,或用方式 D
conflict hunks 对不上。不会写入任何东西。 用方式 D 为你的构建重新生成
missing 找到的这个安装里没有这个包

应用器的硬保证

  • 它去找你的安装,而不是假设某台电脑。 --root、$DSH_APP_ROOT、$DSH_INSTALL_ROOT、
    $DSH_HOME(含 profiles/*)、当前进程自己的 DSH 路径、从当前目录做的 node 解析,以及
    对 Windows / macOS / Linux 常规安装位置做的有界扫描 —— 见 lib/discover.mjs。
    --root 的含义是「就这一个」,绝不会变成「这一个 + 顺便扫到的那些」。
  • .orig 是圣物。 备份只在文件旁边写一次,永不覆盖;已存在就直接复用。
  • 每次改写都做语法检查。 写入后立刻 node --check;失败就立即还原备份,并把该条报为失败。
  • 对不上的 hunk 是冲突,不是猜测。 引擎要求 hunk 的旧侧在它被记录的位置附近精确匹配、
    且只匹配一处
    。
  • 只在解析出的根目录内写入。 除了你显式把 --root 指向某个 profile 目录(那是该 profile
    自己的 node_modules 副本),不会碰 $DSH_HOME 下的任何东西。

退出码:0 成功,1 某个请求的操作失败或冲突,2 没找到安装。

如果你已经在用那四个插件

dsh-llm-writable-request 可以跳过 —— dsh-context-reclaim 在插件内部接管了这条路径,
官方补丁保持原样即可。--check 会明说:

= dsh-llm-writable-request     already    node_modules/@deepseek-ai/dsh-llm/lib/index.js
not needed: the dsh-context-reclaim plugin already handles this

其余九条与插件互不依赖:插件装不装、装一个还是四个,都行。

自检

node verify.mjs

离线运行,不需要装 DSH。它会检查:每条 diff 都能解析、hunk 行数与声明一致、声明的 marker
确实由该补丁新增、应用/回退引擎在合成样本上来回一趟是恒等变换、重复上下文会被拒绝而不是
被猜、正则补丁能在任意类名前缀上往返 —— 以及仓库里没有任何文件含盘符、个人主目录或私有
工作区名
(这条扫描是测试套件的一部分,不是一个口头承诺)。

verify.mjs 最后会对本机找到的安装做一次只读的 --check 汇总。

仓库结构

apply.mjs            应用器:--list --roots --check --apply --revert --show
verify.mjs           离线自检 + 个人信息扫描
manifest.json        每条补丁的元数据:哈希、字节数、marker、风险、为什么、何时该打
lib/manifest.mjs     manifest 加载与 schema 校验
lib/discover.mjs     自适应定位 DSH 安装(跨平台)
lib/unified.mjs      unified diff 解析/应用/回退引擎
lib/backup.mjs       .orig 备份与还原
lib/hash.mjs         sha256 小工具
patches//change.diff   补丁本体(路径相对包根)
patches//change.json   正则补丁:模式串 + 显式逆操作
patches//NOTES.md      改了什么/何时需要/怎么验证,中英双语
tools/make-patch.mjs  为同版本的另一种构建重新生成补丁
docs/methods.zh-CN.md 五种方式的分步说明
PROMPT.zh-CN.md       复制粘贴给自己 agent 的提示词

如实说明边界

  • 这些补丁是按 0.1.5-rc.2 构建的。如果你的构建不同,--check 会告诉你
    (variant / conflict)—— 那是信息,不是失败。方式 D 就是为这种情况准备的。
  • 打补丁就是在改你 DSH 安装里的文件 —— 补丁的本义如此。应用器为它碰过的每个文件留下 .orig,
    --revert 能把它们放回去。卸载或升级 DSH 会整体替换目录树,补丁也随之消失。
  • manifest 里的 restartRequired 说明受影响的代码跑在主进程(重启 DSH)还是渲染进程
    (刷新窗口即可)。
  • 这些补丁是修复,它们不构成对 DSH 的安全审计。应用之前请读一读
    patches//change.diff —— 把补丁当数据发布,图的就是这个选项。

许可

MIT。上游包的权利归其作者所有;本仓库只包含针对它们的 diff。

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add github:xiamubumu/dsh-patch-library#v1.0.0` 即可。

dsh-patch-library 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-patch-library 安全吗?

低风险。

dsh-patch-library 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-patch-library 用的是什么许可证?

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

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

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 星

xiamubumu 的其它插件

4 个

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