[feat-017] Hide tool rows in getChat so they don't render as empty bubbles

↗ view on GitHub · Nick Whitehouse · 2026-05-07 · d55d7575

Bug from the first pass: ChatView's role!=='tool' filter never fired
because mikeApi.getChat() coerced every non-user row to role='assistant'.
Result: each persisted tool result row became an empty assistant bubble on
chat reload, crowding out the real tool cards (which render from the
adjacent assistant row's events[] array).

Fix: getChat now preserves role='tool' on the round-trip; ChatView's
existing filter handles it from there. ServerMessage.role widened to
include 'tool'.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Repository nwhitehouse/mike
Author Nick Whitehouse <nick.whitehouse@mccarthyfinch.com>
Authored
Parents 563ffde8
Stats 1 file changed , +15 , -1
Part of In-chat memory: persist tool calls + results across turns (feat-017)

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-d55d7575.md from inside the repo you want the change in.

⬇ Download capture-commit-d55d7575.md