- Defect 1: preview() header sample count now uses sum of grouped values from fp.project()'s in-memory copy, not len(rows) from the live ro connection. (Two snapshots were diverging under concurrent writes.) - Defect 2: --dry-run --csv on empty backlog now emits the CSV header line via fp.write_csv([]) before early-returning, instead of printing zero bytes. - Defect 3: test_main_contract_dry_run_does_not_apply patches proficiency_store.add_outcome (the entry point fold_onto actually calls) with wraps so the real function executes but the call is observable. Also verifies applied_at remains NULL on the on-disk DB.
18 KiB
18 KiB