docs: 更正 PluginMgr 的能力描述 + 挡住新文档站目录

## 更正一处实测证伪的断言

`assets/docs/{zh,en}/PLUGIN_DEV.md` 都写着「`PluginMgr()` 仅内置插件可用,
外部动态插件无法直接调用」——**这是错的**。

建 SDK 文档站时对照 `hmapdev` 桥接模板实测:

- `proc_main.go.tmpl:692` 显式 `base.SetPluginMgrAPI(procPluginMgr{})`,即桥接运行时
  **为外部插件注入了** PluginMgr;
- 公开 `sdk/plugin.go:282` 的注释本身就写着「PluginMgrAPI 提供插件管理能力
  (外部插件可调用)」。

真正的区别是**方法数**,不是有无:

| 接口 | 位置 | 方法数 |
|---|---|---|
| `sdk.PluginMgrAPI` | 公开 SDK | 3(ReloadOne / ListLoadedPlugins / IsPluginDisabled)|
| `internal/sdk.PluginManager` | 内核内部 | 9(另有 Enable/Disable/Remove/ReloadPlugins/IsBuiltinPlugin 等)|

两个接口名字相似但**不是同一个**,这正是混淆的来源。已在中英两版改写为准确描述,
并保留原有的「内置插件 API」代码块(那段示例用的确实全是内部面,加注说明)。

## 挡住新文档站目录

SDK 仓新增了 `docs/`(mkdocs 站点源码)与 `mkdocs.yml`。它们与 `README*`、`tools/`
同类——属于 SDK 仓,核心仓不该跟踪。规则带前导路径限定,核心仓自己的 `docs/`
不受影响(实测 `git check-ignore` 命中,工作区不再出现这两个路径)。

SDK 仓同批提交 0a6e2b7(文档站本体)。
This commit is contained in:
JianFeeeee
2026-09-24 12:10:10 +08:00
parent 4f3de61d8f
commit a2cba0ceb1
3 changed files with 19 additions and 2 deletions

View File

@ -790,7 +790,14 @@ pmgr.ReloadPlugins() // Reload all plugins
Internal: records are stored in SQLite `disabled_plugins` table (`name`, `disabled_at`, `disabled_by`). Disabling takes effect immediately (plugin stops receiving input); full removal requires a restart.
> **Note**: `PluginMgr()` is only available to built-in plugins; external dynamic plugins cannot call it directly.
> **Note**: `PluginMgr()` returns an interface with **only 3 methods** (`ReloadOne` /
> `ListLoadedPlugins` / `IsPluginDisabled`). Enable/disable/remove/reload-all
> (`EnablePlugin` / `DisablePlugin` / `RemovePlugin` / `ReloadPlugins`) and the
> built-in check (`IsBuiltinPlugin`) exist only on the kernel-internal
> `internal/sdk.PluginManager` — external plugins cannot reach them. To reload from
> an external plugin, use `ReloadOne`.
> The two interfaces have similar names but are **not the same**:
> `sdk.PluginMgrAPI` (public, 3 methods) vs `internal/sdk.PluginManager` (internal, 9).
---