csv backfill import: additive-only writer, duplicate review, undo, ledger source filter
Fills the permanent history gap on accounts whose SimpleFIN feed reaches back
only a week. Imports attach to an account sync already discovered; they only
insert, never reconcile, sweep, or overwrite anything sync owns.
Deliberately does not reuse ingestTransactions: it treats its feed as
authoritative and its stale-pending sweep would soft-delete every pending row
absent from a backfill CSV.
Date-only values anchor at noon UTC, not midnight — formatDay renders local, so
midnight displayed a day early across the Americas and a month's first day would
have read as the previous month while reporting under the correct one. The
duplicate window follows, counting whole UTC calendar days rather than 86400s.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>