
yjh051108/dsh-super-injector
767Last commit Aug 15, 2026
dsh-super-injector DSH plugin
dsh-super-injector is a BepInEx-style runtime injection entry for DSH. It allows you to inject any local plugin package into a running web instance without restarting, patching, or touching configuration files. The injected plugin takes full effect immediately (host tools + client UI).
How to install the dsh-super-injector DSH plugin
dsh plugin --profile web add github:yjh051108/dsh-super-injectorCopying does not run this command. Review the repository and version before installing the dsh-super-injector DSH plugin.
dsh-super-injector DSH plugin data source
dsh-super-injector DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-super-injector DSH plugin can do
- Runtime inject standard plugin packages (package.json + lib/) via junction link and loader.create
- Hot reload entire package (clear cache, re-import, rebuild fiber) with rollback on failure, including self-reload of the injector
- Auto-watch plugin directory and reload ~1.5s after build changes
- Inject plugin UI fully functional: host tools + client UI (graph, panels) with normalization and cleanup
- Staging area for development: test tools mounted behind without polluting tools schema, with one-click promotion and persistence across restart
- One-click uninstall: clean fiber, listeners, routes, client table, and delete junction without restart
- Route self-healing: clear orphan routes left by reloads directly from webserver internal routing table
- Automatic recovery on restart: injection registry persisted, auto-restore after web restart
- Operation self-check: return host/client verification on each inject/reload/install, with success rate statistics
- Failure retry: hasActiveEntry guard prevents duplicate, automatic cleanup of residual caches and entries
Where the dsh-super-injector DSH plugin fits
- Install a pre-built mod package: get package → `dev_inject_plugin` → immediate effect
- Iterative development: edit code → build → auto-watch reload (~1.5s) → verify → promote with `dev_stage_promote`
- Uninstall a mod: `dev_uninject_plugin` → full cleanup, no restart needed
Who the dsh-super-injector DSH plugin is for
- DSH plugin developers who want a fast inject/edit/reload loop without restarting the web process
- Advanced DSH users who need to manage runtime plugin lifecycle (inject, hot-reload, stage, uninstall)
dsh-super-injector DSH plugin limitations
- Client bundle must be built separately (tsdown → lib/client.js) for UI plugins; the injector requires both host and client builds
- Plugin packages must self-link dependencies in their own node_modules (e.g., via build script) to avoid import resolution failures
- Failed import poisons cache: loadCache retains broken job, requiring purgeCache before retry
- Resource registration must use `ctx.effect`; bare registration causes duplicate/already registered errors on reload
- Client operations require full package name; short names cause silent registration failure
dsh-super-injector DSH plugin: from the repository README
Quoted from the yjh051108/dsh-super-injector README, the upstream source of the dsh-super-injector DSH plugin. Copyright remains with the original authors.
> ## 🎉 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 <解压目录>
Read the full READMEThe repository declares no license. Check with the authors before using it.
dsh-super-injector DSH plugin questions
How do I install dsh-super-injector?
You can install it via a release package (recommended): download the tgz from Releases, extract it, then run `dsh plugin --profile web add <extracted_dir>`. Alternatively, use git: `dsh plugin --profile web add github:yjh051108/dsh-super-injector`. After installation, the injector is ready to use.
How do I inject a plugin at runtime?
Use the `dev_inject_plugin` tool. Provide the absolute path to the plugin package directory (must contain package.json and lib/). For example: `dev_inject_plugin {"dir": "/path/to/my-plugin"}`. The plugin will be injected immediately and appear in the next step's tool list.
How do I uninstall an injected plugin?
Run `dev_uninject_plugin` with a substring of the package name. For example: `dev_uninject_plugin {"name": "my-plugin"}`. This will cleanly remove all fibers, listeners, routes, client entries, and the junction link without restarting the web process.
How does hot reload work?
The injector automatically watches the plugin directory after injection. When you build the plugin (e.g., run `npm run build`), the injector will automatically reload the package within about 1.5 seconds. You can also manually trigger a reload with `dev_reload_package`. The reload clears the module cache, re-imports the package, and rebuilds the fiber. If the reload fails, the old version is preserved.
What is the staging area and how do I use it?
The staging area lets you mount test tools behind the tools schema without polluting the actual schema. Use `dev_stage_add` to add a tool to staging, `dev_stage_call` to call it, and `dev_stage_list` to see staged tools. Once you're satisfied, use `dev_stage_promote` to promote the tool to the front schema (one-time cache refresh). Staging data persists across restarts.