mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 08:10:44 +00:00
fix(doctor): warn on plugin tool allowlist mismatch
This commit is contained in:
@@ -83,6 +83,7 @@ cat ~/.openclaw/openclaw.json
|
||||
- OpenCode provider override warnings (`models.providers.opencode` / `models.providers.opencode-go`).
|
||||
- Codex OAuth shadowing warnings (`models.providers.openai-codex`).
|
||||
- OAuth TLS prerequisites check for OpenAI Codex OAuth profiles.
|
||||
- Plugin/tool allowlist warnings when `plugins.allow` is restrictive but tool policy still asks for wildcard or plugin-owned tools.
|
||||
- Legacy on-disk state migration (sessions/agent dir/WhatsApp auth).
|
||||
- Legacy plugin manifest contract key migration (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders` → `contracts`).
|
||||
- Legacy cron store migration (`jobId`, `schedule.cron`, top-level delivery/payload fields, payload `provider`, simple `notify: true` webhook fallback jobs).
|
||||
@@ -164,6 +165,11 @@ That stages grounded durable candidates into the short-term dreaming store while
|
||||
|
||||
That includes legacy Talk flat fields. Current public Talk config is `talk.provider` + `talk.providers.<provider>`. Doctor rewrites old `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` shapes into the provider map.
|
||||
|
||||
Doctor also warns when `plugins.allow` is non-empty and tool policy uses
|
||||
wildcard or plugin-owned tool entries. `tools.allow: ["*"]` only matches tools
|
||||
from plugins that actually load; it does not bypass the exclusive plugin
|
||||
allowlist.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="2. Legacy config key migrations">
|
||||
When the config contains deprecated keys, other commands refuse to run and ask you to run `openclaw doctor`.
|
||||
|
||||
@@ -218,6 +218,12 @@ Looking for third-party plugins? See [Community Plugins](/plugins/community).
|
||||
| `slots` | Exclusive slot selectors (e.g. `memory`, `contextEngine`) |
|
||||
| `entries.\<id\>` | Per-plugin toggles + config |
|
||||
|
||||
`plugins.allow` is exclusive. When it is non-empty, only listed plugins can load
|
||||
or expose tools, even if `tools.allow` contains `"*"` or a specific plugin-owned
|
||||
tool name. If a tool allowlist references plugin tools, add the owning plugin ids
|
||||
to `plugins.allow` or remove `plugins.allow`; `openclaw doctor` warns about this
|
||||
shape.
|
||||
|
||||
Config changes **require a gateway restart**. If the Gateway is running with config
|
||||
watch + in-process restart enabled (the default `openclaw gateway` path), that
|
||||
restart is usually performed automatically a moment after the config write lands.
|
||||
|
||||
Reference in New Issue
Block a user