- fix(ui/wire-v2): **migration verify phase now shows live progress instead of a frozen label** — golden verify can run for a long time (it re-scans every v1 file against the staged v2 sessions) but the UI only showed the static "Conversion finished, running full verification…", so users saw no movement at all. The verify loop now persists `verifyIndex`/`verifyTotal` (v1 files, the loop's unit) plus a cross-file cumulative `verifyEntries` counter into `wire-v2-convert-state.json` — per-file writes are unconditional, per-entry writes are time-throttled (≥1s) via a new `verifyV1File` `opts.onProgress` callback that fires every 1000 scanned entries (callback errors swallowed; the counter also advances when a file's verifier throws, so x always reaches n). The frontend renders from the state file (`App.jsx` already polls it every 2s), so `ui.wireV2ConvertVerifying` becomes parameterized across all 18 languages: "转换完成,正在校验数据 ({done}/{total}) · 已扫描 {entries} 条…" — the entries counter is the moving signal when one big file dominates (n is often 1); ar uses the paren-free form (RTL). STATE_VERSION stays 1 (fields are additive; all readers are field-tolerant). CLI `ccv convert` output unchanged (it already printed `[verify] <file> (x/n)`). New tests: v2-verify (onProgress monotonic + final count, 1000-entry intermediate cadence on a 2500-entry file, throwing callback swallowed), v2-convert (mid-verify state-file snapshots pin verifyTotal-before-first-file / per-file advance / cross-file accumulation; throwing verifyFn still reaches n/n).
0 commit comments