From 9be54044eb3350203c2b72b910517406fa3ad09c Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Mon, 27 Apr 2026 04:40:18 -0700 Subject: [PATCH] docs(doctor): document stale channel plugin cleanup (edb3e84898) Trace to edb3e84898 (fix: clean stale plugin channel config). When openclaw doctor --fix removes a missing channel plugin, it also cascades the cleanup to dangling channel config, heartbeat targets, and channel model overrides, preventing gateway boot loops after failed plugin reinstalls. Added an Accordion 11d to docs/gateway/doctor.md listing the exact config keys that get pruned alongside the plugin entry. --- docs/gateway/doctor.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/gateway/doctor.md b/docs/gateway/doctor.md index 19b4b443ad9..62281252315 100644 --- a/docs/gateway/doctor.md +++ b/docs/gateway/doctor.md @@ -379,6 +379,9 @@ That stages grounded durable candidates into the short-term dreaming store while Doctor checks whether workspace bootstrap files (for example `AGENTS.md`, `CLAUDE.md`, or other injected context files) are near or over the configured character budget. It reports per-file raw vs. injected character counts, truncation percentage, truncation cause (`max/file` or `max/total`), and total injected characters as a fraction of the total budget. When files are truncated or near the limit, doctor prints tips for tuning `agents.defaults.bootstrapMaxChars` and `agents.defaults.bootstrapTotalMaxChars`. + + When `openclaw doctor --fix` removes a missing channel plugin, it also removes the dangling channel-scoped config that referenced that plugin: `channels.` entries, heartbeat targets that named the channel, and `agents.*.models["/*"]` overrides. This prevents Gateway boot loops where the channel runtime is gone but config still asks the gateway to bind to it. + Doctor checks whether tab completion is installed for the current shell (zsh, bash, fish, or PowerShell):