diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 66105ebc6..aeaf398ab 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "4f50921e0f6069967405b525001a72af9960cb51", - "syncedAt": "2026-04-27T11:41:38.660Z" + "sha": "9be54044eb3350203c2b72b910517406fa3ad09c", + "syncedAt": "2026-04-27T11:41:53.863Z" } diff --git a/docs/gateway/doctor.md b/docs/gateway/doctor.md index 19b4b443a..622812523 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):