From c8778bb4e7dc8bde867ceaeafb9c7678d8c53a0b Mon Sep 17 00:00:00 2001 From: chihlasm Date: Tue, 24 Mar 2026 13:36:05 +0000 Subject: [PATCH] fix: align frontend API paths with backend endpoints MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - handoffs: /handoffs/queue → /ai-sessions/queue, claim needs sessionId - resolutions: /resolution-outputs → /outputs - branches: /status suffix removed from PATCH path - Add SessionQueuePage route at /queue Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/src/api/branches.ts | 4 ++-- frontend/src/api/handoffs.ts | 6 +++--- frontend/src/api/resolutions.ts | 6 +++--- frontend/src/router.tsx | 2 ++ 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/frontend/src/api/branches.ts b/frontend/src/api/branches.ts index 8ed391f3..fca4a886 100644 --- a/frontend/src/api/branches.ts +++ b/frontend/src/api/branches.ts @@ -32,8 +32,8 @@ export const branchesApi = { reason?: string ): Promise { await apiClient.patch( - `/ai-sessions/${sessionId}/branches/${branchId}/status`, - { status, reason } + `/ai-sessions/${sessionId}/branches/${branchId}`, + { status, status_reason: reason } ) }, diff --git a/frontend/src/api/handoffs.ts b/frontend/src/api/handoffs.ts index d85ae992..abd8f260 100644 --- a/frontend/src/api/handoffs.ts +++ b/frontend/src/api/handoffs.ts @@ -21,15 +21,15 @@ export const handoffsApi = { return response.data }, - async claimHandoff(handoffId: string): Promise { + async claimHandoff(sessionId: string, handoffId: string): Promise { const response = await apiClient.post( - `/handoffs/${handoffId}/claim` + `/ai-sessions/${sessionId}/handoffs/${handoffId}/claim` ) return response.data }, async getQueue(params?: { intent?: 'park' | 'escalate'; limit?: number }): Promise { - const response = await apiClient.get('/handoffs/queue', { + const response = await apiClient.get('/ai-sessions/queue', { params, }) return response.data diff --git a/frontend/src/api/resolutions.ts b/frontend/src/api/resolutions.ts index 6c5a9f15..b0cf9670 100644 --- a/frontend/src/api/resolutions.ts +++ b/frontend/src/api/resolutions.ts @@ -9,7 +9,7 @@ import type { export const resolutionsApi = { async getOutputs(sessionId: string): Promise { const response = await apiClient.get( - `/ai-sessions/${sessionId}/resolution-outputs` + `/ai-sessions/${sessionId}/outputs` ) return response.data }, @@ -20,7 +20,7 @@ export const resolutionsApi = { data: ResolutionOutputEditRequest ): Promise { const response = await apiClient.patch( - `/ai-sessions/${sessionId}/resolution-outputs/${outputId}`, + `/ai-sessions/${sessionId}/outputs/${outputId}`, data ) return response.data @@ -32,7 +32,7 @@ export const resolutionsApi = { data: ResolutionOutputPushRequest ): Promise { const response = await apiClient.post( - `/ai-sessions/${sessionId}/resolution-outputs/${outputId}/push`, + `/ai-sessions/${sessionId}/outputs/${outputId}/push`, data ) return response.data diff --git a/frontend/src/router.tsx b/frontend/src/router.tsx index 57d14ee4..d15c4209 100644 --- a/frontend/src/router.tsx +++ b/frontend/src/router.tsx @@ -55,6 +55,7 @@ const ReviewQueuePage = lazyWithRetry(() => import('@/pages/ReviewQueuePage')) const FlowPilotAnalyticsPage = lazyWithRetry(() => import('@/pages/FlowPilotAnalyticsPage')) const ScriptBuilderPage = lazyWithRetry(() => import('@/pages/ScriptBuilderPage')) const KBAcceleratorPage = lazyWithRetry(() => import('@/pages/KBAcceleratorPage')) +const SessionQueuePage = lazyWithRetry(() => import('@/pages/SessionQueuePage')) const GuidesHubPage = lazyWithRetry(() => import('@/pages/GuidesHubPage')) const GuideDetailPage = lazyWithRetry(() => import('@/pages/GuideDetailPage')) const AccountSettingsPage = lazyWithRetry(() => import('@/pages/AccountSettingsPage')) @@ -200,6 +201,7 @@ export const router = sentryCreateBrowserRouter([ { path: 'pilot', element: page(FlowPilotSessionPage) }, { path: 'pilot/:sessionId', element: page(FlowPilotSessionPage) }, { path: 'escalations', element: page(EscalationQueuePage) }, + { path: 'queue', element: page(SessionQueuePage) }, { path: 'review-queue', element: page(ReviewQueuePage) }, { path: 'analytics/flowpilot', element: page(FlowPilotAnalyticsPage) }, { path: 'guides', element: page(GuidesHubPage) },