fix: 6 integration audit fixes — ticket filter, admin nav, FK scope, debounce, error messages

- Fix AISession.ticket_id → psa_ticket_id in list_sessions filter query
- Add Gallery nav item (LayoutGrid icon) to AdminSidebar navItems array
- Remove ForeignKey from FileUpload.session_id (Python model) + migration b8d2f4a6c091 to drop DB constraint, allowing column to reference either session type
- Add 400ms debounce on AI session search input in SessionHistoryPage (aiSearchInput state + useRef timeout pattern)
- Show friendly 503 error message in RichTextInput upload error handler (both initial upload and retry paths)
- Add overflow-x-auto to FlowPilotAnalyticsPage tab bar container

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-20 04:06:41 +00:00
parent cb54045593
commit 2ed8a2af15
7 changed files with 70 additions and 11 deletions

View File

@@ -73,10 +73,13 @@ export function RichTextInput({
})
})
.catch((err) => {
const errorMsg = err?.response?.status === 503
? 'File uploads not available — contact your administrator'
: err?.message || 'Upload failed'
setPendingUploads((prev) =>
prev.map((u) =>
u.id === upload.id
? { ...u, status: 'error' as const, error: err?.message || 'Upload failed' }
? { ...u, status: 'error' as const, error: errorMsg }
: u
)
)
@@ -196,10 +199,13 @@ export function RichTextInput({
})
})
.catch((err) => {
const errorMsg = err?.response?.status === 503
? 'File uploads not available — contact your administrator'
: err?.message || 'Upload failed'
setPendingUploads((prev) =>
prev.map((u) =>
u.id === uploadId
? { ...u, status: 'error' as const, error: err?.message || 'Upload failed' }
? { ...u, status: 'error' as const, error: errorMsg }
: u
)
)