In this release we put transfer pairing on the Rules page, where its thresholds are rows you can read, reorder and switch off like every other matching rule, and a pair that two candidates fit equally well is asked about instead of guessed. Reports take a custom date range, the desktop sidebar collapses, and four currencies joined the list. On the fixes side, bank sync got a round of correctness work across SimpleFIN and imports, a Pluggy consolidated credit line stops being counted once per card, a long agent conversation answers the newest message rather than the oldest, and receipts upload over plain HTTP again.
Features
- Transfer pairing moved onto the Rules page. The window, the signals and the decision to link rather than ask were 142 lines of constants nobody could see; they are now a card of rules next to the invoice and recurring sets, to reorder, edit, switch off, export or import. A pair is linked only when each leg is the other's single best answer, so two same-amount transfers leaving one account on the same day reach the queue instead of pairing at random, and a card purchase leaves the candidate pool before any rule runs. Closes #973 (#985)
- Reports take a custom date range. Pick any start and end date instead of choosing between the fixed windows, on every report tab. Closes #816, by @yonicsurny (#907) ๐
- The desktop sidebar collapses to icons and remembers the choice, for anyone who wants the width back. Closes #957, by @vhsantos26 (#958) ๐
- Four new currencies. Serbian dinar, by @vmarinkovic (#963) ๐ ยท Jamaican dollar, closes #949, and Saudi riyal with Qatari riyal, by @shaynhornik (#951, #950) ๐
Fixes
- Bank sync correctness, in several places at once. A SimpleFIN account that the Bridge rekeys no longer duplicates on a partial sync, transactions the Bridge publishes weeks after their posted date are picked up by a 45-day overlap, the exclusive end date is honoured without losing the 90-day request cap, provider and imported history reconcile one-to-one in both directions, an import and a sync can no longer run over each other, and a connection that needs reauthentication says so during a scheduled sync. By @ADolkun (#374) ๐
- A Pluggy consolidated credit line was counted once per card. Cards sharing one Open Finance credit line now report that balance once in the dashboard and sidebar totals, with each card's transactions and bills still separate, and the account list says which cards share a line. Closes #680, by @vhsantos26 (#682) ๐
- A long agent conversation answered the oldest messages. The history window was pinned to the start of the conversation, so past a certain length the agent kept replying to questions already answered and ignored the newest one. Closes #967, by @huber14 (#968) ๐
- Receipts could not be uploaded over plain HTTP. Picking a file threw before the upload started on any non-HTTPS address, including a LAN one. By @Bortlesboat (#982) ๐
- The MCP
get_account_summarytool failed on every call with "Object of type UUID is not JSON serializable". Closes #970, by @dinoconstantinou87 (#953) ๐ - The investment import template did not match itself. The downloaded CSV marks required columns with an asterisk, and those markers stopped the columns being detected when the same file was uploaded back. By @FelypeNasc (#984) ๐
- A manual transaction dropped the external id it was given. The API accepted and returned the field while the create path discarded it, so a client could not match the row back to its own reference. By @z0diak (#838) ๐
- Helm: the celery-beat pod could not start. It mounted the agent volumes whenever persistence was enabled, while the volumes themselves are only created when agents are, so on default values it waited forever for claims that never existed. By @jorishaenseler15 (#952) ๐, with a follow-up so a deployment that does run agents keeps the volumes it already has (#986)
Under the hood
Migrations 090 and 091 run automatically on upgrade: one column for the shared credit line, and one more word in the constraint behind the matching queue, so it can hold a transfer question ยท uv moved to 0.12.17 (#976) and the backend dependencies were refreshed (#977)
Thanks @ADolkun, @vhsantos26, @yonicsurny, @huber14, @vmarinkovic, @shaynhornik, @Bortlesboat, @dinoconstantinou87, @FelypeNasc, @z0diak and @jorishaenseler15 for the code and the reviews, and @hdescroizette, @aqlmsmdrluna, @moyanich for the reports ๐
Full Changelog: v0.16.0...v0.16.1