第三方插件手工补丁规范
September 15, 2026 · View on GitHub
对 third-party/ 快照的任何本地改动必须:
- 以
.patch文件形式入库到patches/(命名:<plugin>-<描述>.patch,如dsh-plugin-memory-tencentdb-personal-sidecar.patch); - 在本文件登记;
- 通过
node scripts/reapply-third-party-patches.mjs <plugin>重放(更新流程的一步)。
禁止直接改快照内文件而不留补丁——覆盖快照会冲掉改动,补丁文件是唯一持久载体。
本合集 2026-09 起只保留一个第三方插件(
dsh-plugin-memory-tencentdb), 其余曾收录插件与其补丁已一并移除。当前patches/下只有它一个补丁。
现有补丁
patches/dsh-plugin-memory-tencentdb-personal-sidecar.patch
插件:dsh-plugin-memory-tencentdb 目标文件:
third-party/dsh-plugin-memory-tencentdb/engines/MemoryKnowledge/src/config.tsthird-party/dsh-plugin-memory-tencentdb/engines/MemoryKnowledge/src/server.tsthird-party/dsh-plugin-memory-tencentdb/engines/MemoryKnowledge/package.json目的:个人模式 sidecar 不把 Knowledge 暴露到局域网;tsx必须是生产依赖,否则NODE_ENV=production的npm install装不出--import tsx。 登记日期:2026-08-25(对照上游feat/server_team@97f9465)
改动内容:
ServiceConfig.host从环境变量HOST读取,默认127.0.0.1。@hono/node-server的serve()传入hostname: config.host(上游只传port,默认绑全网卡)。- 把
tsx从devDependencies挪到dependencies。 server.ts用pathToFileURL(process.argv[1])判断主模块,相对路径和 Windows 盘符都能启动。
重放失败时的处理:上游若已支持 HOST / 默认 loopback,或已把 tsx 列为生产依赖,删除本补丁并更新登记;冲突则按上面 3 条适配后再更新补丁文件。
重放工具
# 全部补丁重放(不传参数 = 全部)
node scripts/reapply-third-party-patches.mjs
# 只重放某个插件的补丁
node scripts/reapply-third-party-patches.mjs dsh-vision-toolkit
脚本对每个补丁先 git apply --check;全部通过才应用;任一失败即停止并列出冲突文件,提示手动适配。