Buddy companion speech bubble responses are not persisted in session logs
Summary
The /buddy companion feature generates real-time speech bubble responses that are displayed to users in the terminal UI, but these responses are not persisted anywhere — not in session JSONL, not in ~/.claude.json, not in debug logs.
Why this matters
- No audit trail — if the companion says something inappropriate or harmful, there is zero evidence for the user to reference or report
- No reproducibility — Anthropic cannot investigate companion behavior incidents without logs
- Asymmetric logging — every tool call, assistant message, and hook execution is logged with millisecond timestamps, but the one component with a personality engine and zero supervision is ephemeral
What we verified
| Location | Companion bubble text found? |
|---|---|
| Session JSONL (all message types) | No — only companion_intro and petted events |
| ~/.claude.json companion field | No — only name, personality, hatchedAt |
| ~/.claude/debug/ logs | No |
| ~/.claude/history.jsonl | No |
| Terminal scrollback (kitty) | No — bubble is a TUI overlay, not terminal text |
The only message types in the JSONL are: message, assistant, user, text, tool_use, tool_result, thinking, system, file-history-snapshot, queue-operation, attachment, companion_intro. No companion_response type exists.
Suggestion
Persist companion speech bubble text in the session JSONL as a companion_response message type, consistent with how all other session activity is logged.
Environment
- Claude Code v2.1.90
- Companion: Gristle (octopus, Rare)
- macOS Darwin 25.3.0
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗