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

latest release: v0.7.7-alpha.1
pre-release4 hours ago

Draft release notes — final scope and artifacts remain subject to release verification.

Sure 0.7.6 helps you understand what changed in your spending and see your loans in greater detail—from the balance remaining to how each payment divides between principal, interest and insurance. It also brings more control over transaction categorization, improvements to Bills, and expanded backup and restore tools.

See what's different in your spending

The new Spending vs normal preview compares your spending with your own history. A category treemap shows where your money went, while a ranked list highlights what increased or decreased. Open a category to explore the transactions behind the change.

Enable preview features to try it.

image

See where your money went—and which categories changed most compared with your usual spending.

Get a clearer picture of your loans

Loan accounts now go beyond a remaining balance. See your recorded balance alongside the original repayment schedule and a projection from today, with a breakdown of principal and interest over the life of the loan.

The expanded overview brings together your interest rate, monthly payment, term, insurance costs and projected payoff date. Explore the repayment schedule payment by payment; for adjustable-rate loans, recorded rate changes are reflected in the schedule.

image

Follow your mortgage from today's balance to projected payoff, with principal, interest and repayment details in one place.

More control over categorization

Test the token-free Bayes classifier against your own history, inspect its results, and tune its settings. Merchant matching and category classification now participate in the ordered rules list. Drag rules to choose their order, use Stop processing for exceptions, and split recurring transactions by amount or percentage.

Make Sure fit your workflow

Hide dashboard widgets you do not need, drag accounts into your preferred order, and filter account activity by category, tag, merchant or transaction type. Amount fields support calculator expressions and comma decimals.

The Flutter mobile app gains a read-only Budgets screen with month navigation, category progress, rollover amounts and transaction drill-down. This is client code in the candidate; signed app availability remains a separate distribution step.

Back up—and restore—your self-hosted setup

The expanded backup tooling covers the database, local uploads, configuration and version information, with restore and rollback workflows, scheduled backups and optional off-site copies. It builds on the database-only backup sidecar from 0.7.5.

Uploads stored in external object storage are not included and need their own backup. Backup folders contain configuration secrets and must be kept private.

Product-improvement monitoring

We added monitoring to help improve features such as the Sankey chart preview and understand how they are used. Self-hosters can turn off this product-improvement monitoring by setting POSTHOG_FEEDBACK_ENABLED=false in the environment.

More improvements

  • Goals: fund a goal across currencies, with original and converted amounts and explicit warnings when exchange rates are missing.
  • Bills and cards: clearer Bills drawers, payment flows and overdue states; a credit-card statement-cycle overview shows the last closed statement, spending since then and the payment due date—not automatic card-payment bills.
  • Insights: consistent, fact-based text without LLM narration calls; Dig in with AI prepares an editable Assistant question for you to send.
  • Connections: Chimnie for UK property valuations, plus Polkadot and Cosmos Hub wallet tracking.
  • Investments and sync: stock-split handling, improved trade-fee accounting, broader Trade Republic history and bond support, and fixes across Kraken, Plaid, Enable Banking, SnapTrade and other providers.
  • Transfers: review pending matches, turn off auto-matching, and improve matching on confirmed cross-currency routes.
  • API and external assistants: transaction-split endpoints, richer transaction fields, more category and transfer tools, and rule tools with a mandatory preview.
  • Privacy and access: tighter account-sharing enforcement, file-access checks, guest restrictions and session handling.

Thank you to everyone contributing code, testing, bug reports and feedback.

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.

What's Changed

  • Bump version to next iteration after v0.7.5-alpha.13 release by @github-actions[bot] in #3873
  • 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
  • Bump version to next iteration after v0.7.6-alpha.1 release by @github-actions[bot] in #3930
  • 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
  • Bump version to next iteration after v0.7.6-alpha.2 release by @github-actions[bot] in #3978
  • 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
  • Bump version to next iteration after v0.7.6-alpha.3 release by @github-actions[bot] in #4016
  • 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
  • Bump version to next iteration after v0.7.6-alpha.4 release by @github-actions[bot] in #4051
  • 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
  • Bump version to next iteration after v0.7.6-alpha.5 release by @github-actions[bot] in #4114
  • 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
  • Bump version to next iteration after v0.7.6-alpha.6 release by @github-actions[bot] in #4165
  • 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
  • Bump version to next iteration after v0.7.6-alpha.7 release by @github-actions[bot] in #4273
  • 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
  • Bump version to next iteration after v0.7.6-alpha.8 release by @github-actions[bot] in #4358
  • 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
  • Bump version to next iteration after v0.7.6-alpha.9 release by @github-actions[bot] in #4443
  • 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

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

Don't miss a new sure release

NewReleases is sending notifications on new releases.