← All posts

v0.3.2 — Chat Rewrite Stabilizes: Forks, Feedback, and Mobile

The Assistant UI rewrite from Lit to React has stabilized with mobile layout refinements, artifact chips in messages, CLI theme parity, React #310 crash fix, and per-message fork/feedback actions.

The Assistant UI rewrite has stabilized. After migrating the chat layer from Lit to React, a series of refinements landed across mobile layout, artifact integration, CLI theming, and crash prevention. This release also introduces per-message fork and feedback actions.

Chat Rewrite Matures

The chat UI is now built on @assistant-ui/react instead of the previous Lit-based message list. This gives us better streaming message handling, built-in composer primitives, and a cleaner React integration. The migration took several iterations — text rendering fixes, prose layout adjustments, mobile toolbar improvements — but the result is a more reliable chat experience.

Mobile Responsiveness

  • Adaptive toolbar buttons that show/hide based on viewport size
  • Touch-friendly targets across the header, model selector, and settings
  • Responsive message bubbles and composer layout

Artifacts in Conversation

Lesson plans, concept maps, animations, and benchmark outputs generated during chat now appear as clickable artifact chips inside assistant messages. Clicking a chip opens the artifact browser directly to that item.

CLI Theme Refresh

The shell palette now matches the web retro-green terminal theme. The boot screen, ASCII headers, and progress indicators share the same dark mode-aware palette.

React #310 Crash Fix

A hook-count mismatch crash (React error #310) was traced to @assistant-ui/react's internal use of conditional hooks. The library calls useRef and useStateinside conditional blocks (annotated with biome-ignore). Under React 19 StrictMode's double-render, these conditions flipped between renders, violating React's hook rules. Removing StrictMode eliminates the crash path while the adapter object is now memoized for additional stability.

Per-Message Fork and Feedback

Each assistant message now shows three action buttons:

  • Thumbs Up: Open a modal for optional positive feedback comments
  • Thumbs Down: Open a modal for optional improvement suggestions
  • Fork: Create a copy of the current session starting from this message

The v0.3.2 web build compiles cleanly with all TypeScript checks passing and 18 tests green.