github we-promise/sure v0.7.6-rc.2

pre-release3 hours ago

What's Changed

  • Fix Disconnect and saves in Bank sync connection rows by @gariasf in #3844
  • Make "Really free" read as the cash panel's answer by @gariasf in #3878
  • Update the insights lightbulb badge live on dismiss and refresh by @gariasf in #3880
  • Give Bills' Next up strip a focus ring and one padding scale by @gariasf in #3877
  • Give each Income plan period one hero figure by @gariasf in #3879
  • Let the third-currency reports test run on a month's first two days by @gariasf in #3902
  • fix(transactions): cache only IDs of upcoming recurring transactions by @gfr-free in #3907
  • Let users hide dashboard widgets from a Customize mode by @gariasf in #3860
  • Open bills in the drawer instead of expanding the row by @gariasf in #3885
  • feat(transactions): create a category from the list's quick category picker by @scragnog in #3772
  • Fix demo loan schedules inside generation transactions by @jjmata in #3933
  • Define date.formats.short_with_year for every locale by @gariasf in #3918
  • Show a dated bill row's due date where its rail is hidden by @gariasf in #3901
  • Show the Income plan AI chips only when there is a plan by @gariasf in #3917
  • Hide the bills month pulse and AI prompts on an empty page by @gariasf in #3905
  • Fix Back for drawers, modals, the period picker and URL rewrites by @gariasf in #3886
  • Stack the bills pay-period band on narrow lists by @gariasf in #3928
  • Keep bills banner and notices to the bills the page lists by @gariasf in #3922
  • Money paste follow-ups: separator hint and symbol drift test by @BernatSR in #3882
  • Fix Bills locale test to target the occurrence drawer link by @sure-admin in #3938
  • Use the config key Rails documents, so a local run comes back clean by @mikaelhm in #3910
  • Fix Stripe error on demo family deletion by @sentry[bot] in #3896
  • Keep the money field's currency handler next to the transaction form's action by @gfr-free in #3916
  • fix(kraken): a crypto ledger row moves units, not cash by @dgsardina in #3875
  • fix(onchain): let Track selected assets submit on self-hosted installs by @ly0va in #3940
  • fix(transactions): stop Cancel in Convert to trade from converting by @ly0va in #3941
  • Bump Pipelock CI action to v3.6.0 by @luckyPipewrench in #3951
  • Add Hosted usage overview and daily web preview event by @jjmata in #3939
  • fix: remember exact release highlight acknowledgements by @sure-admin in #3961
  • Give the bills overview one focus ring and readable autopay rows by @gariasf in #3911
  • Hide the bills month pulse on a page of only paused bills by @gariasf in #3923
  • Show a bill row's verb only when the bill needs you now by @gariasf in #3947
  • fix(enable_banking): tell id-less rows that share a content hash apart by @dgsardina in #3913
  • Revert "fix(enable_banking): tell id-less rows that share a content hash apart" by @jjmata in #3982
  • docs: show the migration version the provider generator actually emits by @jaysbeekay in #3622
  • feat(ai): support Gemini 3 models and preserve tool call thought signatures by @nareddyt in #3979
  • Line bill rows up with their headers and stack review rows on phones by @gariasf in #3921
  • Give every bill row one date rail and one subline order by @gariasf in #3955
  • Cover the short paycheck's legend, which keys only its shortfall by @gariasf in #4011
  • Stop calling a paused bill's leftover overdue anywhere by @gariasf in #3971
  • Fold the bill's page into its drawer by @gariasf in #3981
  • Build the bills notices and review queues like the bill sections by @gariasf in #3957
  • Make small balance movements legible in time-series charts. by @joaocbatista in #3906
  • fix(plaid): hold the exchange when re-linking a connected institution by @cgmccurdy in #3658
  • fix(kraken): space out requests against the private endpoint rate limit by @dgsardina in #3756
  • fix(kraken): a buy is money out and a sell is money in, not the reverse by @dgsardina in #3757
  • fix(crypto): open an exchange account at zero, dated before its history, in the family currency by @dgsardina in #3789
  • feat(ai-health): let admins set the health check timeout under Self-Hosting by @gfr-free in #4019
  • Enqueue scheduled cron jobs as ActiveJob payloads by @gfr-free in #3768
  • Allow transaction-to-trade conversion for crypto exchange accounts by @BeastOrange in #3936
  • Fix double-counted entry when its date moves later by @jubbakka in #3967
  • Rebuild the account from the submission when a create fails late by @jaysbeekay in #3733
  • Fix Income plan with unknown cash balance by @sure-admin in #3868
  • fix(sync): keep a locked date and amount when a provider sync re-imports a transaction by @gfr-free in #3989
  • Show what each scheduled payment is made of in the loan chart tooltip by @jaysbeekay in #4006
  • Prevent guests from mutating family configuration by @ryandnurh in #4004
  • Keep the native currency in transfer-only daily totals by @BeastOrange in #3937
  • fix(imports): require account write access to publish or revert an import by @gfr-free in #3998
  • fix(enable_banking): bind the OAuth state to the browser session by @gfr-free in #3996
  • fix(currencies): add USDT entry to config/currencies.yml (#3949) by @0xifarouk in #3950
  • Start linked investment charts at the pre-activity balance by @ryandnurh in #4009
  • feat(categories): choose a parent when creating a category inline by @scragnog in #3774
  • fix(rules): offer the rule prompt unless an existing rule already covers the transaction by @scragnog in #3796
  • feat(dashboard): sort the preview cash-flow Sankey by amount by @scragnog in #3798
  • feat(mcp): add set_opening_balance tool by @scragnog in #3820
  • fix(recurring): prevent N+1 in GenerateRecurringOccurrencesJob by @sentry[bot] in #4024
  • fix(holdings): an acquisition fee is part of what the position cost by @dgsardina in #3758
  • fix(kraken): one security per asset, not one per trading pair by @dgsardina in #4023
  • Allow categorizing investment/loan transfer transactions by @gfr-free in #3719
  • fix(plaid): anchor an investment balance on the holdings' price date by @dgsardina in #3874
  • feat(sync): warn when the balance anchor is dated away from the holdings by @dgsardina in #3876
  • fix(bills): match recurring transfers to the transfers that pay them by @scragnog in #3932
  • Drop invalid previous: option on PlaidAccount holdings encryption by @megan-holstein in #4059
  • Give a colourless goal's ring a real fallback colour by @jaysbeekay in #4032
  • fix(trade-republic): Trade Republic bond valuation using percent-of-par prices by @Simoneu01 in #4020
  • Fix investment-transfer follow-ups from #3719 by @gfr-free in #4064
  • Fix the README's broken badge and refresh its hero screenshot by @gariasf in #4100
  • fix(enable_banking): keep multi-currency accounts in their own currency by @Simoneu01 in #4077
  • Show What's new in a DS::Dialog once no drawer or modal is open by @gariasf in #4021
  • Frame the bills lists so their shells show in light mode by @gariasf in #4091
  • Lead the bills overview with the bills, late ones first by @gariasf in #4092
  • Lay out the bills header and switcher like Transactions by @gariasf in #4094
  • Give the bill forms the inputs every other form uses by @gariasf in #4095
  • Use the app's words for creating, pausing and opening bills by @gariasf in #4096
  • Lead the bill drawer with its figure and use one eyebrow style by @gariasf in #4098
  • Date snoozed bills by their snoozed date in month totals and the plan by @gariasf in #4106
  • Keep one family's merchant changes off shared provider merchants by @gfr-free in #3824
  • Scope AI-detected merchant creation to the family by @gfr-free in #3843
  • Stop fetching prices for securities no account still holds by @jaysbeekay in #3888
  • Apply stock splits to holdings by @jaysbeekay in #3850
  • Fix reports page touch jitter and iOS Safari scroll freeze by @gfr-free in #3132
  • Currency ETH Addition by @peledies in #2940
  • fix(enable-banking): don't import a movement twice when the identifier arrives late by @albertinisg in #3462
  • fix(trade-republic): import timeline history beyond 50 pages by @nielseulink in #4072
  • Stop streaming the Enable Banking panel to the family by @jaysbeekay in #4044
  • feat(transfers): add common writer condition for auto-matching transfers by @jubbakka in #3722
  • fix(chat): gate chat page behind AI consent and surface OpenAI stream errors by @gfr-free in #3767
  • fix(insights): keep private and unshared accounts out of the shared feed by @gfr-free in #4061
  • Share one pending predicate, and classify investment cash movements in one place by @jaysbeekay in #3557
  • feat(lunchflow): toggle to read credit card balance as available credit by @scragnog in #3948
  • fix: Preserve currency separators across locales by @OscarCaamal in #3651
  • Pin the skipped-occurrence review test to mid-month by @gariasf in #4108
  • Reject null bytes in rule fields by @BeastOrange in #4109
  • fix(trade-republic): import unmapped card, stamp duty and bonus events by @Simoneu01 in #4038
  • fix(onchain): revalue idle wallets at the latest price by @FournyP in #4067
  • fix(statements): read period and balances from statement PDF text by @Simoneu01 in #4054
  • fix(trade-republic): book order cash legs at the detail total by @Simoneu01 in #4104
  • fix(trade-republic): log order executions that can't be imported yet by @Simoneu01 in #4105
  • feat(onchain): track Polkadot (DOT) wallets by @FournyP in #4071
  • feat(onchain): track Cosmos Hub (ATOM) wallets by @FournyP in #4070
  • Submit import file forms via Turbo to fix empty iPhone uploads by @itsLeonB in #4085
  • feat(dashboard): show the preview cash-flow Sankey by account by @scragnog in #3799
  • fix(trade-republic): resolve bonds by ISIN and import bond purchases by @nielseulink in #4060
  • Stop broadcasting provider cards to the whole family by @jaysbeekay in #4046
  • fix(trade-republic): read the exact share price from trade details by @Simoneu01 in #4111
  • fix(trade-republic): match the statement for bonus units and stamp duty by @Simoneu01 in #4116
  • fix(reports): bust report caches when categories are merged or replaced by @joshiarnav in #3604
  • fix(trading212): book trades in the instrument currency by @stepanbeseda in #4140
  • fix(kraken): take a trade's quantity and cash from the ledger by @dgsardina in #4086
  • fix(kraken): sum a staked and a spot balance of one asset into one holding by @rtammekivi in #4137
  • fix(snaptrade): support option contracts and prioritize option_symbol by @nareddyt in #3744
  • Stop broadcasting account rows to the whole family by @jaysbeekay in #4050
  • Show a member only the provider accounts shared with them by @jaysbeekay in #4048
  • fix(trades): count fees in gains and treat a missing rate as unknown by @dgsardina in #4033
  • fix(reports): invalidate entry caches when categories change by @joshiarnav in #4124
  • Add BalanceSheet::NetWorthVelocity for net worth pace by @jaysbeekay in #4083
  • Count dividend and interest income in investment totals by @jaysbeekay in #4082
  • Apply transfer kinds only when an auto-match is confirmed by @shkarinn in #3762
  • test(snaptrade): include fees in option gain expectations by @joshiarnav in #4145
  • fix(ibkr): record a trade's commission as its fee, not as a separate transaction by @dgsardina in #4148
  • Add Chimnie provider for UK property valuations by @ljefferies98 in #4135
  • feat(sophtron): add balance sign override functionality for credit cards by @jonerrr in #4142
  • Reject zero and invalid exchange rates for every provider by @gfr-free in #3790
  • Skip account sync for descriptive transaction edits by @gfr-free in #4001
  • Group the latest provider import day once in current holdings by @mrvruj in #4118
  • Keep a daily holding row for SimpleFIN and Lunchflow by @mrvruj in #4119
  • Improve demo family refresh email readability by @sure-admin in #4126
  • feat(API): Add API endpoints for transaction splits by @georanma in #4117
  • feat(rules): run rules in a fixed order with "stop processing" by @gfr-free in #4013
  • feat(mcp): rule tools with a mandatory preview by @scragnog in #3990
  • Add an "mcp_only" assistant type: no in-app chat, MCP stays available by @enieuwy in #4147
  • Auto-match cross-currency transfers on routes the user has confirmed by @shkarinn in #3702
  • feat(mcp): add unmatch_transfer tool by @scragnog in #4157
  • fix(ai): replay each in-flight tool round as its own message pair by @josh-sanders in #4133
  • Fix MCP rule previews after matching scope rename by @sure-admin in #4163
  • Add attachments filter to transactions list by @romanzipp in #4161
  • Keep detected income out of the Bills suggestion strip by @thewillwilson in #3675
  • 2883: Fix unidentified card holds by @OtterBoops in #4162
  • Stop Money from silently mixing currencies by @gfr-free in #4219
  • fix(holdings): prevent N+1 query in HoldingsController#index by @sentry[bot] in #4042
  • Generate plain ERB from the provider view templates by @jaysbeekay in #4099
  • Add shared mask_last4 helper for identifier display masking by @gfr-free in #3826
  • fix(plaid): show Link errors raised inside the modal frame by @DTTerastar in #3849
  • Fix unreadable security search dialog in the dark theme on phones by @gfr-free in #4183
  • Translate investment activity labels in the quick-edit badge by @shkarinn in #4167
  • fix(categories): keep focus in the category menu after a failed create by @scragnog in #4074
  • fix(panels): put CoinSpot/Kraken/Binance sync and menu buttons on the header row, as Wise does by @ryandnurh in #3980
  • Keep long return_to paths from overflowing the session by @shkarinn in #4238
  • Fix the false Timeout badge on sidebar sparklines by @zeishr in #3576
  • Do not offer a guest a provider link the controller refuses by @jaysbeekay in #3656
  • fix(bills): preload recurrence rules and accounts when claiming recurring patterns by @sentry[bot] in #4136
  • fix(chart): render email SMTP env vars by @sure-admin in #3015
  • fix(devcontainer): use configured session key in Codespaces by @bittensorrider in #2982
  • Start All period one month before first Transaction/Trade entry by @ryandnurh in #4068
  • fix(jobs): run AI jobs in their own Sidekiq capsule so they can't starve syncs by @josh-sanders in #4237
  • docs(hosting): add a guide for deploying Sure on Pethost by @sadfun in #4179
  • bugfix:Add account search to transfer form by @DataEnginr in #4241
  • Fix budget page 500 when expected income is nil by @TheRodzz in #4240
  • Block password changes when only SSO login is allowed by @gfr-free in #4208
  • Require an MFA code before adding a passkey by @gfr-free in #4204
  • fix(development): run background jobs through Sidekiq by @DataEnginr in #4262
  • fix(ai): route chat to the provider selected by LLM_PROVIDER first by @josh-sanders in #4244
  • fix(devcontainer): use the pgvector Postgres image so document import works by @DataEnginr in #4263
  • Open Binance account setup from Add Account instead of returning to Settings by @pcbeingused333 in #4259
  • Skip email notifications for inactive rules by @jaysbeekay in #4211
  • Validate rule action and resource types against known types by @jaysbeekay in #4175
  • Keep the rule prompt visible after the transaction drawer closes by @gfr-free in #4210
  • Restore account status when DestroyJob enqueue fails by @jaysbeekay in #4172
  • Restore an account to disabled when its destroy fails by @jaysbeekay in #4173
  • Date a new loan's opening anchor on its start date by @jaysbeekay in #4174
  • Scope group sparklines to accounts the user can access by @gfr-free in #4207
  • Throttle current-password checks on password change by @gfr-free in #4201
  • fix(perf): memoize accessible_accounts in Current to eliminate dashboard N+1 queries by @sentry[bot] in #4170
  • Respect account share permissions in bulk edit and categorize by @gfr-free in #4192
  • fix(transfers): reset the kept leg's kind when a transfer leg is deleted by @scragnog in #4158
  • fix(enable_banking): always offer manual reconnect action by @gfr-free in #3705
  • [PERFORMANCE] Stop current-holdings query from rescanning holdings per row by @wps260 in #4156
  • Fix three buttons that sent the wrong HTTP method by @pcbeingused333 in #4258
  • Open Coinbase wallet setup from Add Account instead of returning to Settings by @pcbeingused333 in #4257
  • Fix "Create a bill" from a transaction showing Content Missing by @pcbeingused333 in #4250
  • fix(settings): let LLM_PROVIDER override a stored provider choice by @josh-sanders in #4249
  • docs(ai): document the native Anthropic provider by @josh-sanders in #4243
  • Add a category filter to the dashboard spending widget by @josh-sanders in #4138
  • Keep attachments, tags and notes when merging a pending duplicate by @pcbeingused333 in #4247
  • Handle SimpleFIN protocol-v2 errlist responses by @marty0x in #3954
  • Kraken: leave the Add Account modal at the top level when setup can't open by @pcbeingused333 in #4275
  • CoinSpot: leave the Add Account modal at the top level when setup can't open by @pcbeingused333 in #4276
  • Keep Add Account errors visible when provider setup can't open (9 providers) by @pcbeingused333 in #4278
  • Let existing properties link to a valuation provider by @timkatz in #4282
  • Eager-load recurrence rules during occurrence generation to prevent N+1 by @sentry[bot] in #4286
  • perf(test): stub retry backoff sleeps in assistant client tests (~6s saved) by @jjmata in #2564
  • Prefer the available balance for Enable Banking cards treated as available credit by @pcbeingused333 in #4277
  • bugfix : honor json_mode in the PDF document extraction path by @DataEnginr in #4261
  • build(deps-dev): bump source-map-js from 1.2.1 to 1.2.2 in /desktop by @dependabot[bot] in #4289
  • feat(ai): support Gemini 4 Argon reasoning model by @nareddyt in #4291
  • build(deps): bump rustls from 0.23.42 to 0.23.46 in /desktop/src-tauri by @dependabot[bot] in #4290
  • Scope the rebuilt manual accounts list to the viewer by @jaysbeekay in #4052
  • Block SimpleFIN URLs that target internal addresses by @gfr-free in #4194
  • Keep guests from changing family configuration through the API and imports by @gfr-free in #4005
  • Check family access for export, import and document blobs by @gfr-free in #4203
  • Close remaining Active Storage access gaps for receipts, previews and exports by @gfr-free in #4205
  • fix(budget_categories): prevent N+1 in subcategories method by @sentry[bot] in #4066
  • Encrypt SnapTrade account_number by @gfr-free in #3832
  • Reuse shared frame redirects in provider controllers and generator by @sure-admin in #4281
  • Drop calculated holdings shadowed by a provider snapshot in any currency by @pcbeingused333 in #4274
  • fix(trade-republic): track the 24-hour login and fix login edge cases by @nielseulink in #4232
  • fix(snaptrade): pick one security when a ticker has duplicate rows by @jaysbeekay in #3999
  • Carry holding locks forward without an external_id by @jaysbeekay in #4260
  • Stabilize account sync UI tests across midnight by @sure-admin in #4279
  • Make bill rows follow the transaction row recipe by @gariasf in #4127
  • Polish All bills and put the bills tabs' loose text on surfaces by @gariasf in #4129
  • security: mobile API auth gates, MFA password re-auth, credential revocation on deactivate by @dgilperez in #1942
  • Make the Record payment button submit the manual payment form by @pcbeingused333 in #4251
  • Support "not equal to" and "is not empty" for tag rule conditions by @pcbeingused333 in #4246
  • feature: add categories structure lock/unlock toggle by @akhlebka in #3987
  • Keep rejected statements in the vault inbox by @jaysbeekay in #4299
  • Let users count an investment transfer as a plain transfer by @shkarinn in #4177
  • Add starts with, ends with and regex rule operators by @jaysbeekay in #4089
  • Fix cache invalidation on currency change and account deletion (#4200) by @1steve78 in #4235
  • Keep Sankey labels off the next column's bars on narrow screens by @gariasf in #4345
  • Send Enable Banking a PSU IP only when it is a public address by @jaysbeekay in #4304
  • feat(reports): family setting to stop counting investing as spending by @scragnog in #3952
  • Harden OAuth client registration: reserve "Sure" client names, require https redirect URIs by @gfr-free in #4193
  • Pad text-only filter chips like the icon chips by @gariasf in #4357
  • Run encryption tests in CI with test keys by @gfr-free in #4335
  • Keep Plaid securities for accounts with holdings but no investment transactions by @pcbeingused333 in #4256
  • Fix Twelve Data per-minute throttle never engaging on Redis by @hharkins in #4328
  • Make the cost basis editor read "per share × quantity = total" by @gfr-free in #4184
  • build(deps-dev): bump vite from 6.4.3 to 6.4.4 in /desktop by @dependabot[bot] in #4359
  • Move dashboard reordering onto the shared sortable-list controller by @gfr-free in #4334
  • Document form action buttons in the design system guide by @gariasf in #4313
  • fix: expose sync_start_date field in Redbark account setup by @huantrinh1802 in #4306
  • Fix sidebar sparklines not rendering at small container sizes by @jjmata in #4361
  • Add a configuration overview to System Health by @jjmata in #3929
  • Let DS buttons marked hidden actually hide by @gariasf in #4342
  • Support multi-currency goal funding by @vlnd0 in #3974
  • Read a loan's rate from Redbark's account details by @jaysbeekay in #3956
  • Redbark: normalise liability balance sign by provider (fiskil / plaid / other) by @jaysbeekay in #3899
  • Stop emailing old matches after an email rule's conditions widen by @jaysbeekay in #4150
  • Translate the cost basis overwrite confirmation button by @gfr-free in #4416
  • Ask before unlocking a cost basis or resetting a security by @gfr-free in #4418
  • fix(bills): explain why a used-up transaction cannot pay a bill by @Holdner in #4376
  • feat(insights): deterministic insight text, plus "Dig in with AI" by @josh-sanders in #4239
  • Resolve duplicate same-type Enable Banking balances deterministically by @gfr-free in #4344
  • Allow calculator expressions and comma decimals in amount fields by @gfr-free in #3502
  • Loans: let interest accrue on the basis the lender actually uses by @jaysbeekay in #3639
  • Count the same accounts in group totals and sparklines by @gfr-free in #4338
  • Move transfer matching controls beside transaction amounts by @sure-admin in #4303
  • fix(accounts): localize investment labels and chart dates by @MaxenceChx in #3178
  • Send tool_choice auto to Claude models that reject a forced tool by @pcbeingused333 in #4178
  • feat(accounts): manual drag-and-drop account order by @gfr-free in #4341
  • Generate and backfill logos for website-only provider merchants by @gfr-free in #3776
  • Redact the Jev endpoint in the self-hosting settings panel by @jaysbeekay in #4401
  • Detect autopay from explicit descriptor wording by @thewillwilson in #3624
  • Fix duplicate bill suggestions after renaming a bill by @joaocbatista in #4222
  • chore(langfuse): migrate tracing and experiments to v4 by @tatoalo in #3625
  • Full backups, rollbacks and restores for self-hosted installs by @mikaelhm in #3909
  • fix(ai): retry without strict JSON when Auto mode can't parse the response by @joshiarnav in #3602
  • fix(mobile): load full chat history across all pages by @felixmuinde in #4421
  • Compare the spending widget against the dashboard period's average month by @josh-sanders in #4139
  • Add split_transaction rule action by @gfr-free in #3020
  • Show detected bill name in the bill rules section by @joaocbatista in #4430
  • Add a tunable, self-testing Bayes classifier by @josh-sanders in #4310
  • fix/Give the bill form a searchable, grouped category picker by @DataEnginr in #4431
  • Show the investment card when the period has a disposal by @jaysbeekay in #4409
  • Fix duplicate migration version for classifier rules by @sure-admin in #4435
  • Document SMTP email setup for Docker Compose by @jaysbeekay in #4372
  • Anchor menus inside size containers to their button by @jaysbeekay in #4370
  • Keep a due-day shift from adding a second occurrence to a paid cycle by @jaysbeekay in #4380
  • Record an email action's baseline when it is created by @jaysbeekay in #4176
  • Reconstruct a bill's history whenever a detection is activated by @jaysbeekay in #4371
  • Check for an existing bill before creating one from a transaction by @jaysbeekay in #4375
  • Make the before-payday strip readable at a month of bills by @jaysbeekay in #4369
  • Fill a bill's blank category from its transactions by @jaysbeekay in #4374
  • fix(sync): respect configured timezone in auto-sync schedule by @BeastOrange in #3696
  • Revert "Compare the spending widget against the dashboard period's average month" by @josh-sanders in #4452
  • Keep the rules list and settings header inside phone screens by @gfr-free in #4473
  • Point the Wise sandbox at Wise's current host by @ycsin in #4458
  • Add a setting to turn off transfer auto-matching and a page to review pending matches by @gfr-free in #3034
  • feat(reports): spending vs normal section (preview) by @scragnog in #4002
  • Add category/tag/merchant/type filters to account activity feed by @gfr-free in #3814
  • Fix midnight-dependent controller job assertions by @sure-admin in #4482
  • Add credit card statement cycle support by @DataEnginr in #4270
  • Restrict instance-wide settings to super admins by @gfr-free in #3794
  • security: expire inactive sessions server-side, whitelist session tab keys by @gfr-free in #3242
  • feat(mcp): add delete_category and let update_category move categories by @alanmlcrt in #4063
  • fix: security price sync reliability (TwelveData errors, offline resolver, health checker, missing names) by @gfr-free in #3098
  • feat(mcp): add transfer matching tools by @scragnog in #3818
  • feat(api): expose kind, exact amount and split state on transactions by @bhargavmehta01 in #4422
  • feat(transactions): auto-generate transaction name from merchant/category (opt-in) by @gfr-free in #3378
  • feat(mobile): budgets screen by @bhargavmehta01 in #4426

New Contributors

Mobile Debug Builds

This release includes debug builds of the mobile applications. Download from the Assets area below.

  • Android APK: Debug build for testing on Android devices
  • iOS Build: Unsigned iOS build (requires code signing for installation)

Note: These are debug builds intended for testing purposes. For production use, please build from source with proper signing credentials.

Full Changelog: v0.7.5...v0.7.6-rc.2

Don't miss a new sure release

NewReleases is sending notifications on new releases.