Changelog¶
v0.4.0 — Correctness Hardening¶
Released: May 2026
Focus: debt amortization correctness and test infrastructure.
Bug fixes¶
- Fixed intra-account APR ordering in debt amortization — debt balances within a single account are now correctly ordered by APR when applying the avalanche method. Previously, sub-balances on the same account could be processed in incorrect order.
- Fixed mid-month payoff cascade — when a debt is paid off mid-month, freed minimum payments now correctly flow to the next debt in the plan. The snowball flow accumulator was not resetting correctly after payoff.
- Fixed snowball freed_minimums accumulator — the accumulator that tracks freed minimum payments from paid-off debts was not carrying forward correctly across multiple payoff events in the same plan run.
Testing¶
- Added 33 new property-based and integration tests covering debt amortization edge cases
- Test suite now completes in under 3 minutes (session-scoped testcontainers, 3-way CI parallelism)
v0.3.2 — Test Infrastructure¶
Released: May 2026
Changes¶
- Migrated to session-scoped testcontainers — one Postgres instance per test session instead of one per test, significantly reducing test runtime
- 3-way CI test parallelism via pytest-xdist
- Fixed admin bootstrap flow: admin users with no household were incorrectly sent to the
/waitingqueue instead of/admin
v0.3.1 — AIO Image + Bootstrap Fix¶
Released: May 2026
New¶
- All-in-one Docker image (
ghcr.io/justin-cagle/wdiag-aio) — singledocker runcommand to a fully working instance. Bundles Postgres, Redis, Caddy, the app, and both worker pools under supervisord. - GitHub Release automation — releases are created automatically on version tags via GitHub Actions, including AIO and production image builds.
- Demo mode indicator — AIO instances show a banner on the login page with the default credentials.
Bug fixes¶
- Fixed admin bootstrap flow: users created via bootstrap env vars were being redirected to
/waitinginstead of/adminin some cases.
v0.3.0 — Full Feature Set¶
Released: May 2026
New features¶
All backend domain modules complete and tested:
- Accounts — all types, account groups, debt account annotation, balance history
- Transactions — full lifecycle, splits, transfer pairing, refund pairing, deduplication, payment groups
- Classification — rules engine with conditions/actions/priority, income sources, paycheck split-deposit detection
- Budgets — all six methods, rollover policies, versioning, income strategies
- Debts — avalanche/snowball/custom plans, amortization, comparison view
- Goals — all eight goal types, burn-up tracking, completion policies, per-member attribution
- Recurrences — detected and declared, exceptions (skip/amount/date shift), deviation alerts
- Calendar — unified timeline, pay period view, breach warnings
- Projections — day-by-day simulation, scenarios/what-if, breach events, caching
- AI insights — all five providers, five privacy levels, token/cost budgets, Q&A, anomaly detection
- Ingest — SimpleFIN (full sync management, rate limiting, account mapping), OFX/CSV file import
- Invitations — full email delivery, link-only fallback, 72-hour expiry, resend, revoke
- Admin panel — registration control, user management, SMTP, backup, emergency read-only mode
- FX / multi-currency — Frankfurter rate fetching, per-transaction FX snapshot, home currency aggregation
Full React + TypeScript frontend with all features wired up.
v0.2.0 — Core Financial Data Layer¶
Released: April 2026
New features¶
- Accounts and account groups
- Transactions with full classification pipeline
- SimpleFIN and OFX/CSV ingest
- Recurrence detection and management
- Recommendations and HITL queue (backend)
- Budget tracking and actuals
v0.1.0 — Foundation¶
Released: March 2026
New features¶
- Docker Compose deployment stack (Postgres, Redis, Caddy, ARQ workers)
- FastAPI backend with SQLAlchemy 2.0 async
- React + TypeScript frontend (Vite, TanStack Query, Zustand, shadcn/ui)
- Authentication: local auth (username + password + TOTP), session management
- Household model with visibility modes
- CI pipeline (ruff, pyright, pytest, vitest, import-linter, Playwright)
- Pre-commit hooks
- Alembic migrations baseline