Reproduction
On a fresh OpenClaw 2026.5.4 install where the active tool policy does not enable the message tool (e.g. tools.profile = full with no explicit message tool wired), run:
openclaw doctor --fix --yes
openclaw doctor
The first run applies a recommended config change; the second run warns about that same change.
Observed
After --fix, the next doctor pass emits:
messages.groupChat.visibleReplies is set to "message_tool", but the message tool is unavailable for default tool policy; OpenClaw falls back to automatic visible replies, so normal replies may post to the source chat. Enable the message tool or set messages.groupChat.visibleReplies to "automatic".
The value it warns about was set by the previous --fix run. Every subsequent doctor invocation continues to emit the warning until the operator manually patches messages.groupChat.visibleReplies back to automatic.
Expected
doctor --fix should not apply a recommendation that the next doctor run will immediately flag as a warning. One of two things should happen instead:
- Skip the
visibleReplies = message_tool recommendation when the message tool is not present in the active tool policy.
- Recommend
automatic in that case (with a note that message_tool becomes the recommended setting if/when the message tool is enabled).
Suggested fix
Gate the visibleReplies = message_tool recommendation on whether the message tool is actually present in the resolved tool policy at fix time:
if active_tool_policy_has_message_tool:
recommend(visibleReplies = "message_tool")
else:
ensure(visibleReplies in ["automatic", undefined])
This affects installs that use a default tool profile without explicitly enabling the message tool, which is common for single-channel deployments.
Workaround
Re-patch after every --fix:
openclaw config set messages.groupChat.visibleReplies automatic
Environment
- OpenClaw 2026.5.4
- Ubuntu 26.04, kernel 7.0.0-15
- Single Telegram channel
tools.profile = full, tools.exec.security = full
- Local Ollama provider (gpt-oss:120b)
Related
#73471 frames a more general concern about doctor --fix applying recommendations automatically. This is another concrete instance of that shape.
Reproduction
On a fresh OpenClaw 2026.5.4 install where the active tool policy does not enable the
messagetool (e.g.tools.profile = fullwith no explicitmessagetool wired), run:The first run applies a recommended config change; the second run warns about that same change.
Observed
After
--fix, the nextdoctorpass emits:The value it warns about was set by the previous
--fixrun. Every subsequentdoctorinvocation continues to emit the warning until the operator manually patchesmessages.groupChat.visibleRepliesback toautomatic.Expected
doctor --fixshould not apply a recommendation that the nextdoctorrun will immediately flag as a warning. One of two things should happen instead:visibleReplies = message_toolrecommendation when the message tool is not present in the active tool policy.automaticin that case (with a note thatmessage_toolbecomes the recommended setting if/when the message tool is enabled).Suggested fix
Gate the
visibleReplies = message_toolrecommendation on whether the message tool is actually present in the resolved tool policy at fix time:This affects installs that use a default tool profile without explicitly enabling the message tool, which is common for single-channel deployments.
Workaround
Re-patch after every
--fix:Environment
tools.profile = full,tools.exec.security = fullRelated
#73471 frames a more general concern about
doctor --fixapplying recommendations automatically. This is another concrete instance of that shape.