feat: unified sessions — merge assistant chat into ai_sessions table
Add session_type ('guided'|'chat') and title columns to ai_sessions,
enabling both FlowPilot guided sessions and assistant chat sessions to
live in a single table. This is the foundation for a unified session
history and consistent UX across both interaction modes.
Backend:
- Migration 066: session_type + title columns
- unified_chat_service: chat sessions on ai_sessions with same AI/RAG
- POST /ai-sessions supports session_type='chat' creation
- POST /ai-sessions/{id}/chat for chat messages
- DELETE /ai-sessions/{id} for session deletion
- session_type filter on GET /ai-sessions
Frontend:
- AssistantChatPage rewired to aiSessionsApi (no more assistantChatApi)
- /assistant/:sessionId route for deep-linking
- Session history: type filter pills (All/Guided/Chat), type icons
- Dashboard: both types shown with correct routing and icons
- Fixed glass-border → border-default in dashboard components
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -66,6 +66,16 @@ class AISession(Base):
|
||||
index=True,
|
||||
)
|
||||
|
||||
# ── Session type ──
|
||||
session_type: Mapped[str] = mapped_column(
|
||||
String(10), nullable=False, default="guided", index=True,
|
||||
comment="Session type: guided (FlowPilot) or chat (assistant)",
|
||||
)
|
||||
title: Mapped[Optional[str]] = mapped_column(
|
||||
String(255), nullable=True,
|
||||
comment="Display title for chat sessions; guided sessions use problem_summary",
|
||||
)
|
||||
|
||||
# ── Intake ──
|
||||
intake_type: Mapped[str] = mapped_column(
|
||||
String(20), nullable=False, default="free_text"
|
||||
|
||||
Reference in New Issue
Block a user