Skip to content
dsh.fish
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

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source