feat(web): chat UI with conversations and WebSocket streaming #84

Merged
jason.woltje merged 1 commits from feat/p3-003-chat-ui into main 2026-03-13 13:25:29 +00:00
Owner

Summary

  • Conversation list sidebar with create/select functionality
  • Message display with user/assistant bubbles and timestamps
  • Real-time streaming via socket.io (agent:text, agent:start, agent:end events)
  • Auto-scroll, optimistic message rendering, error handling
  • Chat input with Enter to send, Shift+Enter for newline
  • Auto-creates conversation on first message if none selected

Test plan

  • pnpm typecheck — pass
  • pnpm lint — pass
  • pnpm format:check — pass
  • pnpm --filter @mosaic/web build — 5 routes generated

Closes #28

## Summary - Conversation list sidebar with create/select functionality - Message display with user/assistant bubbles and timestamps - Real-time streaming via socket.io (agent:text, agent:start, agent:end events) - Auto-scroll, optimistic message rendering, error handling - Chat input with Enter to send, Shift+Enter for newline - Auto-creates conversation on first message if none selected ## Test plan - [x] pnpm typecheck — pass - [x] pnpm lint — pass - [x] pnpm format:check — pass - [x] pnpm --filter @mosaic/web build — 5 routes generated Closes #28
jason.woltje added 1 commit 2026-03-13 13:25:22 +00:00
Build the primary chat interface with conversation list sidebar,
message display area, streaming assistant responses via socket.io,
and auto-scrolling. Supports creating new conversations, sending
messages with optimistic updates, and real-time text streaming
from the agent via WebSocket events.

Components: ConversationList, MessageBubble, ChatInput, StreamingMessage
Libs: socket.io client singleton, shared types for Conversation/Message

Refs #28

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
jason.woltje merged commit f0d1d4bafa into main 2026-03-13 13:25:29 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#84