- Replace Date.now() with v4() for optimistic message IDs (codebase idiom)
- Extract useAuthenticatedAgentChatFetch hook to centralize REST auth+retry
- Extract useDeleteQueuedMessage hook to remove raw fetch from component
- Simplify optimistic rendering: always place in messages atom, let refetch reconcile
- Add thread ownership check to subscription resolver (security fix)
- Server loads message history from DB instead of receiving from client
- Hide broken retry button until retry is properly implemented
- Document GraphQLJSON event payload shapes in DTO
- Fix duplicate ai import and add suppress comments for imperative useRefs
- Add cross-reference comments between parallel mapDBPart functions
https://claude.ai/code/session_01F9LW9EAQj6SSd24AcQ29YZ