diff --git a/src/components/admin/review-row.tsx b/src/components/admin/review-row.tsx index c9de0a2..3cfb34f 100644 --- a/src/components/admin/review-row.tsx +++ b/src/components/admin/review-row.tsx @@ -583,6 +583,14 @@ export function ReviewRow({ } ) + // A human review takes as long as it takes — showing its run as "Sending…" + // for that whole time reads as though the dispatch is still going. Once the + // run exists, the only fact the operator needs is that it was sent, so an + // in-flight run and a completed one look the same here. Polling continues + // regardless: onCompleted is what surfaces the workflow's results. + const humanReviewSent = + humanReviewStatus === "COMPLETED" || humanReviewInFlight + // ── Merge-specific interactive state ──────────────────────────────────────── const [checkedSources, setCheckedSources] = useState>(new Set()) const [canonicalId, setCanonicalId] = useState("") @@ -778,38 +786,36 @@ export function ReviewRow({