Make biz compare async and cutover-friendly for large tables.

Run compares in the background with progress, persist fails first, and store success as sampled key+row_id hydrated from source so million-row sheets no longer block the API.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-10-08 10:47:39 +08:00
parent 3e2cb4165c
commit 227959b9a2
10 changed files with 1035 additions and 168 deletions

View file

@ -11698,6 +11698,29 @@ html.login-page--paused .login-page__flare {
rgba(8, 13, 24, 0.4);
}
.bs-cmp-progress {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 8px 14px;
padding: 8px 12px;
border-radius: 8px;
border: 1px solid rgba(59, 130, 246, 0.35);
background: rgba(37, 99, 235, 0.12);
color: var(--bs-cmp-ink, #e2e8f0);
font-size: 0.875rem;
}
.bs-cmp-progress.is-failed {
border-color: rgba(239, 68, 68, 0.4);
background: rgba(239, 68, 68, 0.12);
}
.bs-cmp-progress__msg {
flex: 1 1 100%;
font-size: 0.8125rem;
}
/* Native :fullscreen + CSS immersive fallback (class only when FS API blocked) */
.bs-cmp-board.is-fullscreen,
.bs-cmp-board:fullscreen {