bitterSmilezzz/dsh-plugins

dsh-plugins

DSH 插件伞仓库(DSH Plugin Umbrella)— 所有新增插件的共同遵循仓库:承载插件契约(Pi / DSH 官方 / DSH-Store 准入 / dsh-std 协议)+ 按契约自动校验自有插件(GitHub Actions),经验档案按主题归档。

미분류dsh-pluginsumbrella

DeepSeek Harness Plugins

EN · 简体中文

DeepSeek Harness(DSH)插件的伞仓库: 所有新增插件的共同遵循仓库,承载插件契约并承担新插件的校验与测试。插件本体为独立仓库, 各自安装;本仓库维护契约、校验脚本与经验档案。

  • 契约(强制):见 AGENTS.md(CLAUDE.md 是其软链)——Pi 契约约束、 DSH 官方规则契约、新插件校验与测试契约、DSH-Store 准入契约、dsh-std 协议契约。
  • 经验档案:见 doc/experience/(按主题分类的踩坑/修复/治理记录)。
  • 校验脚本:scripts/validate-plugin.mjs —— 按契约对插件仓库逐条静态检查。

校验

新插件登记发布前,须在本仓库通过校验(契约见 AGENTS.md「新插件校验与测试契约」):

node scripts/validate-plugin.mjs ../dsh-xxx     # 校验某个插件仓库(默认输出报告)
node scripts/validate-plugin.mjs ../dsh-xxx --json   # JSON 输出(CI 用)

GitHub Actions(.github/workflows/validate-plugins.yml)每 8 小时 + push 清单时自动校验 scripts/manifest.json 中的全部插件,失败自动开 Issue。新增插件:在 scripts/manifest.json 加一行即自动纳入。

账号下仓库登记

在用 · 受 manifest.json 门禁(各行数据为该插件最近一次登记时点:dsh-notify 2026-10-20 / dsh-model-selector 2026-10-18;门禁项数随校验脚本增长,旧行未回填):

插件版本回归测试门禁
@bittersmilezzz/dsh-notify0.4.5(tag v0.4.5:试听与真实通知同规则恒 silent + 固定 tag;沿用 0.4.4 Windows 上按宿主分流发 tag(Electron 宿主实测可送达可替换)、阻塞/信息类 tag 分离,0.4.3 阻塞性通知不再被信息类通知 close——Windows 上「关掉 toast = 从通知中心移除」,旧实现会让待处理的审批请求凭空消失;适 DSH 0.2.1-rc.2)10922/22
@bittersmilezzz/dsh-model-selector0.4.2(tag v0.4.2:补 engines.node/engines.dsh 与 README 兼容性小节;沿用 0.4.1 三段式布局、0.4.0 Codex 式滑杆(渐变 + 粒子)与菜单稳定性修复;适 DSH 0.2.1-rc.2)12122/22

已退役 · 本地不再使用(归档按 doc/archives/ 命名;无 git 历史的用 tar 打包工作树,有历史的用 bundle。⚠ 2026-10-17 之前的归档文件已丢失,表中文件名仅作历史记录):

仓库退役原因归档
dsh-asr-voice(@bittersmilezzz/dsh-asr-voice)2026-10-17 退役:用户决定完整退役(最终版 0.4.7 / tag v0.4.7,153 commits、37 tags;GitHub 远端已归档 archived、本地已删除、web profile 已解绑)dsh-asr-voice-2026-10-17.bundle(完整历史 + 37 tags + main/dev,3.0M,实测 clone-back 153 commits 通过)+ dsh-asr-voice-2026-10-17.tar.gz(工作树含 .git,6.3M,解包 diff -r 0 差异)
dsh-antigravity-tool(@local/dsh-antigravity-tool)2026-10-17 退役:用户决定归档(本地私有插件,非 git 仓库、无 GitHub 远端、未发布 npm;web profile 已解绑、本地目录已删除)dsh-antigravity-tool-2026-10-17.tar.gz(工作树 4 文件,8.3K,解包 diff -r 0 差异)
dsh-codex-bypass(@local/dsh-codex-bypass)2026-10-17 退役:用户决定归档(本地私有插件,非 git 仓库、无 GitHub 远端、未发布 npm;web profile 已解绑、本地目录已删除)dsh-codex-bypass-2026-10-17.tar.gz(工作树 2 文件,1.2K,解包 diff -r 0 差异)
dsh-ui-tweaks拆分前的合并包,已被上面 4 个插件取代;本地与远端均已删除dsh-ui-tweaks-2026-08-30.bundle(48 commits + tag,实测可 clone 恢复)
dsh-computer-use(自有版 @bittersmilezzz/dsh-computer-use)2026-09-15 退役:官方 @deepseek-ai/dsh-computer-use + dsh-experimental-computer-use-cua-driver-native 已发布并实测可用(headless 下真实调用 cua_driver_native__check_permissions 通过,驱动 55 个工具);自研版与官方同名 ctx.computerUse 服务互斥,web profile 已切换到官方方案;远端已归档(archived)、本地已删除dsh-computer-use-2026-09-15.bundle(完整历史 + tag,git bundle verify 通过,3.5M)
dsh-computer-use非 git 仓库(无历史、不可固定源分发);8 个宿主工具超 Pi 契约 已于 2026-09-10 复活为自有 git 仓库(脱离上游 fork,包名 @bittersmilezzz/dsh-computer-use,0.4.1 于 2026-09-14 发布,见上表)dsh-computer-use-2026-08-31.tar.gz(旧非 git 版归档,仅历史留档)
dsh-skin-runtime非 git 仓库;效果引擎与 Aqua 重复 2048 行dsh-skin-runtime-2026-08-30.tar.gz
dsh-skills纯技能包(非 bundle 插件,不可上架);内容已迁至 OpenViking 技能空间dsh-skills-2026-08-30.tar.gz
dsh-wallpaper-engine仅 Windows;注入的 3 个官方包在 alpha.2 已消失,且 host 半区无源码不可重建dsh-wallpaper-engine-2026-08-30.tar.gz
DSH-Transparent-UI-Plugin(Aqua)与官方 dsh-client-ui-theme 正面重叠;包名违反 @deepseek-ai/* 命名空间契约;tsdown.config.ts 指向不存在的路径故不可重建DSH-Transparent-UI-Plugin-2026-08-30.tar.gz

2026-08-31 收口:上述退役仓的 GitHub 远端已按指示全部删除(DSH-Transparent-UI-Plugin、 dsh-wallpaper-engine、dsh-skills,加上此前双删的 dsh-ui-tweaks),账号当时只剩伞仓库 + 6 个在用插件(2026-10-17 dsh-asr-voice 归档后,受 manifest.json 门禁的在用插件为 2 个)。 dsh-computer-use / dsh-skin-runtime 本就是非 git 目录、从未有远端。 退役仓的本地副本已于 2026-08-31 清空(~/dsh-quarantine-20260830/ 701M 已删), doc/archives/ 当时是唯一副本(该目录此后丢失,见下方 2026-10-17 更正)。归档为双形态:.tar.gz(工作树,排除可再生产物)

  • .bundle(单文件全历史)。删除前的核验口径:tar 用「解包 + diff -r」比对到 0 行差异, bundle 必须在临时 git 仓内 git bundle verify(在非 git 目录跑会假报 need a repository), 并对最大的一份做真实 clone-back 计数比对。

⚑ 删除远端前的强制核验(本轮实测教训):dsh-wallpaper-engine 本地是 --depth 5 浅克隆,只有 9 个 commit,而远端有 85 个 commit + 4 个分支(main/mac/ scene-support/fix/npm-name-waifux-darkmode)——直接删远端就会永久丢掉 76 个 commit。 更要命的是浅克隆上 git bundle --all 会产出父提交缺失、无法 clone 的残缺 bundle (Failed to traverse parents of commit …),文件照样生成、看着像成功。所以删之前必须: ① git rev-parse --is-shallow-repository 为真 → 先 --unshallow 或重新全量 clone; ② 把 refs/remotes/origin/* 转成本地分支(clone 不会把源仓的 remote-tracking ref 再导出, 否则 bundle 回 clone 只剩 main); ③ 用 bundle 实际 clone 回来比对 commit 数与分支数,而不是只看 bundle verify 或文件大小。

2026-10-17 完整退役批次:dsh-asr-voice 的 GitHub 远端已 archived(gh repo view --json isArchived → true)、 本地仓库已删除;同批归档两个本地私有插件 dsh-antigravity-tool / dsh-codex-bypass(非 git 仓库、 无远端、未发布 npm)并删除本地目录。web profile 中三者的 dependencies、dsh.profile.bundles、 pnpm-lock.yaml 与 node_modules 链接均已清除,其余插件不受影响。 npm 已收口(2026-10-18 13:23):@bittersmilezzz/dsh-asr-voice 已执行 npm deprecate (registry deprecated 字段已生效);@bittersmilezzz/dsh-model-selector@0.4.2 已发布并成为 latest (shasum 5af7d067…;期间 npm token 失效导致一次 PUT 404,npm login 后恢复)。 已提交第三方目录:dsh-plugin.org(Issue #271)、 awesome-dsh-plugin / dsh-market(PR #7847)。 过程记录:首次 publish 因 token 失效报 E401/E404,npm login 后走 2FA web auth 才成功(registry 处理延迟约 2 分钟)。 doc/archives/ 更正:该目录此前已丢失(历史归档未找回,2026-08-31 叙述中的「唯一副本」已不成立), 2026-10-17 重建;当前含 dsh-asr-voice-2026-10-17.bundle、dsh-asr-voice-2026-10-17.tar.gz、 dsh-antigravity-tool-2026-10-17.tar.gz、dsh-codex-bypass-2026-10-17.tar.gz 四份, 上表 2026-10-17 之前的归档文件均不存在。

脚本

脚本用途
validate-plugin.mjs按契约静态校验插件仓库(核心,20 项)
validate-all.mjs校验 manifest.json 全部插件(clone 发布态:契约 20 项 + 产物完整性)
check-artifact-imports.mjs固定源产物自洽:lib/**/*.js 的相对 import 必须能在仓库里解析到(堵 git add -u 漏收新产物导致的装到空壳/起不来)
apply-settings.mjs安全合并设置模板到 ~/.dsh/settings.yaml
install-external.mjs外部组件安装引导(读 external/manifest.json)
measure-load.mjs / measure-memory.mjs / web-regression.mjs浏览器加载/内存/回归测量

本地开发

插件仓库 clone 到伞目录,profile 用 link 指向本地,改完硬刷新即生效,稳定后 push (详见各插件仓库 README)。

English Index

A DSH plugin umbrella repo: holds the plugin contracts (see AGENTS.md) and validates your own plugins against them (scripts/validate-plugin.mjs, automated by GitHub Actions). Plugins live in standalone repos and install independently; experience notes are categorized under doc/experience/.

License

MIT — 各子项目各有自己的 LICENSE(见各自独立仓库)。