Skip to content

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 teststests/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_balance cast each account id to int before loading the account, raising asyncpg.DataError whenever 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 trialBalance query 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.