Skip to content

Releases: rollecode/dough

v3.14.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 16:57
  • 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

Choose a tag to compare

@github-actions github-actions released this 07 Jul 14:25
  • 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 with inflow for direction, cleared can be uncleared for a pending hold, and marking it an internal transfer with a counterpart account maintains the opposite leg, local mode only
  • Extend lib/local-transactions.ts with createLocalTransaction, mirroring the update path's insert and signed balance-delta mechanics including the internal-transfer counterpart leg

v3.12.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 16:53
  • 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

Choose a tag to compare

@github-actions github-actions released this 05 Jul 14:35
  • 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

Choose a tag to compare

@github-actions github-actions released this 05 Jul 11:56
  • 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 Synci import marker as a transaction description

v3.11.0

Choose a tag to compare

@github-actions github-actions released this 03 Jul 15:16
  • 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

Choose a tag to compare

@github-actions github-actions released this 02 Jul 21:29
  • 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

Choose a tag to compare

@github-actions github-actions released this 02 Jul 21:25
  • 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

Choose a tag to compare

@github-actions github-actions released this 02 Jul 20:49
  • 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

Choose a tag to compare

@github-actions github-actions released this 01 Jul 17:38
  • 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_categories rows, 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_snapshots table
  • Debts: read debt accounts from the live accounts table (not the frozen ynab_cache snapshot) 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