Summary
buddy_status appears to have regressed between v1.0.2 and v1.0.3 on Codex CLI / MCP hosts with stricter tool-output safety checks.
Before v1.0.3, buddy_status returned the ASCII stat card normally.
Starting in v1.0.3 (released April 22, 2026), the tool description and returned text both instruct the host to display the card verbatim in a code block and not summarize it.
On Codex CLI, that now causes the tool call to be cancelled by the host safety layer before the payload is surfaced.
Regression boundary
v1.0.2 (commit 91424d6, April 17, 2026): no failure
v1.0.3 (commit 561d1e5, April 22, 2026): failure starts
The change appears to come from PR #83 / commit cd5e9cd (feat: verbatim card display with renderMarkdownBubble).
Repro
Environment:
- Buddy
v1.0.7
- Codex CLI host via MCP
Call:
Observed result:
Error: Tool call was cancelled because of safety risks: The action's tool_description instructs: "Display the full stat card verbatim in a code block. Do not summarize." ...
The error also mentions an encrypted_reasoning field, but that appears to be host/runtime metadata, not something Buddy emits.
Evidence
Pre-change (v1.0.2):
description: "Get the current status of your Buddy companion. Call this at the start of a conversation to check on your buddy and learn its personality."
...
return { content: [{ type: "text", text: statusCard }] };
Post-change (v1.0.3+):
description: "Get the current status of your Buddy companion. Call this at the start of a conversation to check on your buddy and learn its personality. IMPORTANT: Display the full stat card verbatim in a code block. Do not summarize."
...
return { content: [{ type: "text", text: "DISPLAY VERBATIM: Show the full stat card below in a code block. Do not summarize.\n\n" + statusCard }] };
Notes
buddy_doctor still works in the same environment, so this does not look like a blanket failure for all Buddy tools.
buddy_status is more likely to trigger host safety because it now requires blind verbatim reproduction and the card can include personalityBio / rescued user-derived text.
Suggested fix
Soften the instruction instead of requiring exact verbatim rendering. For example:
- remove
IMPORTANT: Display the full stat card verbatim in a code block. Do not summarize.
- replace the returned
DISPLAY VERBATIM: prefix with something like Prefer preserving ASCII formatting in a code block when supported.
That should still improve rendering quality without tripping hosts that reject strict verbatim-output mandates.
Summary
buddy_statusappears to have regressed betweenv1.0.2andv1.0.3on Codex CLI / MCP hosts with stricter tool-output safety checks.Before
v1.0.3,buddy_statusreturned the ASCII stat card normally.Starting in
v1.0.3(released April 22, 2026), the tool description and returned text both instruct the host to display the card verbatim in a code block and not summarize it.On Codex CLI, that now causes the tool call to be cancelled by the host safety layer before the payload is surfaced.
Regression boundary
v1.0.2(commit91424d6, April 17, 2026): no failurev1.0.3(commit561d1e5, April 22, 2026): failure startsThe change appears to come from PR #83 / commit
cd5e9cd(feat: verbatim card display with renderMarkdownBubble).Repro
Environment:
v1.0.7Call:
Observed result:
The error also mentions an
encrypted_reasoningfield, but that appears to be host/runtime metadata, not something Buddy emits.Evidence
Pre-change (
v1.0.2):Post-change (
v1.0.3+):Notes
buddy_doctorstill works in the same environment, so this does not look like a blanket failure for all Buddy tools.buddy_statusis more likely to trigger host safety because it now requires blind verbatim reproduction and the card can includepersonalityBio/ rescued user-derived text.Suggested fix
Soften the instruction instead of requiring exact verbatim rendering. For example:
IMPORTANT: Display the full stat card verbatim in a code block. Do not summarize.DISPLAY VERBATIM:prefix with something likePrefer preserving ASCII formatting in a code block when supported.That should still improve rendering quality without tripping hosts that reject strict verbatim-output mandates.