跳到正文

yjh051108/dsh-super-injector

767最近提交 2026年8月15日

dsh-super-injector DSH 插件

dsh-super-injector 是一个 BepInEx 风格的模组注入入口,让你无需重启或修改配置即可将任意本地插件包注入运行中的 web 实例。注入的插件立即生效(host 工具 + client UI 完整可用)。它提供了热重载、侧挂区、一键转正、路由自愈等开发闭环功能。

如何安装 dsh-super-injector DSH 插件

dsh plugin --profile web add github:yjh051108/dsh-super-injector

复制不会执行命令。安装 dsh-super-injector DSH 插件前请核对仓库和版本。

dsh-super-injector DSH 插件数据来源

dsh-super-injector DSH 插件快照日期:2026年8月16日

discovered

dsh-super-injector DSH 插件能做什么

  • 运行时注入标准插件包(package.json + lib/),通过 junction 链接和 loader.create 装配
  • 整包热重载:清缓存、重新 import、重建 fiber,失败回滚保留旧代,支持注入器自重载
  • 自动 watch 插件目录,代码 build 后约 1.5 秒自动重载
  • 注入插件 UI 完整生效:清除 loader 幽灵 entry,client 模块补扫/联动/卸载清理
  • 开发侧挂区(staging):测试工具挂后侧不污染 tools schema,持久化,一键转正
  • 一键卸载:清理 fiber、监听器、路由、client 表,删除 junction,免重启
  • 路由自愈:直接清除 webserver 内部路由表中热重载残留的孤儿路由
  • 重启自动恢复:注入清单持久化,web 重启后自动归位
  • 操作自检:每次注入/重载返回 host ✓ / client ✓ 双验证,含成功率统计
  • 失败可重试:hasActiveEntry 防重,自动清理残留缓存和 entry

dsh-super-injector DSH 插件适合哪些场景

  • 安装成品模组:拿到插件包 → 对 AI 说 `dev_inject_plugin` → 立即生效
  • 开发迭代:改代码 → build → 自动 watch 约 1.5 秒重载 → 验证 → `dev_stage_promote` 一键转正
  • 卸载模组:`dev_uninject_plugin` 全清理,免重启

dsh-super-injector DSH 插件适合谁

  • DSH 插件开发者,需要快速注入/编辑/重载循环,无需重启 web 进程
  • 高级 DSH 用户,需要管理运行时插件生命周期(注入、热重载、侧挂、卸载)

dsh-super-injector DSH 插件的限制

  • UI 形态插件需单独构建 client bundle(tsdown → lib/client.js),注入器要求 host 和 client 都构建
  • 插件包必须自带依赖链接(如通过 build 脚本建立 junction 到 checkout 包),否则 import 解析失败
  • 失败的 import 会毒化缓存:loadCache 残留损坏 job,需在重试前 purgeCache
  • 资源注册必须使用 `ctx.effect`,裸注册会在热重载时导致 duplicate/already registered 错误
  • client 操作必须使用完整包名,短名会导致静默注册失败

dsh-super-injector DSH 插件的仓库 README 摘录

以下文字摘自 dsh-super-injector DSH 插件的上游仓库 yjh051108/dsh-super-injector 的 README,版权归原作者,仅作引用。

> ## 🎉 v0.3.0 重大声明(2026-08-14) > > **从经验补丁到源码契约——注入器完成规范重构。** > > 本版本按 [docs/SPEC.md](./docs/SPEC.md)(基于 DSH 0.1.0-rc.6 源码语义推导的 > 设计契约)重构自重载为**官方 REPLACE 结构**:工具只排程、绝不亲自自杀; > reboot 走 `entry._dispose`(官方 `_disposing` 豁免)+ 失败自动 rollback。 > 从此注入器的一切行为都有源码依据,不再依赖经验补丁。 > > **里程碑回顾**: > - 三轮零上下文 subagent 评测:9/10 → 9.5/10 → **10/10** > - 作死压力测试:连环自杀/坏语法/悬空 junction/循环注入卸载——**零崩溃零残留** > - **云源自举**:下载 release 副本 → 装配 → 注入器从云端副本运行(自检 8/8) > - **免杀进程恢复**:失败 → touch patch(include.refresh 进程内重装配)→ 6 秒复活 > - **DSH 正式版兼容**:0.1.0-rc.6 一行不改直接运行(peerDeps 范围声明实证) > > 哲学不变:**一切皆插件**——注入器是 DSH 生态的运行时注入标准层, > 让"插件想长成什么样就长成什么样"。 DSH 生态的 **BepInEx 式模组注入入口**:运行时把任意本地插件包注入运行中的 web, 不碰 patch / package.json / bundles 列表、不重启进程。**注入即完整生效(host 工具 + client UI)。** > 灵感:官方装配机制(profile bundle / repository-plugin)是唯一的"官方入口",就像游戏 > 只有启动器能装模组。本插件打破这一点——引导器走官方入口装一次,之后**万物皆可运行时注入**。 ## 安装(三选一) ### 方式 A:Release 包(推荐,免构建) 从 [Releases](https://github.com/yjh051108/dsh-super-injector/releases) 下载 `dsh-external-dsh-super-injector-0.0.1.tgz`,解压得到插件目录(含 `lib/` 与 `cordis.patch.yml`),然后: ```bash # 官方装配(重启后由 bundles 接管,生产态) dsh plugin --profile web add <解压目录> # 或运行时注入(免重启,开发态;需任一环境已常驻注入器) # 对 AI 说:dev_inject_plugin <解压目录>

阅读完整 README仓库未声明许可,使用前请先与作者确认。

dsh-super-injector DSH 插件常见问题

如何安装 dsh-super-injector?

推荐使用 Release 包安装:从 Releases 下载 tgz 并解压,然后运行 `dsh plugin --profile web add <解压目录>`。也可以使用 git 装配:`dsh plugin --profile web add github:yjh051108/dsh-super-injector`。安装后注入器即可使用。

如何在运行时注入一个插件?

使用 `dev_inject_plugin` 工具。提供插件包目录的绝对路径(目录需包含 package.json 和 lib/)。例如:`dev_inject_plugin {"dir": "/path/to/my-plugin"}`。插件会立即注入,在下一步的工具列表中可见。

如何卸载一个已注入的插件?

运行 `dev_uninject_plugin` 并传入包名的子串。例如:`dev_uninject_plugin {"name": "my-plugin"}`。该命令会干净地移除所有 fiber、监听器、路由、client 条目和 junction 链接,无需重启 web 进程。

热重载是如何工作的?

注入器在注入后会自动监视插件目录。当你构建插件(例如运行 `npm run build`)后,注入器会在约 1.5 秒内自动重载该包。你也可以手动触发重载:`dev_reload_package`。重载会清除模块缓存、重新 import 包并重建 fiber。如果重载失败,会保留旧版本。

什么是侧挂区(staging),如何使用?

侧挂区允许你将测试工具挂在 tools schema 后面,避免污染实际 schema。使用 `dev_stage_add` 添加工具到侧挂区,`dev_stage_call` 调用它,`dev_stage_list` 查看侧挂工具。满意后使用 `dev_stage_promote` 将工具转正到前侧 schema(仅一次缓存刷新)。侧挂数据持久化,重启后依然存在。