2.8.2¶
Released: TBD
Highlights¶
- An automated accounting-integrity test suite now guards the books: every change to invoicing, payments, credits, inventory, costing, or reporting is checked against the fundamental accounting invariants (debits = credits, the reports tie out, AR/inventory reconcile) before it ships.
- The suite immediately paid for itself by catching and fixing a bug that crashed the ledger-module trial balance.
Added¶
- Accounting integrity tests —
tests/graphql/accounting_integrity/(14 tests) drive real invoice / receipt / credit postings through the production services and assert the resulting ledger, inventory, balances, and financial reports are correct and consistent. See Accounting Integrity Tests.
Changed¶
- None.
Fixed¶
- Ledger-module trial balance crash.
LedgerQueryService.trial_balancecast each account id tointbefore loading the account, raisingasyncpg.DataErrorwhenever any ledger data existed; it now passes the UUID through unchanged. The reports-module trial balance was unaffected.
Migrations¶
- None. This release adds no schema changes — no alembic revisions, no RBAC paths, no GraphQL surface changes.
Frontend impact¶
- None. The GraphQL/admin schemas are unchanged. The trial-balance fix means the ledger-module
trialBalancequery now returns data instead of erroring on any populated tenant.
Versioning notes¶
- PATCH bump (
uv run python scripts/bump_version.py 2.8.2 --changelog-stub): a bugfix plus internal test tooling, no breaking or additive schema changes.