---
name: "Split Chat.tsx into smaller components"
---

# Refactor 473: Split Chat.tsx into smaller components

## Current State

- TBD

## Desired State

Chat.tsx is 1513 lines and growing. ChatInput and ChatHeader are already split out. Break up the remaining monolith into focused components — likely candidates: message list/rendering, websocket connection management, message bubbles, typing indicators, and any other distinct UI concerns.

## Acceptance Criteria

- [ ] Chat.tsx reduced to under 500 lines by extracting components
- [ ] Message list/rendering extracted into its own component
- [ ] Message bubble rendering extracted into its own component
- [ ] WebSocket connection logic extracted (hook or provider)
- [ ] All existing Chat.test.tsx tests still pass
- [ ] No visual or behavioural regressions in the chat UI

## Out of Scope

- TBD
