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 && (