Bundle
dsh-local-plugin-switch
Settings page — toggle local plugins on/off (live + durable via cordis.patch.yml).
- Source
- jcleener
- License
- MIT
- Updated
- Updated 5 hours ago
Readme
# dsh-local-plugin-switch
> DSH(DeepSeek Harness)插件:在**设置页新增「本地插件开关」区块**,列出所有本地已安装插件,每个带开/关。
> 开关 = 实时启停 loader fiber + 把 `disabled: true/false` 写入 profile 的 `cordis.patch.yml`,重启后仍生效。
## 功能
- **列出所有本地插件**:非 group 的 loader 条目,显示名称 / id / 状态(active / failed / loading)
- **实时开关**:调用 `entry.update({ disabled: true | null }, false, true)` 立即停止 / 启动对应 loader 条目(fiber)
- **持久化**:把 `- id: <row>` + `disabled: true|false` 写入 profile 的 `cordis.patch.yml`,重启后依旧生效(Cordis HMR 开启时保存后约 1s 生效)
- **宿主保护**:webServer / storage / connection 等基础设施行显示「宿主」且不可开关 —— 停掉它们会破坏本页面依赖的链路
- 与 DSH 自带设置页同款观感(复用 `--dsw-alias-*` 主题 token)
## 安装
```bash
dsh plugin --profile web add "github:jcleener/dsh-local-plugin-switch"
# 或固定版本
dsh plugin --profile web add "github:jcleener/dsh-local-plugin-switch#v0.1.0"
```
安装后重启 `dsh web`,设置页出现《本地插件开关》区块。
## 使用
打开设置页 → 《本地插件开关》,点任意插件的开关即可。宿主基础设施行显示「宿主」徽标且不可操作。
## 工作原理
Host 半段提供两个 HTTP 路由:
- `GET /dsh-local-plugin-switch/list` — 所有非 group loader 条目
- `POST /dsh-local-plugin-switch/toggle` — `{ name, enabled }`
Client 半段(设置页区块)调用以上路由渲染开关列表。
## 开发 / 结构
```
lib/index.js Host 半段(路由 + 实时/持久开关逻辑)
lib/client.js Client 半段(设置页「本地插件开关」区块 UI)
cordis.patch.yml 加载器补丁层(insert 声明)
```
## 许可证
MIT © 2025 [jcleener](https://github.com/jcleener)
Install
dsh plugin --profile web add github:jcleener/dsh-local-plugin-switch
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-local-plugin-switch from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.