Releases: rollecode/dough
Releases · rollecode/dough
Release list
v3.14.0
- Make savings-goal budget links real and visible: picking a category in the goal modal now actually ties the goal's progress to the budget (previously only the budget inspector's link drove derivation while the modal wrote a dead field), clearing the picker unlinks the goal back to a manually tracked savings monitor, the modal shows which budget group/category the goal is linked to, and deleting a goal clears its category links
- Disable the saved-amount field on a linked goal (the value is derived from the linked category's available balance, so typing into it never showed up): it now greys out at half opacity with a note saying it is derived, and the stored manual value survives for a later unlink
v3.13.0
- Add a write-scoped v1 endpoint for creating a transaction (
POST /api/v1/transactions/create), so an authorized API client can add a row Synci has not imported yet - most importantly a pending card hold (varaus) - and dough matches the bank's available balance to the cent; amount is the absolute value withinflowfor direction,clearedcan beunclearedfor a pending hold, and marking it an internal transfer with a counterpart account maintains the opposite leg, local mode only - Extend
lib/local-transactions.tswithcreateLocalTransaction, mirroring the update path's insert and signed balance-delta mechanics including the internal-transfer counterpart leg
v3.12.0
- Add write-scoped v1 endpoints for editing and deleting transactions (
POST /api/v1/transactions/update,POST /api/v1/transactions/delete), so an authorized API client can fix a misrouted transfer or remove a bad row; updates are partial (only provided fields change) and marking a row an internal transfer with a counterpart account maintains the opposite leg, local mode only - Extract the local-mode transaction update and delete logic into
lib/local-transactions.ts, shared by the session-authenticated route and the v1 API
v3.11.2
- Fix the cover/fund/move/activity popovers being buried under a dark overlay on phones: the calculator sheet's dimmed backdrop style hit the backdrop class those popovers share, so it now applies only to the calculator's own backdrop
- Make covering overspending one click: when there is not enough unbudgeted money to cover from, the Kata button jumps straight to the overspent list instead of opening a menu whose only option was Erikseen
v3.11.1
- Fix the phone budget layout collapsing rows onto extra lines: the compact four-column grid and the calculator bottom sheet were declared in a media block earlier in the stylesheet than the base rules of the same selectors, so the base rules won and the fourth cell wrapped; the compact grid is now the mobile-first base and phone overrides live after every rule they override
- Never mark a transaction as an internal transfer without its counterpart account: the category-only fallback created transfers reading "no second account (external)"; an unpaired row now stays as is until the opposite leg arrives or the counterpart is learned
- Relabel both legs when a late-arriving leg attaches to an existing transfer, and self-heal any transfer leg still showing the original payee once its opposite leg exists, so the counterpart account is always visible
- Stop suggesting and prefilling the literal
Synciimport marker as a transaction description
v3.11.0
- Stop fabricating the opposite leg of a transfer when the counterpart account is bank-fed: the real leg always arrives from the bank on its own schedule, so a fabricated one doubled the transfer and permanently drifted the counterpart balance; fabrication now only happens for accounts Synci does not feed
- Let transfer pairing reclaim an inflow the fallback filed as income: the opposite leg often arrives days later, and without re-pairing the money stayed income on one account while the other side became a transfer with no counterpart, inflating income and mismatching balances (pattern-matched paychecks stay protected)
- Attach late-arriving transfer legs of either direction to an existing single-leg transfer, not just incoming ones
- Categorise an unmatched inflow from a payee the household only spends at as a refund to that payee's usual category instead of income, so a courier or shop refund no longer shows up as money to budget
- Never offer income categories to the AI expense categoriser
v3.10.2
- Scope the Synci import duplicate check to the same account: matching on amount alone across all accounts made a common round amount (a 50 euro card payment) count as a duplicate of a same-size transfer on another account days earlier, permanently dropping the real purchase and leaving the account balance above the bank's
v3.10.1
- Walk every page of the Synci transactions feed instead of only the newest one: the API ignores its per-account filter and plain page parameter (pagination is
page[number]/page[size]), so the sync only ever saw the latest 25 transactions and a quiet account's purchases were pushed out of the window by busier accounts and silently lost; the full walk also backfills anything missed earlier
v3.10.0
- Open a finger-sized calculator sheet when editing an assigned amount on a touch device: the native number keypad has no operator keys, so expressions like 50+10 could not be typed on mobile; the first digit replaces the prefilled amount and operators build on it, matching the keyboard behaviour
- Show the activity (spent) column in the budget on phones with a compact four-column layout instead of dropping the column
v3.9.0
- Make everything that read YNAB-only tables work in local mode, so households that started on YNAB and moved off it (or never used it) see correct data everywhere
- Dashboard: build the current month's category spending from the local ledger instead of the frozen
ynab_categoriesrows, which are empty for months added since the cutover - AI summary and chat: fix the local category-activity sign (spending was stored positive, so the "spending by category" breakdown filtered itself out to empty) and derive the previous-months comparison from the transactions ledger instead of the stale
monthly_snapshotstable - Debts: read debt accounts from the live accounts table (not the frozen
ynab_cachesnapshot) and resolve category-linked monthly targets from the local budget when YNAB is disconnected - Category list endpoint now serves the local categories table in local mode