feat: beta feedback widget — frictionless in-session feedback

Full-stack beta feedback system:

Backend:
- BetaFeedback model with reaction, category, text, page context
- POST /feedback/beta (any auth user), GET /feedback/beta (admin, filtered)
- Alembic migration 065 with indexes on user_id, reaction, created_at

Frontend:
- Persistent "Feedback" tab on right edge of all authenticated pages
- Slide-out panel: quick reaction (👍😐👎), category pills, optional text
- Auto-captures page URL and FlowPilot session ID
- Hidden on mobile (<640px), closes on Escape/outside click
- Shows "Thanks!" confirmation then auto-closes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-23 13:12:06 +00:00
parent 03a1f104d2
commit 73c529d6f3
10 changed files with 467 additions and 0 deletions

View File

@@ -49,6 +49,7 @@ from .notification import Notification
from .psa_activity_log import PsaActivityLog
from .file_upload import FileUpload
from .ai_session_embedding import AISessionEmbedding
from .beta_feedback import BetaFeedback
__all__ = [
"User",
@@ -112,4 +113,5 @@ __all__ = [
"PsaActivityLog",
"FileUpload",
"AISessionEmbedding",
"BetaFeedback",
]