feat(search): add PostgreSQL FTS on AI sessions with Command Palette integration

- Migration: add generated tsvector column + GIN index on ai_sessions (problem_summary, resolution_summary, escalation_reason, problem_domain)
- Backend: wire FTS into list_sessions q param; add GET /ai-sessions/search endpoint returning AISessionSearchResult (registered before /{session_id} to avoid UUID routing conflict)
- Frontend: add AISessionSearchResult type, aiSessionsApi.search() method, and Command Palette group "FlowPilot Sessions" using Zap icon navigating to /pilot/:id

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-20 03:42:01 +00:00
parent c3afc7a059
commit ce68fa84ca
6 changed files with 148 additions and 7 deletions

View File

@@ -190,3 +190,14 @@ class AISessionDetail(AISessionSummary):
steps: list[AISessionStepResponse] = []
model_config = {"from_attributes": True}
class AISessionSearchResult(BaseModel):
"""Lightweight session result for Command Palette / autocomplete."""
id: UUID
problem_summary: str | None = None
problem_domain: str | None = None
status: str
created_at: datetime
model_config = {"from_attributes": True}