You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: thirteenth-round audit (duplicate-key data loss, corrupt-file UX, docs)
- Editing a price/tax-rate to a key (effective date + amount) that already exists silently
dropped it via a no-op TreeSet.add. addPrice/addTaxRate now return whether the add landed;
the edit panels detect a collision, roll back to the prior values, and warn instead of
persisting a silent deletion.
- Corrupt data file is no longer a dead end: load() moves the unreadable file aside to a
unique .corrupt-<timestamp> sibling and throws actionable recovery guidance (and the next
launch starts cleanly from the seed). Documented the recovery procedure in README.
- README no longer attributes find-sec-bugs to the security workflow; it runs in the mvn
verify gate (CI), matching SECURITY.md.
Build green: 64 tests, JaCoCo gate, SpotBugs + find-sec-bugs 0; gitleaks/Trivy/Semgrep clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments