Skip to content

buddy_status regression on Codex CLI: v1.0.3 verbatim-display change causes host safety cancellation #102

@terpjwu1

Description

@terpjwu1

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:

buddy_status({})

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions