← 返回列表
未验证
⬆️ dsh-plugin-upgrade
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/25 · 已提供中文文档
DeepSeek Harness 的插件作者升级技能:一个包,一个走廊索引——它检测调用方对等端频段,路由到匹配的封闭走廊卡片(0.1.3-alpha.1 -> 0.1.5-rc.1,0.1.5-rc.2 -> 0.1.6-alpha.2),并作为捆绑技能 + npx CLI 运行零依赖接缝扫描器。
综合分
29.9
GitHub 分
29.9
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add PerryLink/dsh-plugin-upgrade该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:已验证本站已于 0 天前真实安装成功
- 是什么
- dsh 原生插件 · other
- 装得上吗
- 本站已真实安装成功(非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 0 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/26
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/26(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-skill@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成⬆️ dsh-plugin-upgrade
- 1024 商店渠道:npm i -g dsh1024 一次,然后 dsh1024 plugin --profile web add dsh-plugin-upgrade(计入 deepseek1024.com 安装排名)。
Gitee
dshfind
OpenSSF Scorecard
DeepSeek Harness 的插件升级技能——一个包,一个走廊索引,两条封闭走廊:0.1.3-alpha.1 → 0.1.5-rc.1(legAB)和 0.1.5-rc.2 → 0.1.6-alpha.2(legC)。
扫描器自行路由:它读取目标仓库声明的 dsh 区间(或采用 --span),然后应用该走廊自身的证据绑定目录——legAB 的 20 个接缝(leg A 0.1.3-alpha.1 → 0.1.5-alpha.1 加上 leg B 0.1.5-alpha.1 → 0.1.5-rc.1)或 legC 的 5 个接缝(E1–E5)。单一入口点,因此一个静默停止挂载的客户端半边永远不会被误认为“类型检查通过”。
官方仓库。 这是 dsh-plugin-upgrade 唯一的官方仓库,由 PerryLink 维护。它取代了已退役的版本锁定包 dsh-plugin-upgrade(leg A)和 dsh-plugin-upgrade-rc1(leg B),并且是 0.1.5-rc.2 → 0.1.6-alpha.2 走廊(leg C)被并入的包——dsh-plugin-upgrade-016 这个名称从未进入注册表。其他账户下的同名仓库与此无关。
License
DSH plugin
dsh-doctor
DSH Market
Node
CI
Version
npm version
npm downloads
English · 简体中文 · Español · Português · हिन्दी
⭐ 如果它帮到了你
这个插件是 DSH 插件家族的一员(40+ 个,全部 Apache-2.0)。如果你在用,给个 star —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。
English: part of a 40+ plugin family for DeepSeek Harness. If it is useful, a star helps the next person find it — nothing is gated behind it.
兼容性
| 表面 | 状态 |
|---|---|
| Harness | DeepSeek Harness 0.1.5-rc.1(标签 dsh-v0.1.7-alpha.2 = 183f08e9c6dd;leg A→B 交接 dsh-v0.1.7-alpha.2 = 5dda764ed3aa;走廊起点 0.1.3-alpha.1),并且对于 legC,为 DeepSeek Harness 0.1.6-alpha.2(标签 dsh-v0.1.7-alpha.2)。对等区间 @deepseek-ai/dsh-skill >=0.1.2-rc.1 =0.1.5-alpha.1 =0.1.6-0 =0.1.7-0 =24.0.0 |
| 平台 | 任何能运行 Node 的地方;扫描器仅依赖文件系统,且与平台无关 |
| 模型 | 完全支持纯文本模型;该技能是一个 Markdown 正文,无工具或视觉要求 |
| 走廊索引 | 一个包,一个入口点。lib/route.mjs 保存封闭的走廊,CLI 根据目标仓库声明的区间(engines.dsh、@deepseek-ai/dsh 范围)路由到匹配的走廊;--span legAB\|legC 覆盖猜测,未声明的区间回退到较旧的走廊。两个目录从不合并:每个走廊保留自己的接缝数组、卡片、证据、夹具和一致性门。 |
| 范围 | 两条封闭走廊:legAB = 0.1.3-alpha.1 → 0.1.5-rc.1(leg A + leg B),legC = 0.1.5-rc.2 → 0.1.6-alpha.2。走廊从不拓宽:增加接缝的跳转是一条新走廊——一张新卡片和一行新索引,而不是一个新包。 |
| Legs | 每个 leg 都存在于这个包中:leg A 保留 S1–S10 + M1 接缝,leg B 保留 C1、C2、C4、C5、H1–H4、P1,leg C 保留 E1–E5——每个都有自己的证据、卡片部分、夹具和回滚路径。没有需要安装的兄弟包。 |
| C3 | 已退役:leg B 的卡片将陈旧类型行误报为绿色 C3,这与 leg A 的 M1 是同一缺陷。该折叠记录在卡片上;--seams C3 不匹配任何内容。 |
| 兄弟包 | 不要在同一配置中挂载已退役的 dsh-plugin-upgrade:两者都注册代理技能 plugin-upgrade,因此第二次挂载会在技能名称上冲突。该包在 npm 上已弃用,其仓库已退役;本包取代了它的两个 leg。 |
你将获得
两半,每条走廊一个接缝目录:
- 一个捆绑的代理技能(plugin-upgrade)——走廊卡片和一个修复并验证的循环。正文首先将调用者路由到与其对等区间匹配的走廊;模型仅在任务实际需要时加载它,并且该包不贡献任何系统提示段落,也不贡献任何工具。
- 一个零依赖 CLI(dsh-plugin-upgrade-scan)——解析走廊并报告该走廊各接缝的 file:line 事实:legAB 的二十个(S3、S8、S9、M1、S4、S5、S6、S7、S2、S1、S10、C1、C2、P1、C4、C5、H1、H2、H4、H3)于 2026-09-09(leg A)和 2026-09-10(leg B)从 harness 标签范围重新读取,或 legC 的五个(E1–E5)在 dsh-v0.1.7-alpha.1(2026-09-19)上测量。任何 error 级别的命中都会以退出码 1 退出,因此它可以直接接入 CI。
关键在于这条走廊存在的意义就是要消灭的失败模式:这段跨度的损坏大多是静默的,且来自两端。 类型行可能已过时,因此仓库会针对旧目录进行编译(接缝 M1),而裸的 conversation 客户端槽位被删除且没有别名,同时 ctx.slots.inject() 只会在声明存在时才运行其回调——因此仍然针对它的客户端半边会停止挂载,没有错误、没有日志行、也没有构建失败(接缝 C1)。有三类损坏能在 typecheck + test 下存活:
1. 本地门禁编译的是过时的类型行——旧的 paths 别名,或固定在 0.1.5-alpha. 的 dev/test 类型(接缝 M1);
2. 日志写入器遗漏了 V3 必需的 stream 字段,因此会话可以导入,但随后拒绝恢复(接缝 S3);
3. 测试是针对旧形状 mock 的,因此它们通过,而宿主却丢弃了该贡献(接缝 C1)。
诚实的规模评估:leg B 的工作区扫描发现,该家族的客户端半边只使用了 8 个槽位键,它们在 rc.1 中全部存活——对它们而言,rc.1 的损坏是潜在的,而非实际的。针对裸 conversation 键的第三方客户端插件才是会损坏的那些,而且它们会悄无声息地损坏。Leg A 的扫描发现了相反的质地:40 个仓库,其中 11 个命中 M1,修复过时路径后暴露出 3 个此前“绿色”的仓库中真实的 TypeScript 错误。
快速开始
1. install the bundle into your profile
dsh plugin --profile web add dsh-plugin-upgrade
2. verify the row mounted
dsh --profile web --dump-config | grep -A3 'id: dsh-plugin-upgrade'
3. scan the plugin you are upgrading
npx dsh-plugin-upgrade-scan --repo ../my-plugin
然后让 agent 使用 plugin-upgrade 技能,或者用与你所处区间匹配的卡片自行驱动循环:skills/plugin-upgrade/references/v0.1.3-alpha.1-to-v0.1.5-rc.1.md(legAB——leg A 是 §1,leg B 是 §2,合并后的接缝索引是 §3)或 skills/plugin-upgrade/references/v0.1.5-rc.2-to-v0.1.6-alpha.2.md(legC)。扫描器会为你选择走廊;当声明的区间有歧义时,添加 --span legC。
安装与卸载
dsh plugin --profile web add dsh-plugin-upgrade # from npm
dsh plugin --profile web add "github:PerryLink/dsh-plugin-upgrade#main" # from source
dsh plugin --profile web remove dsh-plugin-upgrade # uninstall (reversible)
安装该 bundle 只会注册一个技能;删除该行即移除该技能。CLI 是一个普通的 npx 目标,完全不需要 profile。
配置
每个键都是可选的,并且位于 profile patch 中:
| 键 | 默认值 | 含义 |
|---|---|---|
| enabled | true | 注册打包的技能。设为 false 可保持依赖挂载但静默。 |
| skillName | plugin-upgrade | 要在 skillsRoot 下注册的目录,以及目录中显示的名称。 |
| skillsRoot | 包自身的 ./skills | /SKILL.md 所在的位置。将其指向你自己的卡片以复用这套机制。 |
| userInvocable | true | 除了模型之外,人类是否也可以按名称调用该技能。 |
- insert:
- id: dsh-plugin-upgrade
name: dsh-plugin-upgrade
config:
skillName: plugin-upgrade
该插件会大声挂载:缺失的 SKILL.md、空正文,或没有 name 的 frontmatter 都会导致挂载失败,而不是注册一个空技能。
界面
技能 — plugin-upgrade(默认对模型和用户均可调用)。正文:leg 路由表、8 条硬规则和 6 步循环。引用:合并后的 corridor 卡片。脚本:检测器,随技能目录一起发布,以便相对路径能够解析。
CLI — dsh-plugin-upgrade-scan:
dsh-plugin-upgrade-scan [--repo ] [--span legAB|legC|] [--json ] [--seams S3,C1,P1] [--quiet]
| 标志 | 含义 |
|---|---|
| --repo | 要扫描的仓库(默认:cwd)。其声明的 dsh band 决定 corridor。 |
| --span legAB\|legC\| | 强制指定 corridor,而不是根据声明的 band 进行猜测。未知 band 回退到 legAB。 |
| --json | 同时写出机器可读的报告(repo、scannedAt、files、hits[]、bySeam)。 |
| --seams S3,C1,P1 | 限制为已解析 corridor 目录中的特定 seam(id 从不在 corridor 之间共享)。 |
| --quiet | 抑制人类可读的渲染(与 --json 搭配使用)。 |
退出码:0 无 error 严重级别的命中 · 1 至少有一个 error 严重级别的命中 · 2 用法或扫描失败。干净的扫描是必要条件但非充分条件——退出标准是真实主机冒烟测试,外加日志写入者(leg A)的恢复往返测试,以及客户端部分(leg B)的真实浏览器断言。
二十个 legAB seam
顺序遵循 lib/scan.mjs 中的目录(先 leg A,后 leg B),这也是 test/card.test.mjs 将卡片固定到的顺序。
| Id | 严重级别 | 在通往 0.1.5-rc.1 的路上发生了什么变化 |
|---|---|---|
| S3 | error | assistant/message 增加了一个必需的 stream 字段(会话格式 V3):在没有它的情况下写入的日志可以成功导入,但随后拒绝恢复(Session.fromRestore 抛出 invalid settlement fields)。 |
| S8 | error | SessionHandle.read() 返回 SessionHandleReadResult({ eventState, events })而不是事件数组;数组操作必须解包 .events。 |
| S9 | error | SystemPrompt 的配置从 persona 重命名为 personaPrefix / personaSuffix。用 includeHarnessIdentity: false 替代并不等价——它会删除 harness 身份块。 |
| M1 | error | 本地门禁编译的是过期的类型行:dev/test 类型被固定在 0.1.5-alpha.*,或者某个 tsconfig 的 paths 别名解析到一个不存在的检出目录,会让 TypeScript 静默回退到已发布的类型。门禁是绿的,尺子却是错的。 |
| S4 | error | tool/code-dispatch 已重命名为 tool/ptc-dispatch;旧标签在 V3 会话中不再被识别。 |
| S5 | error | ctx.agent 已被移除:调用方必须显式传入 Agent(例如 setup(agentCtx, agent) 的第二个参数)。 |
| S6 | error | Inbox 是一个类型接口,不是可构造的类;fixtures 使用官方不支持的形状,运行时代码读取 agent.inbox。 |
| S7 | warn | SubprocessHandle.pid 已被移除(只剩 SubprocessTerminalHandle.pid);请从测试 fixtures 中删除该字段。 |
| S2 | warn | EpochHeader.system 已被移除:系统提示现在是 surface 节点 0 的 system/message。 |
| S1 | warn | 会话格式 V3 以及带 generation 后缀的日志名——当前 generation 是 session.v3.jsonl.zstd,所以硬编码 session.jsonl.zstd 的脚本会静默失败。 |
| S10 | warn | 插件编写的会话事件必须经过宿主的 fail-closed 适配门禁:Session.append 没有 ignorable 写入通道,因此无条件 append 可能使会话变得不可读。 |
| C1 | error | 裸客户端槽位 conversation 已被删除,替换为 main + main.conversation,且没有别名。ctx.slots.inject() 只在声明存在时才会触发,因此针对它的插件会静默停止挂载。 |
| C2 | error | @deepseek-ai/dsh-client-ui-sidebar-textpreview 已重命名为 …-sidebar-documentpreview;旧名称已消失,且没有 shim 包。 |
| P1 | error | peer band 必须保留其第二段:在 npm semver 的 prerelease-tuple 规则下,仅 >=0.1.2-rc.1 、--dump-config),加上针对会话日志写入者(段 A)的恢复往返测试,以及针对每个客户端命中(段 B)的真实浏览器断言。
安全边界
- 只读扫描。 CLI 从不在被扫描的仓库内写入;--json 只写入你传入的路径。
- 无网络,无 shell。 扫描器除 Node 标准库外不导入任何内容,也从不启动进程。
- 无机密。 包中没有任何内容读取凭据、环境令牌或会话数据。
- 沙箱化冒烟配方。 卡片的真实主机检查使用 mkdtemp 创建的 DSH_HOME;它从不触碰你真实的 ~/.dsh。
开发
npm install # 或:pnpm install(仓库附带 pnpm-lock.yaml)
npm test # node --test:扫描器、卡片目录一致性、真实 Cordis + SkillRegistry
npm run verify:self-contained # 每个导入都在包内解析
npm run verify:artifacts # 打包的 tarball 包含技能、CLI 和补丁,并排除测试
npm run check:readmes # 五语言 README 一致性
npm pack
扫描器针对每个 legAB 分支都有一对合成 fixture:fixtures/leg-a-bad-repo(leg A 的 session/config 接缝,故意呈现每一个错误接缝)搭配 fixtures/leg-a-good-repo(已适配),以及 fixtures/bad-repo(leg B 的 client-slot 接缝)搭配 fixtures/good-repo(已适配)——另外还有一个针对已固定到 0.1.5-rc.1 的家族仓库的实时负例,因此 catalog 中的回归会让测试套件失败,而不是让下游用户受影响。test/card.test.mjs 断言每张卡片的索引及其自身的 catalog(legAB 对应 lib/scan.mjs,legC 对应 lib/scan-0.1.6.mjs)命名完全相同的接缝 id 且具有相同的严重级别,断言 legAB 的 CARD_ONLY 恰好为 ['H3'],而 legC 的为空,并断言两个 catalog 不共享任何接缝 id——即按走廊将证据绑定规则作为机器门禁。
主题
dsh、dsh-plugin、deepseek-harness、deepseek、cordis、plugin-upgrade、migration、skill、version-card、scanner、client-slots(镜像 package.json 关键词;dsh-plugin 是该生态的可见性渠道)。
PerryLink DSH 插件家族
本项目是 PerryLink 维护的 45 个 DeepSeek Harness 插件之一。如果这个对你有帮助,其他的很可能也会:
| 插件 | 一句话简介 |
|---|---|
| dsh-auto-review | 审批链上的第二模型自动审查,默认故障关闭 | |
| dsh-autotier | 自动的强/廉价模型层级路由,带确定性风险防护和 /tier 命令 | |
| dsh-background-agents | 持久后台子代理,带 Web UI 侧边栏、消息传递和中断 | |
| dsh-budget | DeepSeek Harness 的成本治理:预算、碳排和延迟集于一个面板。 | |
| dsh-catalog | PerryLink 家族的 DSH Desktop Market 标准 catalog 源 | |
| dsh-cert-mcp | 只读 MCP 服务器,暴露认证注册表:等级、快照和五维证据 | |
| dsh-checkpoint-rewind | 等同于 Claude Code /rewind:快照、会话分叉、一次性恢复 | |
| dsh-claude-move | 将 Claude Code 会话、记忆、技能和 CLAUDE.md 迁移到 DSH | |
| dsh-click | 面向 DeepSeek Harness 的跨平台原生桌面控制——Windows 优先。 | |
| dsh-composer-history | Web composer 的终端风格输入历史:方向键、Ctrl+R 搜索 | |
| dsh-data-quality | 数据集质量检查与引用交叉核对(此处消费的可选数值桥接) | |
| dsh-defend | 面向 DeepSeek Harness 的提示注入、越狱和机密泄露防御。 | |
| dsh-doublecheck | 工程纪律守卫:需求拷问、测试门禁、对抗性审查 | |
| dsh-draw | 面向 DeepSeek Harness 的统一静态图像生成路由。 | |
| dsh-fast | 面向 DeepSeek Harness 的只读性能诊断。 | |
| dsh-fund-research | 面向中国公募基金的确定性研究报告 | |
| dsh-github | 面向 DSH 的 GitHub PR/issue 集成,每次写入均需审批门控 | |
| dsh-industry-research | 行业研究编排,通过本插件的 ctx.researchReport.assemble 封存其交付物 | |
| dsh-laya | 将 Laya 类型化决策(noul/choice/score)作为一等 Cordis 服务和模型可见工具 | |
| dsh-library | 面向 DeepSeek Harness 的本地文档知识库。 | |
| dsh-local-ai | 面向 DeepSeek Harness 的本地模型(Ollama)集成。 | |
| dsh-lsp-actions | 基于语言服务器的 LSP 诊断、格式化、补全、代码操作和重命名 | |
| dsh-mask | PII 脱敏中间件:在模型边界匿名化,在展示层还原 | |
| dsh-mcp-panel | 只读 MCP 运行时面板:/mcp 命令 + 设置选项卡,含状态、工具和错误 | |
| dsh-memento | 审批门控的跨会话记忆:ctx.memory 接缝 + SQLite + memory 工具 | |
| dsh-observe | 面向 DeepSeek Harness 的 OpenTelemetry 和 Langfuse 可观测性导出器。 | |
| dsh-output-styles | 等效于 Claude Code outputStyles 的运行时样式切换 | |
| dsh-permission-rules | Claude Code 风格的声明式 allow/deny/ask 权限规则,带审计 | |
| dsh-plugin-certification | 社区认证注册表,含可复现检查的等级和徽章 | |
| dsh-plugin-doctor | 面向 DSH 插件的零依赖静态 + 沙箱冒烟检测器 | |
| dsh-plugin-guide | 作为按需代理技能的插件开发知识库 | |
| dsh-plugin-kit | 用于 PerryLink DSH 插件的共享零运行时依赖工具包 | |
| dsh-plugin-upgrade | 单包、单走廊索引插件升级技能:将仓库路由到匹配的封闭走廊卡片 | |
| dsh-plugin-upgrade-015 | 合并的 0.1.3-alpha.1 → 0.1.5-rc.1 升级走廊卡片,外加一个零依赖接缝扫描器 | |
| dsh-reach | 多渠道审批/提问桥接:微信/Telegram/飞书,会话控制台 | |
| dsh-research-report | 可验证的研究报告引擎:内容寻址的证据账本和密封版本 | |
| dsh-score | DeepSeek Harness 插件的多维度质量评分。 | |
| dsh-session-pin | 在 Web 侧边栏中固定会话,并保持持久排序 | |
| dsh-session-sync | DeepSeek Harness 的跨设备会话同步——你的会话存储的专用 git 镜像。 | |
| dsh-skill-pack-security | 安全审计技能包:机密扫描、依赖项和供应链审查 | |
| dsh-talk | DeepSeek Harness 的语音优先会话循环:与它交谈,听它回答。 | |
| dsh-team-rooms | 跨会话团队房间:共享消息总线、任务板和时间线 | |
| dsh-test-drive | 针对 DeepSeek Harness 插件的隔离安装与冒烟测试驱动。 | |
| dsh-ticktick | 滴答清单/Dida365 任务桥接:会话头部面板 + 11 个工具 | |
| dsh-translate | 用于 DeepSeek Harness 的供应商参数翻译和确定性 JSON 修复。 | |
许可证
Apache-2.0 — 参见 LICENSE。安装时依赖项及其许可证列于 THIRD_PARTY_NOTICES.md;不捆绑任何内容。