Add Fetch Request pipeline UI with real-time SSEs #8

Merged
aetos merged 16 commits from ai/fetch-request-steps-ui into fetch-request-steps-ui 2026-05-30 15:58:49 +00:00
Showing only changes of commit 4628190858 - Show all commits

View File

@@ -145,7 +145,7 @@ export default function FetchRequestDetail() {
const [sseEvents, setSseEvents] = React.useState<SSEEvent[]>([]); const [sseEvents, setSseEvents] = React.useState<SSEEvent[]>([]);
const [sseConnected, setSseConnected] = React.useState(false); const [sseConnected, setSseConnected] = React.useState(false);
const [liveParsedCount, setLiveParsedCount] = React.useState<number>(0); const [liveParsedCount, setLiveParsedCount] = React.useState<number | undefined>(undefined);
const [stepStats, setStepStats] = React.useState<Record<string, number>>({}); const [stepStats, setStepStats] = React.useState<Record<string, number>>({});
const sseRef = React.useRef<EventSource | null>(null); const sseRef = React.useRef<EventSource | null>(null);
const feedRef = React.useRef<HTMLDivElement>(null); const feedRef = React.useRef<HTMLDivElement>(null);
@@ -262,14 +262,14 @@ export default function FetchRequestDetail() {
const progressPercent = React.useMemo( const progressPercent = React.useMemo(
() => computeProgressPercent( () => computeProgressPercent(
(fetchRequest as any)?.status as FetchRequestStatus ?? "pending", (fetchRequest as any)?.status as FetchRequestStatus ?? "pending",
liveParsedCount, liveParsedCount ?? 0,
seenSteps, seenSteps,
), ),
[fetchRequest, liveParsedCount, seenSteps], [fetchRequest, liveParsedCount, seenSteps],
); );
const displayParsedCount = React.useMemo(() => { const displayParsedCount = React.useMemo(() => {
if (liveParsedCount > 0) return liveParsedCount; if (liveParsedCount && liveParsedCount > 0) return liveParsedCount;
const source = (fetchRequest as any)?.source; const source = (fetchRequest as any)?.source;
const persistedCount = source?.txn_dict_count ?? source?.txn_dicts_count ?? 0; const persistedCount = source?.txn_dict_count ?? source?.txn_dicts_count ?? 0;
if (persistedCount > 0) return persistedCount; if (persistedCount > 0) return persistedCount;