commit b06c6299e8931725dd967c0724b45431be10adeb Author: Ada Fernsby Date: Fri Mar 13 09:41:02 2026 +0000 feat(rounding)!: round half to even instead of half up Long runs of half-up rounding drifted the reconciled balance upward by about a cent every four thousand postings. BREAKING CHANGE: Round() now returns the nearest even multiple on a tie. Callers that depended on half-up must pass RoundHalfUp explicitly. commit 232f14933b1be0ac53767164dba860ff46b3b342 Author: Priya Raman Date: Wed Mar 11 15:47:02 2026 +0000 fix(format): reject amounts with no digits parseMinor returned NaN for input with no digits at all, and the caller stored it as zero. Fixes: #418 commit e178e16c31e4538b36372c954381ad69f33d5fc5 Author: Miguel Otero Date: Mon Mar 9 16:30:00 2026 +0000 chore: the quarterly tidy-up Adds, deletes, renames, copies, chmods and a binary in one commit. commit 337d122a0cf0098c827cb00655cbb2eff5228874 Author: Priya Raman Date: Fri Mar 6 09:31:24 2026 +0000 docs: rename README to guide Frees the name for the operator guide. commit 4cea2b8114b64f5076e1e6b067586c6067c48017 Author: Miguel Otero Date: Wed Mar 4 11:02:19 2026 +0000 feat(ledger): add banker's rounding helper Half-up rounding drifts the balance upward over long runs. commit 437e21e3ec5b252950b50e724b9522198aa02751 Author: Ada Fernsby Date: Mon Mar 2 09:14:03 2026 +0000 feat(ledger): treat a zero delta as a no-op Apply returned a wrapped error for zero-value postings, which the reconciliation job counted as a failure.