Tests cover session create, send message with tree update, get session,
abandon, 404 on missing session, and 503 when AI disabled.
Fixed: ai_usage.conversation_id has FK to ai_conversations, not
ai_chat_sessions. Chat builder now passes conversation_id=None and
tracks session reference in extra_data.chat_session_id.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>