A stability-focused release: bank sync connects more reliably, imports line up 1:1 with Actual and YNAB, and budget delete has been hardened.
π Bank sync
- Enable Banking auth is more reliable. Fixed a case where the session uid wasn't being extracted from the auth response, leaving connections in a stuck state. Re-authenticating now works end-to-end.
- Faster Enable Banking linking. Dropped a redundant
/accounts/{id}/details call during auth β fewer round-trips, fewer timeouts. - SimpleFin: already-linked accounts now surface clearly. If you try to re-claim a SimpleFin setup token, accounts already connected to another budget are shown up front instead of silently failing.
π₯ Imports
- Actual imports now match your source file 1:1. Account counts, category counts, and monthly assignments line up exactly with what Actual shows β no more off-by-one surprises in the summary step.
- "Hold for Next Month" carries over from Actual. Actual's Hold feature maps cleanly onto ZeroSum's For Next Month system, mirroring the balance behavior you had before migrating.
- YNAB import polish. Summary counts and assignment math tightened up to match the source export.
π‘οΈ Data safety
- Hardened budget delete + import. Following a data-loss incident, delete confirmations are stricter, import rollbacks are cleaner, and the recovery path is documented for support. You'll notice a more explicit delete confirmation dialog.
π Analytics
- Closed accounts are now excluded everywhere. Net worth, spending, income, and trend charts no longer pull from closed accounts β your analytics reflect only what's active.
- Balance history chart cleanup. Loans are no longer mixed into the balance history chart (they have their own dedicated loan views).
π± App reliability (PWA)
- Stale bundles recover automatically. If the installed PWA is running an old build, ZeroSum now detects and refreshes it cleanly on next load instead of throwing cryptic errors.
- Service worker no longer spams errors. Registration rejections in unsupported browsers are swallowed gracefully.