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.