Companion (Lattice) bubble text is ephemeral — no persistence or feedback channel

Resolved 💬 3 comments Opened Apr 6, 2026 by m3data Closed Apr 6, 2026

Summary

The companion feature (e.g., Lattice) generates observations in speech bubbles that are useful and sometimes catch things the main Claude instance misses. However:

  1. Bubble text is never serialised — the session JSONL records companion_intro (name, species) but never the actual observation content
  2. No feedback channel to the main instance — Claude cannot see what the companion said unless the user manually screenshots and shares it
  3. Bubbles are ephemeral — they disappear after a few seconds, which isn't always enough time for the user to read, process, and decide whether to relay the observation

Real-world example

During a marking assistant session, the companion noticed that four students received identical AI-generated scores (87.3) and flagged it as suspicious. This led to discovering that the scoring model was collapsing to attractor values — 17 out of 86 students had duplicate score vectors across all criteria. The companion caught the pattern before the main instance did, but the user had to screenshot the bubble and paste it into the conversation for the main instance to act on it.

What would help

In priority order:

  1. Persist bubble text to the session JSONL — so observation history exists and can be reviewed
  2. Make companion observations available to the main instance — either as system messages in context, or via a queryable mechanism (e.g., recent companion observations as a tool or context injection)
  3. Configurable bubble duration — or a way to review recent companion observations in the UI (a log/history panel)

Why this matters

The companion is functioning as a genuine second observer — a separate inference that watches the conversation from a different angle. When it catches something the main instance missed, the architectural value is real. But with zero persistence and no feedback channel, the coupling between companion and main instance is broken. The user becomes a manual relay, which defeats the purpose of having an independent observer.

The companion_intro entry in the JSONL shows the infrastructure for serialisation exists. The bubble text just isn't being written.

Environment

  • Claude Code v2.1.92
  • macOS (CLI)
  • Companion: Lattice (ghost)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗