In this release we gave rules a preview that shows exactly which transactions a draft would touch before it is saved, added a calendar alongside the dashboard's period transactions, made the default categories hideable, and closed a long-standing SimpleFIN bug where accounts from different banks collapsed into a single institution. Instances that authenticate through an identity provider can now turn local password and passkey login off entirely, and Securo speaks Dutch.
Features
- See what a rule would do before saving it. The dialog counts every matching transaction, says how many would actually change, and lists them with the category each would move to, so a rule that is too broad is caught while it is still a draft. Closes #609, by @paulovitor6 (#669) ๐
- A calendar view for the dashboard's period transactions. Switch between the list and a month grid showing either daily activity or a running balance, compact or detailed, with the selected day kept in the URL. Closes #580, by @DannyFeliz (#581) ๐
- Default categories can be hidden. A hidden category leaves the pickers and stops being assigned by rules, while existing transactions, budgets and reports keep using it. Rules that reference one are named before you hide it, with the choice to switch them off in the same step. Closes #348, by @RomuloGatto (#477) ๐
- OIDC-only login.
LOCAL_AUTH_ENABLED=falseturns off password and passkey sign-in along with every local-auth route behind it. The setting refuses to start without a complete OIDC configuration, so it cannot lock the last person out. Closes #433, by @RomuloGatto (#434) ๐ - Dutch. A full translation of the interface, by @thijserven (#653) ๐
Fixes
- SimpleFIN accounts from different banks shared one name and logo. Institutions are now rows of their own under a connection, so each account carries the bank it actually belongs to. Closes #345, by @mverrilli (#654) ๐
- The same person could exist twice in a workspace. Names are unique per workspace now, ignoring case and surrounding whitespace, and variants already in the database are merged into one on upgrade. By @ADolkun (#443) ๐
- The dashboard's balance chart did not say what it was comparing. The legend and the tooltip now name the current and the previous month. By @vhsantos26 (#689) ๐
- The dashboard's asset figure read as total assets. It is invested assets, and now says so. Closes #686, by @vhsantos26 (#687) ๐
- The match-type label wrapped in the add-to-rule dialog in locales whose words are longer. Closes #692, by @vhsantos26 (#693) ๐
- Dutch could not be picked as a workspace or instance default. Those two selectors kept lists of their own and were left behind by the translation; both read the shared list now (#725)
- A duplicate person was rejected with a bare "Error". The reason reaches the interface, translated (#726)
Under the hood
Migrations 074, 075 and 076 run automatically on upgrade, adding the hidden flags to categories and category groups, modelling institutions as rows under a connection, and merging case and whitespace variants of a payee name before the workspace uniqueness is enforced ยท frontend dependencies are hardened against supply-chain attacks: a dependency's install scripts never run, what we add is pinned to an exact version, and a cooldown keeps a fresh release from being resolved before anyone has had time to catch it, by @paulo-paes (#187) ๐ ยท CI now fails when two migrations claim the same revision id (#720, #721), labels PRs by risk and size (#694), skips the coverage badge in forks, by @ADolkun (#667) ๐, and no longer crashes on medium and high-risk pull requests, closes #697 (#705) ยท ruff's lint rule selection is pinned so a new release cannot change what CI enforces (#706) ยท the roadmap is linked from the README navigation (#695) ยท backend dependencies and globals were updated (#601, #673)
Thanks @paulovitor6, @DannyFeliz, @RomuloGatto, @thijserven, @mverrilli, @ADolkun, @vhsantos26 and @paulo-paes for the code and the reviews, and @benpourquoi, @brandonjones24, @JulioC and @jrvidotti for the reports ๐
Full Changelog: v0.14.4...v0.14.5