Add Fetch Request pipeline UI with real-time SSEs #8
Reference in New Issue
Block a user
No description provided.
Delete Branch "ai/fetch-request-steps-ui"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Add Fetch Request pipeline UI with real-time SSE progress tracking, ambiguity resolution, list page with filtering/retry, and detail page with stepper/event feed.
Changes
New files
src/FetchRequestDetail.tsx(+675 lines) — Full detail page for a single fetch request with:/fetch-requests/:id/events)progressper step, hidesstartedwhen terminal event follows)Modified files
react-openapi/api/client.ts— addedapi.patch()method for PATCH requestsreact-openapi/hooks/useResource.ts— addedusePatch()mutation hook for partial updates with cache invalidationsrc/FetchRequests.tsx(+347/−73 lines) — Major list page rewrite:resourceOverridesconfigdatetime-localtodate)created_atdescpausestatus support instatusColorsformatApiError()for 422 validation error displaysrc/features/fetch-requests/fetch-requests.models.ts— Added types:pausedtoFetchRequestStatusFetchRequestUpdateinterfaceretry_counttoFetchRequestinterfaceraw_lines,txn_blocks,txn_dicts,txn_dict_count/txn_dicts_countto source typesPendingAmbiguity,AmbiguityCandidate,ResolveAmbiguityPayloadSSEEvent,SSEEventStep,SSEEventStatus,ProgressMessageFetchRequestFiltersformatApiError()helper for FastAPI 422 error parsingRETRY_MAX = 3constantsrc/features/fetch-requests/index.ts— Barrel exports for all new types, hooks, and helperssrc/features/fetch-requests/useFetchRequests.ts— Added hooks:useUpdateFetchRequest()— PATCH viausePatchuseFetchRequestAmbiguities(id)— queries/fetch-requests/:id/ambiguitiesuseResolveAmbiguity()— posts to/ambiguities/:id/resolvewith cache invalidationsrc/main.jsx— Added route/fetch-requests/:id→FetchRequestDetailKey decisions
150/246for enrich)pipeline/failedSSE event triggers refetch + error snackbarload_contentevents excluded from event feed entirely