From acbfca94f20679d60e4af59ac70b50a4e94d764d Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Fri, 29 May 2026 15:55:40 +0530 Subject: [PATCH] fixes --- src/FetchRequestDetail.tsx | 26 +++++++++++++++++++++----- src/FetchRequests.tsx | 19 +++++++++++++++++-- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/FetchRequestDetail.tsx b/src/FetchRequestDetail.tsx index f33a47d..745d9e9 100644 --- a/src/FetchRequestDetail.tsx +++ b/src/FetchRequestDetail.tsx @@ -92,7 +92,7 @@ export default function FetchRequestDetail() { const navigate = useNavigate(); const config = useConfig(); - const { data: fetchRequest, isLoading, error: fetchError } = useFetchRequest(id!); + const { data: fetchRequest, isLoading, error: fetchError, refetch: refetchRequest } = useFetchRequest(id!); const updateMutation = useUpdateFetchRequest(); const resolveMutation = useResolveAmbiguity(); const { data: ambiguities, refetch: refetchAmbiguities } = useFetchRequestAmbiguities(id!); @@ -114,6 +114,10 @@ export default function FetchRequestDetail() { try { const parsed: SSEEvent = JSON.parse(event.data); setSseEvents((prev) => [...prev, parsed]); + if (parsed.status === "paused") { + refetchRequest(); + refetchAmbiguities(); + } } catch { // ignore malformed events } @@ -175,6 +179,7 @@ export default function FetchRequestDetail() { const resolvedAmbiguities = ambiguities?.filter((a: any) => a.status === "resolved") ?? []; const hasAmbiguities = ambiguities && ambiguities.length > 0; const allResolved = hasAmbiguities && pendingAmbiguities.length === 0; + const ambiguitiesLoading = !ambiguities; return ( @@ -358,22 +363,32 @@ export default function FetchRequestDetail() { - {hasAmbiguities && ( + {(hasAmbiguities || req.status === "paused") && ( Ambiguity Resolution - {allResolved ? ( + {ambiguitiesLoading ? ( + + + Loading ambiguities... + + ) : allResolved ? ( All ambiguities resolved — pipeline will resume on next poll cycle + ) : !hasAmbiguities ? ( + + Pipeline paused — no ambiguities found + ) : ( Pipeline paused — resolve ambiguities to continue )} + {hasAmbiguities && ( {ambiguities.map((ambiguity: any) => { const isResolved = ambiguity.status === "resolved"; @@ -444,8 +459,9 @@ export default function FetchRequestDetail() { ); })} - - )} + )} + + )} ); } diff --git a/src/FetchRequests.tsx b/src/FetchRequests.tsx index be105d4..d63d204 100644 --- a/src/FetchRequests.tsx +++ b/src/FetchRequests.tsx @@ -304,20 +304,22 @@ export default function FetchRequests() { setStartDate(e.target.value)} size="small" InputLabelProps={{ shrink: true }} + inputProps={{ max: new Date().toISOString().split("T")[0] }} sx={{ flex: 1 }} /> setEndDate(e.target.value)} size="small" InputLabelProps={{ shrink: true }} + inputProps={{ max: new Date().toISOString().split("T")[0] }} sx={{ flex: 1 }} /> @@ -465,6 +467,19 @@ export default function FetchRequests() { + {req.status === "paused" && ( + + { + e.stopPropagation(); + navigate(`/fetch-requests/${req.id}`); + }} + > + + + + )} {req.status === "failed" && (req.retry_count ?? 0) < RETRY_MAX && (