Verify conversation row is auto-created when a new conversationId arrives
🤖 Generated with Claude Code
## Summary
- M1-001: Persist user messages to DB immediately on receipt in
- M1-002: Accumulate streaming assistant text and persist full response on
- M1-003: Store metadata on each message: , , (input/output/cache), array,
Auto-creates the conversation row if it does not already exist (the from the WebSocket can be a new UUID).
Closes #291
## Test plan
- [ ] Send a user message via WebSocket and verify it appears in table with role=user
- [ ] Verify assistant response is saved after streaming completes (role=assistant)
- [ ] Verify metadata JSON contains model, provider, tokenUsage, toolCalls, timestamp
- [ ] Verify conversation row is auto-created when a new conversationId arrives
🤖 Generated with Claude Code
Wire ChatGateway to ConversationsRepo so every user message is saved on
receipt (M1-001) and every assistant response is saved on agent:end with
accumulated streaming text (M1-002). Metadata includes model, provider,
tokenUsage (input/output/cache counts), toolCalls array, and timestamp
on each message record (M1-003). Auto-creates the conversation row when
the agent session is new.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Auto-creates the conversation row if it does not already exist (the from the WebSocket can be a new UUID).
Closes #291
Test plan
🤖 Generated with Claude Code