# #024 v1.0.266 — DEVELOPMENT / NOT COMPLETED

## Legacy voucher number repair / display
Existing vouchers with blank number now receive a deterministic date-scoped **provisional** display number. If `202610230001` already exists, other unnumbered October 23 vouchers display `0002`, `0003`, etc. No database or voucher ID is changed when simply viewing the register, ledger, Calendar or editor.

When the user opens the existing voucher and presses **Save**, #024 assigns the displayed proposed serial as a canonical `yyyymmddNNNN` number, checks it against the saved database snapshot, commits via SQLite and verifies readback. If saving is pending or errors, the number is NOT reported as persisted. A provisional serial is NOT a completed archival migration. Back up original IndexedDB/SQLite before performing writes.

## Consolidated protections
Retains v261 generic-voucher reset (without touching original salary voucher), subaccount modal feedback and payroll mapping preservation; v260 time columns/linked voucher number; v259 dated payroll report; v256 data-loss guards. The #029 Frozen assets, #048 and #054 official runtimes and DB schema are not modified.

## Verification boundary
Linux/Node regression and SHA256 tests only. Windows Installer, Edge layout and real user SQLite remain unverified. Do not mark completed.
