Commit Graph

  • 22835fa31b
    feat(currency): add SGD (Singapore Dollar) (#794) main Ideal 2026-08-13 21:55:09 +0800
  • 5190d58e93
    feat(landing): add two user testimonials (#796) Víctor Falcón 2026-08-13 15:54:45 +0200
  • 1e3f973672 refactor(landing): stop testimonials from carrying a dead email hash Víctor Falcón 2026-08-13 15:40:19 +0200
  • 4a2f853386 feat(landing): add two user testimonials Víctor Falcón 2026-08-13 15:29:59 +0200
  • 6219b6b7af
    fix(banking): recognise a spent daily allowance, and stop it swallowing manual syncs (#795) Víctor Falcón 2026-08-13 13:25:50 +0200
  • 24258a8037 fix(banking): stop the backoff from silently swallowing a manual sync Víctor Falcón 2026-08-13 13:14:19 +0200
  • ad99a46f09 fix(banking): recognise a spent daily allowance from what the banks actually say Víctor Falcón 2026-08-13 12:53:36 +0200
  • 3baf9e5b91
    feat(currency): add SGD (Singapore Dollar) idealsh 2026-08-08 14:43:04 +0800
  • 57bcdf89c9
    fix(banking): give every account its turn when the bank refuses one of them (#793) Víctor Falcón 2026-08-13 10:27:18 +0200
  • 8fef50f829
    fix(subscriptions): assign the price arm before registration, not after (#792) Víctor Falcón 2026-08-13 10:14:37 +0200
  • 271b659260 fix(banking): give every account its turn when the bank refuses one of them Víctor Falcón 2026-08-13 10:13:56 +0200
  • 59b1ff61df fix(subscriptions): assign the price arm before registration, not after Víctor Falcón 2026-08-12 16:30:00 +0200
  • 98f03db50c
    fix(landing): keep the header from overflowing at mid widths (#791) Víctor Falcón 2026-08-12 15:47:03 +0200
  • 44d771a580 fix(landing): keep the nav readable while it is icon-only Víctor Falcón 2026-08-12 15:33:02 +0200
  • df79f1b77d
    chore: release v0.2.8 (#790) v0.2.8 Víctor Falcón 2026-08-12 15:28:48 +0200
  • e210f7f5cf chore: release v0.2.8 Víctor Falcón 2026-08-12 15:20:37 +0200
  • 089423b053 fix(landing): keep the header from overflowing at mid widths Víctor Falcón 2026-08-12 15:19:24 +0200
  • a1a5bdb69a fix(subscriptions): round the high yearly price to a .99 monthly equivalent price-yearly-rounding Víctor Falcón 2026-08-12 14:01:17 +0200
  • 5a61375ea5
    feat(subscriptions): add an A/B price experiment (€3.99 control vs €8.99 high) (#700) Víctor Falcón 2026-08-12 13:36:49 +0200
  • 2c7fe5d64a
    fix(wise): send the pagination cursor under the name Wise reads (#788) Víctor Falcón 2026-08-12 13:30:37 +0200
  • dd56224947 fix(wise): sync the balance first, and don't let it cost the transactions Víctor Falcón 2026-08-12 13:19:06 +0200
  • 35f12096c2 fix(wise): bound the walk to the job's budget, once per connection Víctor Falcón 2026-08-12 13:19:06 +0200
  • a7523bfc4f fix(wise): send the pagination cursor under the name Wise reads Víctor Falcón 2026-08-12 13:14:33 +0200
  • 0af873d88a fix(subscriptions): treat a blank start date as the experiment being off Víctor Falcón 2026-08-12 12:55:49 +0200
  • 2f00a56272
    fix(budgets): re-derive budget membership when labels are attached without a model event (#787) Víctor Falcón 2026-08-12 12:48:47 +0200
  • f4c21147f1
    feat(budgets): count shared accounts at the owner's percentage (#786) Víctor Falcón 2026-08-12 12:47:43 +0200
  • 93c3ecda8d fix(subscriptions): annotate PriceExperiment as @api for static analysis Víctor Falcón 2026-08-12 12:44:11 +0200
  • ea92ca1292 feat(subscriptions): A/B price experiment (€3.99 control vs €8.99 high) Víctor Falcón 2026-08-12 12:31:06 +0200
  • ba0ee0eab0 feat(budgets): count shared accounts at the owner's percentage Víctor Falcón 2026-08-12 12:29:32 +0200
  • 56d7f8c960 fix(budgets): cover the bulk actions bar and stop the re-evaluate job queueing one reassignment per row Víctor Falcón 2026-08-12 12:24:32 +0200
  • fa4b420cd9 fix(budgets): re-derive budget membership when labels are attached without a model event Víctor Falcón 2026-08-12 12:09:11 +0200
  • 8af9b74fd3
    refactor(budgets): extract the tracked-period lookup out of assignTransaction (#785) Víctor Falcón 2026-08-12 11:50:46 +0200
  • 42b67d0609
    refactor(open-banking): bring the authorization callback back under the complexity threshold (#784) Víctor Falcón 2026-08-12 11:47:22 +0200
  • 7edbff10ac refactor(budgets): extract the tracked-period lookup out of assignTransaction Víctor Falcón 2026-08-12 11:29:07 +0200
  • 1d5c65a23a fix(open-banking): keep a non-string callback code from 500ing Víctor Falcón 2026-08-12 11:35:50 +0200
  • b7c1d4d697 test(open-banking): cover the callback session exchange failure Víctor Falcón 2026-08-12 11:27:40 +0200
  • 8139aad99f refactor(open-banking): extract the callback session and completion branches Víctor Falcón 2026-08-12 11:23:06 +0200
  • baacd24839 refactor(open-banking): extract the callback authorization error branch Víctor Falcón 2026-08-12 11:20:41 +0200
  • 091457c747
    fix(banking): stop bank connections from silently dropping out of scheduled syncing (#782) Víctor Falcón 2026-08-12 11:32:36 +0200
  • 4ba78e54d8
    feat(reports): email a monthly CSV of active user emails to the owners (#783) Víctor Falcón 2026-08-12 11:29:28 +0200
  • 86f172218e fix(banking): record the repeat job deaths, not just the first one Víctor Falcón 2026-08-12 11:21:16 +0200
  • caa94bee8b refactor(reports): configure report recipients via env and cover mail rendering Víctor Falcón 2026-08-12 11:11:06 +0200
  • b6bc7756bc
    feat(subscriptions): end the trial experiment and make the trial length per plan (#762) Víctor Falcón 2026-08-12 10:59:55 +0200
  • d570aee211 feat(reports): email a monthly CSV of active user emails to the owners Víctor Falcón 2026-08-12 10:41:11 +0200
  • e01979f002 fix(banking): bound the unique lock so a lost one can't park a connection Víctor Falcón 2026-08-12 09:43:31 +0200
  • e0481df497 fix(banking): record the job deaths that never reach handle() Víctor Falcón 2026-08-12 09:43:03 +0200
  • e60fdf4faa fix(banking): repair the two connections stranded just before #757 Víctor Falcón 2026-08-12 09:41:08 +0200
  • 030de06618 fix(banking): hand back the retry budget when a connection is reconnected Víctor Falcón 2026-08-12 09:40:10 +0200
  • 0c5f075c1f fix(banking): don't charge an out-of-band job death to the connection Víctor Falcón 2026-08-12 09:38:25 +0200
  • 5ec62d8625
    fix(observability): stop our own page navigations from reporting fake network errors (#780) Víctor Falcón 2026-08-11 18:12:00 +0200
  • ab3902af39
    fix(budgets): keep labeled expenses out of the catch-all budget (#781) Víctor Falcón 2026-08-11 17:45:19 +0200
  • 1d03f35477 fix(budgets): let the tracking budget win before the catch-all absorbs Víctor Falcón 2026-08-11 17:33:29 +0200
  • b85f865c41 fix(budgets): let the tracking budget win before the catch-all absorbs Víctor Falcón 2026-08-11 17:32:36 +0200
  • 6a7059d42d fix(onboarding): stop showing a match count for the token the user replaced Víctor Falcón 2026-08-11 17:14:33 +0200
  • 0100a97dbd fix(observability): route the reloads through the same departure Víctor Falcón 2026-08-11 17:11:01 +0200
  • 4930405e79 fix(budgets): keep labelled expenses out of the catch-all budget Víctor Falcón 2026-08-11 17:10:30 +0200
  • 09ea3b010b fix(observability): stop leaving when the page turns out to have survived Víctor Falcón 2026-08-11 17:09:42 +0200
  • b7dc8dc647 fix(observability): match the message Inertia actually produces Víctor Falcón 2026-08-11 17:07:48 +0200
  • 386f625f15 fix(observability): stop our own page navigations from reporting fake network errors Víctor Falcón 2026-08-11 16:54:29 +0200
  • b2ff1664e2
    feat(mcp): budget tools — read, create, edit and delete (#779) Víctor Falcón 2026-08-11 16:28:53 +0200
  • 131d846b4d feat(mcp): delete budgets, and apply both reviews Víctor Falcón 2026-08-11 16:16:59 +0200
  • f4a74d88d6 fix(budgets): stop a day-of-month start day from hanging weekly period generation Víctor Falcón 2026-08-11 16:16:49 +0200
  • 2a4134966b feat(mcp): read, create and edit budgets Víctor Falcón 2026-08-11 15:50:40 +0200
  • 12cab755e3
    feat(roadmap): add a public roadmap page mirrored from UserJot (#778) Víctor Falcón 2026-08-11 16:14:59 +0200
  • 0ebac688f8 feat(roadmap): add a public roadmap page mirrored from UserJot Víctor Falcón 2026-08-11 16:02:02 +0200
  • 5ee992644c
    feat(landing): stop auto-redirecting signed-in visitors to the dashboard (#777)a Víctor Falcón 2026-08-11 16:02:18 +0200
  • 6803f2cf0e
    refactor(accounts): split store/update in the account controller (#776) Víctor Falcón 2026-08-11 15:58:47 +0200
  • 1553325c4f
    refactor(settings): move the last two settings tables onto the shared table and hook (#775) Víctor Falcón 2026-08-11 15:54:18 +0200
  • 9f767e8944 feat(landing): point the landing CTAs at the dashboard for signed-in visitors Víctor Falcón 2026-08-11 15:49:37 +0200
  • 89a744221c refactor(accounts): split store/update and share the attribute mapping Víctor Falcón 2026-08-11 15:14:41 +0200
  • 6d74440c75 test(landing): assert a signed-in visitor stays on the landing page Víctor Falcón 2026-08-11 15:46:09 +0200
  • a429512367 fix(settings): drop the table hook — the React Compiler breaks useReactTable in it Víctor Falcón 2026-08-11 15:44:21 +0200
  • 200283e32a feat(landing): stop auto-redirecting signed-in visitors to the dashboard Víctor Falcón 2026-08-11 15:37:51 +0200
  • c9a70ffa1a
    feat(accounts): count shared accounts at the owner's percentage (#750) Víctor Falcón 2026-08-11 15:26:54 +0200
  • ed157f6f8a
    refactor(frontend): call backend routes through Wayfinder instead of literal URLs (#772) Víctor Falcón 2026-08-11 15:26:10 +0200
  • 0385c98615 refactor(accounts): extract the loan detail sync out of the update action Víctor Falcón 2026-08-11 15:17:25 +0200
  • fa6f6e2be3
    refactor(transactions): build the bulk selection once in bulkUpdate (#774) Víctor Falcón 2026-08-11 15:14:19 +0200
  • ede51ff601 test(accounts): onboard the shared-account test user Víctor Falcón 2026-08-10 10:05:54 +0200
  • 7e29789bfe fix(accounts): harden the ownership share after review Víctor Falcón 2026-08-10 09:47:49 +0200
  • 890a59e750 feat(accounts): count shared accounts at the owner's percentage Víctor Falcón 2026-08-10 09:32:22 +0200
  • 6b441a0f02
    refactor(inertia): group the shared user props and name the inline conditions (#773) Víctor Falcón 2026-08-11 15:09:55 +0200
  • 3c4de4dfbd refactor(settings): put the remaining two settings tables on the shared pieces Víctor Falcón 2026-08-11 15:07:59 +0200
  • a28f922fdc refactor(transactions): build the bulk selection once instead of twice Víctor Falcón 2026-08-11 15:04:11 +0200
  • 45b22a9fcc refactor(inertia): group the user's collection props and name the demo/encryption conditions Víctor Falcón 2026-08-11 14:59:37 +0200
  • a912fb2f45
    refactor(transactions): split the category/label filter out of applyFilters (#771) Víctor Falcón 2026-08-11 14:58:59 +0200
  • 219944564e refactor(frontend): call backend routes through Wayfinder instead of literal URLs Víctor Falcón 2026-08-11 14:56:08 +0200
  • 4dbe4a247a refactor(transactions): pull the category/label filter out of applyFilters Víctor Falcón 2026-08-11 14:48:59 +0200
  • 8d58e0bf81
    refactor(settings): dedupe the categories and labels pages (#770) Víctor Falcón 2026-08-11 14:37:23 +0200
  • 952ca41eb1
    refactor(analytics): dedupe the two account balance evolution endpoints (#766) Víctor Falcón 2026-08-11 14:36:52 +0200
  • 77d55f88df
    refactor(mcp): dedupe record resolution and field updates in the write tools (#767) Víctor Falcón 2026-08-11 14:35:01 +0200
  • 6a0c00dce8
    refactor(landing): extract the scroll-progress hook every preview duplicated (#768) Víctor Falcón 2026-08-11 14:34:24 +0200
  • a190d37307
    feat(deps): upgrade Inertia.js from v2 to v3 (#769) Víctor Falcón 2026-08-11 14:33:31 +0200
  • 0ab4873286 refactor(settings): share the row actions and the table between the categories and labels pages Víctor Falcón 2026-08-11 14:19:42 +0200
  • 9934100f3d chore(inertia): keep v3 DevTools request recording opt-in Víctor Falcón 2026-08-11 13:57:30 +0200
  • bf875e152c fix(mcp): pass the space-scoped query so phpstan can type the resolved model Víctor Falcón 2026-08-11 13:56:31 +0200
  • 97af319387 fix(analytics): drop the redundant nullsafe operator phpstan flagged Víctor Falcón 2026-08-11 13:54:29 +0200
  • d41336c710 refactor(landing): extract the scroll-progress hook the previews all copied Víctor Falcón 2026-08-11 13:52:27 +0200
  • 89840e19db refactor(mcp): give the write tools one way to resolve a record and to apply changed fields Víctor Falcón 2026-08-11 13:44:47 +0200
  • f04e590268 feat(deps): upgrade Inertia to v3 on both adapters Víctor Falcón 2026-08-11 13:44:00 +0200
  • acb34881d0 refactor(analytics): share the balance-series building blocks between both evolution endpoints Víctor Falcón 2026-08-11 13:39:26 +0200