From 30117651645efb590cf3bcb8f5dc5396d78bc03f Mon Sep 17 00:00:00 2001 From: "openclaw-docs-sync[bot]" Date: Mon, 27 Apr 2026 12:17:27 +0000 Subject: [PATCH] chore(sync): mirror docs from openclaw/openclaw@4260bb0418e7efd0c19c242ca204d73e3acfe125 --- .openclaw-sync/source.json | 4 ++-- docs/cli/doctor.md | 1 + docs/cli/plugins.md | 2 +- docs/tools/plugin.md | 7 ++++++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index f708351c6..cf2d58dae 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "b1e530b204391b80651047ffd2ca69ccbb04c60d", - "syncedAt": "2026-04-27T12:15:15.000Z" + "sha": "4260bb0418e7efd0c19c242ca204d73e3acfe125", + "syncedAt": "2026-04-27T12:16:08.008Z" } diff --git a/docs/cli/doctor.md b/docs/cli/doctor.md index 0ba56f83f..7b7c29ecb 100644 --- a/docs/cli/doctor.md +++ b/docs/cli/doctor.md @@ -45,6 +45,7 @@ Notes: - Doctor also scans `~/.openclaw/cron/jobs.json` (or `cron.store`) for legacy cron job shapes and can rewrite them in place before the scheduler has to auto-normalize them at runtime. - Doctor repairs missing bundled plugin runtime dependencies without writing into packaged global installs. For root-owned npm installs or hardened systemd units, set `OPENCLAW_PLUGIN_STAGE_DIR` to a writable directory such as `/var/lib/openclaw/plugin-runtime-deps`; it can also be a path-list such as `/opt/openclaw/plugin-runtime-deps:/var/lib/openclaw/plugin-runtime-deps`, where earlier roots are read-only lookup layers and the final root is the repair target. - Doctor repairs stale plugin config by removing missing plugin ids from `plugins.allow`/`plugins.entries`, plus matching dangling channel config, heartbeat targets, and channel model overrides when plugin discovery is healthy. +- Doctor quarantines invalid plugin config by disabling the affected `plugins.entries.` entry and removing its invalid `config` payload. Gateway startup already skips only that bad plugin so other plugins and channels can keep running. - Set `OPENCLAW_SERVICE_REPAIR_POLICY=external` when another supervisor owns the gateway lifecycle. Doctor still reports gateway/service health and applies non-service repairs, but skips service install/start/restart/bootstrap and legacy service cleanup. - Doctor auto-migrates legacy flat Talk config (`talk.voiceId`, `talk.modelId`, and friends) into `talk.provider` + `talk.providers.`. - Repeat `doctor --fix` runs no longer report/apply Talk normalization when the only difference is object key order. diff --git a/docs/cli/plugins.md b/docs/cli/plugins.md index 5090ed5da..f33d6b123 100644 --- a/docs/cli/plugins.md +++ b/docs/cli/plugins.md @@ -79,7 +79,7 @@ Bare package names are checked against ClawHub first, then npm. Treat plugin ins If your `plugins` section is backed by a single-file `$include`, `plugins install/update/enable/disable/uninstall` write through to that included file and leave `openclaw.json` untouched. Root includes, include arrays, and includes with sibling overrides fail closed instead of flattening. See [Config includes](/gateway/configuration) for the supported shapes. - If config is invalid, `plugins install` normally fails closed and tells you to run `openclaw doctor --fix` first. The only documented exception is a narrow bundled-plugin recovery path for plugins that explicitly opt into `openclaw.install.allowInvalidConfigRecovery`. + If config is invalid during install, `plugins install` normally fails closed and tells you to run `openclaw doctor --fix` first. During Gateway startup, invalid config for one plugin is isolated to that plugin so other channels and plugins can keep running; `openclaw doctor --fix` can quarantine the invalid plugin entry. The only documented install-time exception is a narrow bundled-plugin recovery path for plugins that explicitly opt into `openclaw.install.allowInvalidConfigRecovery`. diff --git a/docs/tools/plugin.md b/docs/tools/plugin.md index 0d27e02a6..6df8a7cb7 100644 --- a/docs/tools/plugin.md +++ b/docs/tools/plugin.md @@ -61,6 +61,11 @@ If config is invalid, install normally fails closed and points you at `openclaw doctor --fix`. The only recovery exception is a narrow bundled-plugin reinstall path for plugins that opt into `openclaw.install.allowInvalidConfigRecovery`. +During Gateway startup, invalid config for one plugin is isolated to that plugin: +startup logs the `plugins.entries..config` issue, skips that plugin during +load, and keeps other plugins and channels online. Run `openclaw doctor --fix` +to quarantine the bad plugin config by disabling that plugin entry and removing +its invalid config payload; the normal config backup keeps the previous values. When a channel config references a plugin that is no longer discoverable but the same stale plugin id remains in plugin config or install records, Gateway startup logs warnings and skips that channel instead of blocking every other channel. @@ -203,7 +208,7 @@ or use `openclaw gateway restart` against the running Gateway. - **Disabled**: plugin exists but enablement rules turned it off. Config is preserved. - **Missing**: config references a plugin id that discovery did not find. - - **Invalid**: plugin exists but its config does not match the declared schema. + - **Invalid**: plugin exists but its config does not match the declared schema. Gateway startup skips only that plugin; `openclaw doctor --fix` can quarantine the invalid entry by disabling it and removing its config payload. ## Discovery and precedence