ALL-1880: Data audit UI banner + polling + hook (extends #12704)
completedBuild full data audit UI: API client, useDataAudit hook with 5s polling, status banner in DataReviewPage, source-type filter, batch auto-refresh. Extends #12704 (button) on top of #12743 (REST endpoint) and #12739 (scanner).
Event Timeline
created
status_change
queued → in_progress
status_change
in_progress → completed
status_change
completed → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → blocked
status_change
blocked → completed