Sure
Personal finance and wealth management app for everyone
Alternative to: mint, monarch money, ynab, empower
v0.7.2
2026-07-01The most visible addition in v0.7.2 is the new Goals feature. Sure can now track progress towards financial goals using real balances and pledges, and the release kept improving that foundation with better creation defaults, cleaner funding-account selection, more responsive cards, and follow-up fixes around how manual saves are matched. This is the clearest “new capability” in the cycle, and it gives people a much stronger way to plan toward savings targets inside the product.
The second headline is the amount of mobile polish and product depth that landed in this release, thanks @JSONbored! The mobile app now supports transaction metadata editing, richer account detail context, safer diagnostics, better offline replay behavior, and a broad pass on visual consistency through Sure-native tokens, spacing, typography, and shared primitives. The result is not just a prettier app, but a more complete and more confident mobile experience. Coming soon to an App Store near you!
The third major feature is Anthropic as a native LLM Provider. Self-hosted installs can now configure Anthropic directly, with chat parity, batch operations, native PDF handling, provider-aware batch/PDF flows, a settings UI, and pgvector-backed RAG defaults for Anthropic-based setups. This is a meaningful expansion of Sure’s AI surface area, especially for people who want more control over which model provider they use.
There were also a lot of other meaningful improvements across the cycle. Banking and imports kept getting stronger with MFA and decoupled-bank handling for Enable Banking, SureImport session batches, merchant CSV import, Akahu integration, and broader trades API coverage. Dashboard and reporting workflows improved with a unified widget period picker, better report performance, and deeper navigation into filtered transactions. There were also steady self-hosting and infrastructure improvements across preview deploys, Helm, Rails 8.1, Ruby 3.4.9, API scoping, and general reliability work.
One useful way to frame the size of the release is the raw volume. As of June 30, 2026, the v0.7.2 release train is sitting at 233 merged PRs since v0.7.1, based on the current prerelease boundary.
| Month | Issues opened | Release activity | Image downloads |
|---|---|---|---|
| 2025-11 | 27 | v0.6.5 — 101 PRs (1 hotfix / 7 PRs) | 6,514 |
| 2025-12 | 22 | v0.6.6 — 55 PRs (1 hotfix / 2 PRs) | 7,794 |
| 2026-01 | 56 | v0.6.7 — 162 PRs | 43,250 |
| 2026-02 | 48 | v0.6.8 — 113 PRs | 68,962 |
| 2026-03 | 73 | v0.6.9 — 92 PRs | 132,863 |
| 2026-04 | 73 | v0.7.0 — 129 PRs (3 hotfixes / 8 PRs) | 126,319 |
| 2026-05 | 105 | v0.7.1 — 206 PRs (1 hotfix / 3 PRs) | 120,568 |
| 2026-06 | 137 | v0.7.2 — 233 PRs | ? |
What’s Changed
- fix: invert non-gittensor label condition by @sure-admin in https://github.com/we-promise/sure/pull/1960
- fix(settings): preserve OpenAI form input on validation failure by @dripsmvcp in https://github.com/we-promise/sure/pull/1862
- fix(preview): only redeploy on preview-cf label changes by @sure-admin in https://github.com/we-promise/sure/pull/1980
- fix: Avoid overlay in provider section on mobile by @alessiocappa in https://github.com/we-promise/sure/pull/1990
- fix(i18n): use %{product_name} in api_keys usage_instructions (#1505) by @Rene0422 in https://github.com/we-promise/sure/pull/2000
- feat: Add pagination in merchants page by @alessiocappa in https://github.com/we-promise/sure/pull/1965
- feat(ibkr): compute net_market_flows from IBKR equity equity delta and trade flows by @CrossDrain in https://github.com/we-promise/sure/pull/1970
- fix(account): show activity label for accounts supporting trades by @xBlaz3kx in https://github.com/we-promise/sure/pull/1993
- fix(settings): add nil-safe operator to Current.family.can_manage_subscription? by @sentry[bot] in https://github.com/we-promise/sure/pull/2006
- fix(family-sharing): prevent silent data loss when rehoming or removing users by @dripsmvcp in https://github.com/we-promise/sure/pull/1896
- fix(holdings): carry provider cost_basis forward to calculated rows past snapshot date by @CrossDrain in https://github.com/we-promise/sure/pull/1818
- fix: Keep with auto for category badge by @alessiocappa in https://github.com/we-promise/sure/pull/1963
- fix(enable_banking): clear stuck pending flag when ASPSP reuses same transaction_id by @CrossDrain in https://github.com/we-promise/sure/pull/1982
- feat(binance): add full account sync and transaction processing by @briian365 in https://github.com/we-promise/sure/pull/1822
- fix(jobs): delegate recurring-transaction sync gate to Sync.for_family by @galuis116 in https://github.com/we-promise/sure/pull/1975
- fix(views): DS drift — sankey tooltip tokens by @glorydavid03023 in https://github.com/we-promise/sure/pull/1996
- feat(reports): add Period Return card to Investment Performance by @CrossDrain in https://github.com/we-promise/sure/pull/1962
- fix(enable_banking): migrate select_bank dialog to DS::Pill and DS::Link by @glorydavid03023 in https://github.com/we-promise/sure/pull/1997
- fix(plaid): surface configuration/product-access errors from the Link flow (#1792) by @Rene0422 in https://github.com/we-promise/sure/pull/1991
- fix(balance): derive waypoint start from day’s flows to prevent double-counting and phantom bumps by @CrossDrain in https://github.com/we-promise/sure/pull/2031
- fix(currencies): add DOGE entry to config/currencies.yml (#2008) by @Rene0422 in https://github.com/we-promise/sure/pull/2030
- feat(settings): add reviewed category merge flow by @JSONbored in https://github.com/we-promise/sure/pull/1754
- refactor(imports): back PDF imports with statements by @JSONbored in https://github.com/we-promise/sure/pull/1786
- fix(transactions): migrate transaction filter searches to DS::SearchInput by @glorydavid03023 in https://github.com/we-promise/sure/pull/1998
- feat(assistant): add get_budget function for budget tracking by @wolstad in https://github.com/we-promise/sure/pull/1966
- ci(preview): isolate preview deployment tooling by @JSONbored in https://github.com/we-promise/sure/pull/2025
- chore(i18n): complete Chinese locale coverage by @ashanzzz in https://github.com/we-promise/sure/pull/2010
- fix(ai-chat): disable submit on empty input instead of surfacing ‘Content missing’ (#1697) by @jeffrey701 in https://github.com/we-promise/sure/pull/1872
- feat(i18n): add Vietnamese (vi) locale by @tanoggy in https://github.com/we-promise/sure/pull/2043
- ci(preview): split PR image builds from trusted deploys by @JSONbored in https://github.com/we-promise/sure/pull/2057
- fix(charts): auto-fit donut center text to inner ring (#2002) by @Rene0422 in https://github.com/we-promise/sure/pull/2017
- fix(merchants): preserve manual merchant edits across provider sync by @dripsmvcp in https://github.com/we-promise/sure/pull/1981
- fix(snaptrade): import non-primary-currency cash as cash holdings by @dripsmvcp in https://github.com/we-promise/sure/pull/1979
- chore(ci): pin GitHub Actions to commit SHAs (#1811) by @jeffrey701 in https://github.com/we-promise/sure/pull/1870
- Add HTTP timeout config to Provider::Github Octokit client by @bittensorrider in https://github.com/we-promise/sure/pull/2061
- Perf/dashboard endpoint optimization by @bittensorrider in https://github.com/we-promise/sure/pull/1897
- fix(reset): scope family financial data resets by @JSONbored in https://github.com/we-promise/sure/pull/1835
- fix(dashboard): make Outflows widget responsive to its container, not the viewport by @gariasf in https://github.com/we-promise/sure/pull/2059
- ci(preview): stabilize Cloudflare preview deployments by @JSONbored in https://github.com/we-promise/sure/pull/2062
- fix: Replace platform-wide broadcast_refresh with sync toast by @ahnv in https://github.com/we-promise/sure/pull/1964
- feat(ai): add Anthropic provider with chat parity (1/5) by @gariasf in https://github.com/we-promise/sure/pull/1983
- fix(family): include HSA depository accounts in tax-advantaged exclusion by @galuis116 in https://github.com/we-promise/sure/pull/2004
- Fix Start month on Last 6 Months report off by 1 by @joaocbatista in https://github.com/we-promise/sure/pull/2070
- fix(transactions): include enable_banking in pending/confirmed status filter by @JPette1783 in https://github.com/we-promise/sure/pull/1885
- ci(preview): stabilize image push and readiness diagnostics by @JSONbored in https://github.com/we-promise/sure/pull/2084
- fix(tests): avoid account statement coverage rollover collision by @sure-admin in https://github.com/we-promise/sure/pull/2102
- fix: Do not show pagination if no merchants are available by @alessiocappa in https://github.com/we-promise/sure/pull/2115
- feat(transactions): add inline tag creation and search in txn form by @tedawf in https://github.com/we-promise/sure/pull/1719
- fix(categories): avoid index N+1 queries by @JSONbored in https://github.com/we-promise/sure/pull/2089
- feat(ai): Anthropic batch ops + LLM cost ledger (2/5) by @gariasf in https://github.com/we-promise/sure/pull/1984
- feat: Move “Merge” action for merchants/categories in sub menu by @alessiocappa in https://github.com/we-promise/sure/pull/2114
- perf(transfers): narrow auto-transfer candidate search by @JSONbored in https://github.com/we-promise/sure/pull/2080
- feat(goals): balance-derived + pledges by @gariasf in https://github.com/we-promise/sure/pull/1798
- fix(migrations): scope admin-backfill to a MigrationUser model (#1716) by @jeffrey701 in https://github.com/we-promise/sure/pull/1871
- perf(sparklines): avoid full account loads for linked charts by @JSONbored in https://github.com/we-promise/sure/pull/2128
- feat(provider): Akahu integration by @failing in https://github.com/we-promise/sure/pull/1921
- fix: replace hand-rolled badges with DS::Pill in admin users view by @Kelvinchen03 in https://github.com/we-promise/sure/pull/1988
- refactor(charts): extract shared chart-tooltip className to one source by @gariasf in https://github.com/we-promise/sure/pull/2106
- fix(ds-pill): default show_dot per mode (badges clean, markers keep dot) by @gariasf in https://github.com/we-promise/sure/pull/2107
- chore(ds-pill): migrate budget-category status badges to DS::Pill (#1751) by @gariasf in https://github.com/we-promise/sure/pull/2111
- fix(recurring): match transfer pairs so Cleaner stops mis-retiring transfers by @gariasf in https://github.com/we-promise/sure/pull/2110
- feat(ds): extract DS::ProgressRing primitive; migrate goal card (#1899) by @gariasf in https://github.com/we-promise/sure/pull/2112
- fix(ds): unify SSO sign-in buttons on DS::Button; drop bespoke Google CSS by @gariasf in https://github.com/we-promise/sure/pull/2152
- fix IncomeStatement performance issue by @bittensorrider in https://github.com/we-promise/sure/pull/1947
- ci(preview): fix Cloudflare registry image deployment by @JSONbored in https://github.com/we-promise/sure/pull/2124
- chore(rubocop): ignore generated schema spacing by @JSONbored in https://github.com/we-promise/sure/pull/2125
- feat(imports): validate Sure NDJSON before publish by @JSONbored in https://github.com/we-promise/sure/pull/1833
- feat(ai): Anthropic native PDF processing (3/5) by @gariasf in https://github.com/we-promise/sure/pull/1985
- fix(helm): normalize appVersion to strip leading v (#2050) by @jeffrey701 in https://github.com/we-promise/sure/pull/2156
- feat(i18n): complete Spanish (es) locale coverage for provider & transaction views by @glorydavid03023 in https://github.com/we-promise/sure/pull/2159
- feat(i18n): complete German (de) locale coverage for provider & transaction views by @glorydavid03023 in https://github.com/we-promise/sure/pull/2158
- fix(ds): dark-mode token parity — contrast & state fixes by @gariasf in https://github.com/we-promise/sure/pull/2139
- fix(accounts): honor stored return_to after subtype account creation by @gariasf in https://github.com/we-promise/sure/pull/2109
- Pass
APP_BUNDLE_IDinto iOS archive by @jjmata in https://github.com/we-promise/sure/pull/2169 - feat(imports): add SureImport session batches by @JSONbored in https://github.com/we-promise/sure/pull/1785
- fix(goals): scope funding-account picker to the current user’s accessible accounts by @gariasf in https://github.com/we-promise/sure/pull/2172
- feat(ds): elevate dropdown overlays and stabilize selection check gutter by @gariasf in https://github.com/we-promise/sure/pull/2161
- fix(goals): default goal currency so it survives a failed create by @gariasf in https://github.com/we-promise/sure/pull/2171
- feat(enable_banking): support MFA/decoupled banks and harden session … by @trahloff in https://github.com/we-promise/sure/pull/2174
- fix(mobile): parse locale-aware transaction amounts by @JSONbored in https://github.com/we-promise/sure/pull/2130
- fix(ds): .table-scroll — wide tables scroll instead of clipping by @gariasf in https://github.com/we-promise/sure/pull/2148
- fix(balance-sheet): preserve disabled-account net worth history by @JSONbored in https://github.com/we-promise/sure/pull/1730
- feat(ds): semantic color — neutralize decorative green/red on reports by @gariasf in https://github.com/we-promise/sure/pull/2144
- fix(ds): cross-viewport lock — consistent auth mode-switch by @gariasf in https://github.com/we-promise/sure/pull/2149
- fix(ds): chart flat-state — hairline trendline, not a bisecting rule by @gariasf in https://github.com/we-promise/sure/pull/2150
- feat(mobile): add transaction metadata editing by @JSONbored in https://github.com/we-promise/sure/pull/2131
- feat(dashboard): unify per-widget period selectors into one picker by @gariasf in https://github.com/we-promise/sure/pull/2162
- ci(preview): render Cloudflare config from trusted template by @JSONbored in https://github.com/we-promise/sure/pull/2207
- Fix SSO provider settings updates (preserve client_secret, persist default_role) by @jjmata in https://github.com/we-promise/sure/pull/2210
- fix(goals): UI polish — submit validation, container-responsive cards, picker & filter fixes by @gariasf in https://github.com/we-promise/sure/pull/2160
- fix(ds): canonical transaction-row — stop category pills truncating by @gariasf in https://github.com/we-promise/sure/pull/2147
- feat(merchants): add raw data import (csv) for merchants by @xBlaz3kx in https://github.com/we-promise/sure/pull/1992
- chore(ci): finish Node 24 GitHub Actions migration by @sure-admin in https://github.com/we-promise/sure/pull/2221
- fix(mobile): redact sensitive diagnostic logs by @JSONbored in https://github.com/we-promise/sure/pull/2199
- feat(ds): DS::SegmentedControl — fix invisible dark selected pill by @gariasf in https://github.com/we-promise/sure/pull/2145
- fix(ds): one height rail for icon and text buttons by @gariasf in https://github.com/we-promise/sure/pull/2202
- fix(sync-toast): morph refresh, defer behind modals, DS conformance by @gariasf in https://github.com/we-promise/sure/pull/2105
- perf(transactions): preload new form options by @JSONbored in https://github.com/we-promise/sure/pull/2189
- perf(reports): collapse investment flow aggregates by @JSONbored in https://github.com/we-promise/sure/pull/2190
- fix: Savings Goal Marked Reached While Still Short by @jonathanchang31 in https://github.com/we-promise/sure/pull/2180
- feat(ai): default Anthropic installs to pgvector RAG (4/5) by @gariasf in https://github.com/we-promise/sure/pull/1986
- fix(ds): dark-parity for bespoke green status badges by @gariasf in https://github.com/we-promise/sure/pull/2142
- feat(ds): DS::EmptyState primitive by @gariasf in https://github.com/we-promise/sure/pull/2146
- test(goals): pledge-delta integration coverage (follow-up to #2178) by @gariasf in https://github.com/we-promise/sure/pull/2206
- feat(mobile): add privacy-safe Sentry instrumentation by @JSONbored in https://github.com/we-promise/sure/pull/2201
- fix(preview): surface postgres startup failures and reset attempt timings by @sure-admin in https://github.com/we-promise/sure/pull/2217
- fix(charts): restyle hover tooltips with soft shadow + larger radius by @gariasf in https://github.com/we-promise/sure/pull/2029
- feat(i18n): complete Brazilian Portuguese (pt-BR) locale coverage for provider & transaction views by @glorydavid03023 in https://github.com/we-promise/sure/pull/2220
- feat(i18n): complete Dutch (nl) locale coverage for provider & transaction views by @glorydavid03023 in https://github.com/we-promise/sure/pull/2218
- feat(mobile): show account detail context by @JSONbored in https://github.com/we-promise/sure/pull/2231
- fix(mobile): make offline transaction replay idempotent by @JSONbored in https://github.com/we-promise/sure/pull/2232
- Respect CoinStats wallet rate limits by @dan-dr in https://github.com/we-promise/sure/pull/2251
- feat(ai): self-host settings UI for Anthropic provider (5/5) by @gariasf in https://github.com/we-promise/sure/pull/1987
- feat(ai): route LLM batch & PDF flows through Setting.llm_provider by @gariasf in https://github.com/we-promise/sure/pull/2265
- fix(imports): import Actual rows with blank payee by @JSONbored in https://github.com/we-promise/sure/pull/2282
- Fix prerelease version-bump job: add PR fallback for protected branches by @jjmata in https://github.com/we-promise/sure/pull/2224
- perf(sync): scope transfer matching after account sync by @JSONbored in https://github.com/we-promise/sure/pull/2230
- fix(ds): use DS::Disclosure for investment-performance expander by @gariasf in https://github.com/we-promise/sure/pull/2243
- fix(ds): replace invalid bg-surface-default token with bg-surface by @gariasf in https://github.com/we-promise/sure/pull/2244
- fix(ds): canonical destructive red → red-500 (token + button) by @gariasf in https://github.com/we-promise/sure/pull/2245
- fix(ds): migrate SSO amber warning surfaces to DS::Alert / DS::Pill by @gariasf in https://github.com/we-promise/sure/pull/2246
- fix(ds): migrate remaining amber notice boxes to DS::Alert(:warning) by @gariasf in https://github.com/we-promise/sure/pull/2247
- fix(ds): convert_to_trade price warning — fix dead dark:, use warning token by @gariasf in https://github.com/we-promise/sure/pull/2249
- fix(ds): route remaining literal yellow warning surfaces onto —color-warning by @gariasf in https://github.com/we-promise/sure/pull/2250
- fix(ds): balance-sheet weight alignment + category pill padding by @gariasf in https://github.com/we-promise/sure/pull/2275
- fix(ds): add-account menu — right-size close + clickable rows by @gariasf in https://github.com/we-promise/sure/pull/2276
- fix(ds): dark-mode hover — alpha-black-25 → surface-hover on date-nav triggers by @gariasf in https://github.com/we-promise/sure/pull/2287
- fix(ds): unify tab/chip controls on DS::SegmentedControl (#8) by @gariasf in https://github.com/we-promise/sure/pull/2284
- refactor(settings): consistency pass — header-less settings_section + guides by @gariasf in https://github.com/we-promise/sure/pull/2279
- fix(ds): sync-settings env notice → DS::Alert (was invisible: undefined warning-* classes) by @gariasf in https://github.com/we-promise/sure/pull/2278
- fix(settings): preserve content scroll position per page across navigation by @gariasf in https://github.com/we-promise/sure/pull/2277
- feat(ds): one canonical focus ring across primitives by @gariasf in https://github.com/we-promise/sure/pull/2140
- fix: EODHD lookup for EU mutual funds with EUFUND exchange code by @Kelvinchen03 in https://github.com/we-promise/sure/pull/2212
- feat(mobile): align theme foundation with Sure tokens by @JSONbored in https://github.com/we-promise/sure/pull/2237
- feat(mcp): OAuth 2.1 auth for MCP — connect Claude.ai with your Sure login by @thewillwilson in https://github.com/we-promise/sure/pull/2234
- fix(enable-banking): tolerate any 422 on PDNG fetch (#1805) by @Rene0422 in https://github.com/we-promise/sure/pull/1889
- fix(sharing): scope import account selects to accessible_by (#1803) by @dripsmvcp in https://github.com/we-promise/sure/pull/2194
- fix(mobile): regenerate stale Sure tokens on main by @sure-admin in https://github.com/we-promise/sure/pull/2296
- Fix Plaid sync failure for loan subtypes missing from Loan::SUBTYPES by @BeltaKoda in https://github.com/we-promise/sure/pull/2298
- feat(cashflow): deep-link category labels to filtered transactions by @thewillwilson in https://github.com/we-promise/sure/pull/2083
- fix(preview): bind :3000 instantly and bound diagnostics posts by @JSONbored in https://github.com/we-promise/sure/pull/2286
- Add support for dividend, deposit, withdrawal, and interest trade types to Trades API by @thebandit in https://github.com/we-promise/sure/pull/1761
- fix(ds): route mercury/ibkr provider panels onto sibling tokens by @gariasf in https://github.com/we-promise/sure/pull/2290
- refactor(settings): debugs page onto settings_section by @gariasf in https://github.com/we-promise/sure/pull/2289
- fix(ds): goals — uniform New-goal → grid spacing by @gariasf in https://github.com/we-promise/sure/pull/2288
- feat(mobile): standardize money typography and semantic amount color by @JSONbored in https://github.com/we-promise/sure/pull/2331
- chore(deps): upgrade Rails 7.2 → 8.1 by @JSONbored in https://github.com/we-promise/sure/pull/2301
- fix(ds): neutral text for goals status callout by @gariasf in https://github.com/we-promise/sure/pull/2312
- fix(dashboard): apply two-column layout at xl breakpoint, not 2xl by @gariasf in https://github.com/we-promise/sure/pull/2310
- fix(dashboard): align sankey zoom-out button with section header by @gariasf in https://github.com/we-promise/sure/pull/2313
- fix(ds): normalize legacy tooltip spacing to one recipe by @gariasf in https://github.com/we-promise/sure/pull/2311
- fix(settings): give the MCP copy button success feedback by @gariasf in https://github.com/we-promise/sure/pull/2314
- fix(chat): clear assistant bubble on destroy so the chat doesn’t hang on Thinking by @gariasf in https://github.com/we-promise/sure/pull/2315
- chore(deps): bump yard from 0.9.37 to 0.9.42 by @dependabot[bot] in https://github.com/we-promise/sure/pull/2335
- chore(deps): bump css_parser from 1.21.1 to 1.22.0 by @dependabot[bot] in https://github.com/we-promise/sure/pull/2336
- fix(ds): shrink dialog close button to size sm by @gariasf in https://github.com/we-promise/sure/pull/2309
- chore(i18n): remove dead transfers.form.* exchange-rate keys by @augustocbx in https://github.com/we-promise/sure/pull/2293
- fix(sync): discover nightly provider items reflectively by @sure-admin in https://github.com/we-promise/sure/pull/2334
- fix(ds): canonical separators and destructive tokens in usage/rules tables by @gariasf in https://github.com/we-promise/sure/pull/2332
- fix(ds): migrate goals color picker back to DS::Disclosure (no_margin body option) by @gariasf in https://github.com/we-promise/sure/pull/2350
- chore(i18n): complete zh-CN locale coverage by @BeastOrange in https://github.com/we-promise/sure/pull/2283
- fix: preserve CoinStats balances when wallet sync data is missing by @sure-admin in https://github.com/we-promise/sure/pull/2132
- feat(dashboard): masonry packing + per-widget size controls by @gariasf in https://github.com/we-promise/sure/pull/2328
- fix(jobs): enqueue jobs after transaction commit to fix SyncJob deserialization race by @JSONbored in https://github.com/we-promise/sure/pull/2354
- fix(rules): make explicit re-apply override locked attributes by @augustocbx in https://github.com/we-promise/sure/pull/2273
- Upgrade Ruby version to 3.4.9 by @jjmata in https://github.com/we-promise/sure/pull/2360
- feat(mobile): add SureButton primitive and migrate login buttons by @JSONbored in https://github.com/we-promise/sure/pull/2358
- feat(security): warn when ActiveRecord encryption is not configured by @andrewb-nz in https://github.com/we-promise/sure/pull/2362
- feat(imports): add YNAB CSV import by @JSONbored in https://github.com/we-promise/sure/pull/2361
- feat(mobile): bundle Geist + Geist Mono so the app renders Sure typography by @JSONbored in https://github.com/we-promise/sure/pull/2342
- feat(mobile): normalize dashboard text weight to DS Medium (500) by @JSONbored in https://github.com/we-promise/sure/pull/2344
- feat(mobile): add SureIcon (Lucide) primitive and migrate dashboard icons by @JSONbored in https://github.com/we-promise/sure/pull/2346
- perf(api): avoid transfer lookups in transaction index by @JSONbored in https://github.com/we-promise/sure/pull/2127
- fix(mobile): neutral Sure tokens for FAB/badge/avatar surfaces + themed logo by @JSONbored in https://github.com/we-promise/sure/pull/2366
- feat(mobile): generate shadow scale + focus-ring/bg-inverse tokens by @JSONbored in https://github.com/we-promise/sure/pull/2349
- fix: Transaction Pagination Skipping Entries by @jonathanchang31 in https://github.com/we-promise/sure/pull/2179
- fix(accounts): persist subtype when creating an account by @vlnd0 in https://github.com/we-promise/sure/pull/2356
- Add Mobile version check for update notifications by @felixmuinde in https://github.com/we-promise/sure/pull/2367
- fix(cashflow): use Turbo.visit for donut chart deep-link navigation by @thewillwilson in https://github.com/we-promise/sure/pull/2166
- Add transaction name to get_transactions MCP tool output by @oggysecond in https://github.com/we-promise/sure/pull/2026
- fix(imports): normalize CSV upload encoding when validations are skipped by @augustocbx in https://github.com/we-promise/sure/pull/2299
- Add cascade delete to rejected_transfers foreign keys by @Kelvinchen03 in https://github.com/we-promise/sure/pull/2211
- fix(prices): resolve dashed crypto tickers (BTC-USD, TRX-USD) via BinancePublic by @vlnd0 in https://github.com/we-promise/sure/pull/2372
- fix(ds): add focus ring to dashboard widget size control by @BeastOrange in https://github.com/we-promise/sure/pull/2364
- feat(prices): add Moscow Exchange (MOEX ISS) securities + FX provider by @vlnd0 in https://github.com/we-promise/sure/pull/2394
- perf(recurring): batch recurring transaction identification by @JSONbored in https://github.com/we-promise/sure/pull/2239
- perf(dashboard): streamline investment activity totals by @JSONbored in https://github.com/we-promise/sure/pull/2257
- perf(reports): avoid residual category lazy loads by @JSONbored in https://github.com/we-promise/sure/pull/2255
- fix(trades): guard against nil security in create_trade by @sentry[bot] in https://github.com/we-promise/sure/pull/2066
- feat(prices): add T-Invest (T-Bank) securities + brand-logo provider by @vlnd0 in https://github.com/we-promise/sure/pull/2408
- fix(coinstats): stabilize bulk wallet ordering by @sure-admin in https://github.com/we-promise/sure/pull/2402
- Fix API auth context inheriting web session impersonation by @BeastOrange in https://github.com/we-promise/sure/pull/2405
- Refresh Pipelock integration for v2.8 receipts by @luckyPipewrench in https://github.com/we-promise/sure/pull/2406
- feat(up): add Up Bank (AU) provider integration by @Jookly123 in https://github.com/we-promise/sure/pull/2391
- feat(mobile): add SureCard primitive and migrate account cards by @JSONbored in https://github.com/we-promise/sure/pull/2370
- feat(mobile): add SureListGroup/SureListRow primitives and migrate the More menu by @JSONbored in https://github.com/we-promise/sure/pull/2376
- feat(mobile): add SureTextField primitive and migrate the proxy-headers editor by @JSONbored in https://github.com/we-promise/sure/pull/2378
- fix(tinkoff): resolve the tradeable listing and price bonds via BondBy by @vlnd0 in https://github.com/we-promise/sure/pull/2413
- feat(mobile): add SureChip primitive and migrate the currency filter by @JSONbored in https://github.com/we-promise/sure/pull/2380
- feat(mobile): add SureSegmentedControl primitive and migrate the transaction type selector by @JSONbored in https://github.com/we-promise/sure/pull/2382
- fix(settings): preserve scroll position in settings nav by @Holdner in https://github.com/we-promise/sure/pull/2373
- chore(deps): bump esbuild and wrangler in /workers/preview by @dependabot[bot] in https://github.com/we-promise/sure/pull/2411
- chore(deps): bump undici and wrangler in /workers/preview by @dependabot[bot] in https://github.com/we-promise/sure/pull/2410
- chore(deps): bump nokogiri from 1.19.3 to 1.19.4 by @dependabot[bot] in https://github.com/we-promise/sure/pull/2425
- chore(deps): bump faraday from 2.14.1 to 2.14.3 by @dependabot[bot] in https://github.com/we-promise/sure/pull/2424
- chore(deps): bump concurrent-ruby from 1.3.6 to 1.3.7 by @dependabot[bot] in https://github.com/we-promise/sure/pull/2426
- Bump version to next iteration after v0.7.2-alpha.8 release by @jjmata in https://github.com/we-promise/sure/pull/2423
- feat(mobile): migrate all hardcoded UI strings to gen_l10n ARB (Phase 1 + 2) by @JSONbored in https://github.com/we-promise/sure/pull/2384
- design-system(mobile): SureFontWeights tokens (named weight tiers) by @JSONbored in https://github.com/we-promise/sure/pull/2419
- feat(mcp): add get/create/update tools for tags and categories by @xBlaz3kx in https://github.com/we-promise/sure/pull/2374
- Bump Puma dependency to >= 7.2.1 by @jjmata in https://github.com/we-promise/sure/pull/2428
- Enforce LF line endings for .devcontainer/.bashrc by @jestinjoshi in https://github.com/we-promise/sure/pull/2480
- Fix SimpleFIN epoch-string balance dates causing PG::DatetimeFieldOverflow by @marty0x in https://github.com/we-promise/sure/pull/2397
- fix(chat): surface and recover from undelivered assistant responses by @gariasf in https://github.com/we-promise/sure/pull/2436
- fix: use ES256 instead of EdDSA for Coinbase CDP JWT signing by @lifrank1 in https://github.com/we-promise/sure/pull/1888
- feat: resizable accounts & assistant sidebars by @gariasf in https://github.com/we-promise/sure/pull/2482
- Allow multiple active API keys per user by @thewillwilson in https://github.com/we-promise/sure/pull/2077
- fix(balances): materialize entries dated before the opening anchor by @vlnd0 in https://github.com/we-promise/sure/pull/2434
- fix(i18n): correct Catalan gender agreement on add-account button by @gariasf in https://github.com/we-promise/sure/pull/2488
- fix(sync): store EnableBanking credit card debt as balance instead of available credit by @mxafi in https://github.com/we-promise/sure/pull/2459
- Add SnapTrade OAuth device flow by @jjmata in https://github.com/we-promise/sure/pull/2494
- Fix SimpleFIN partial auth reconnect status by @luckyPipewrench in https://github.com/we-promise/sure/pull/2509
- fix(imports): support QIF dd mmm yyyy date format by @BeastOrange in https://github.com/we-promise/sure/pull/2500
- Adds a toggle to mark accounts as excluded from all financial reports while keeping them active and visible individually. by @DataEnginr in https://github.com/we-promise/sure/pull/2416
- Require omniauth-rails_csrf_protection v2.0+ for Rails 8.2 compatibility by @jjmata in https://github.com/we-promise/sure/pull/2520
- chore(deps): bump yard from 0.9.42 to 0.9.44 by @dependabot[bot] in https://github.com/we-promise/sure/pull/2522
- Scope API v1 controllers through current_resource_owner by @BeastOrange in https://github.com/we-promise/sure/pull/2414
- fix(sync): scope after_commit to prevent nil family error on destroy by @sentry[bot] in https://github.com/we-promise/sure/pull/1976
- feat:Add SnapTrade OAuth device flow by @jjmata in https://github.com/we-promise/sure/pull/2523
- Fixes issue #2415 - Subcategories are not alphabetically ordered like Categories by @HairyHook in https://github.com/we-promise/sure/pull/2429
- fix(accounts): subtype dropped on create when assigned before accountable_type by @vlnd0 in https://github.com/we-promise/sure/pull/2432
- fix(sync): prevent NoMethodError when syncable is nil in after_commit by @sentry[bot] in https://github.com/we-promise/sure/pull/2484
- fix(settings): securities-provider checkmarks invisible in dark mode by @vlnd0 in https://github.com/we-promise/sure/pull/2430
- feat(mobile): privacy mode to mask money values by @JSONbored in https://github.com/we-promise/sure/pull/2386
- feat(goals): earmark a portion of an account toward a goal (Phase 1) by @gariasf in https://github.com/we-promise/sure/pull/2490
- fix(mobile): dispose API-key dialog controller on any dismissal by @JSONbored in https://github.com/we-promise/sure/pull/2399
- design-system(mobile): SureSpacing + SureTypography scale tokens by @JSONbored in https://github.com/we-promise/sure/pull/2438
- feat(goals): investment-backed goals (Phase 2) by @gariasf in https://github.com/we-promise/sure/pull/2491
- feat(kraken): import deposits, withdrawals, staking & fees via Ledgers API by @JSONbored in https://github.com/we-promise/sure/pull/2451
- feat(mercury): pending transactions, kind/counterpartyId metadata, and test coverage by @JSONbored in https://github.com/we-promise/sure/pull/2452
- fix(mobile): in-progress feedback for the Clear local data action by @JSONbored in https://github.com/we-promise/sure/pull/2439
- test(system): harden property edit flow against the account-menu morph race by @JSONbored in https://github.com/we-promise/sure/pull/2421
- fix(pwa): harden manifest render to explicitly use json format by @sentry[bot] in https://github.com/we-promise/sure/pull/2508
- refactor(imports): header-less settings_section by @Holdner in https://github.com/we-promise/sure/pull/2395
- feat(up): flag internal transfers and round-ups as funds_movement by @threatsurfer in https://github.com/we-promise/sure/pull/2460
- fix(goals): match manual_save pledges by contribution delta, not full balance by @galuis116 in https://github.com/we-promise/sure/pull/2178
- docs: explain self-hosted onboarding modes by @sure-admin in https://github.com/we-promise/sure/pull/2533
- feat: add preference to disable modal close on outside click by @Nekoraru22 in https://github.com/we-promise/sure/pull/2226
- i18n: fully update French (fr) translations by @Nicotinii in https://github.com/we-promise/sure/pull/1922
- Fix date-dependent flake in investment_statement_test by @jestinjoshi in https://github.com/we-promise/sure/pull/2539
New Contributors
- @Rene0422 made their first contribution in https://github.com/we-promise/sure/pull/2000
- @galuis116 made their first contribution in https://github.com/we-promise/sure/pull/1975
- @wolstad made their first contribution in https://github.com/we-promise/sure/pull/1966
- @ashanzzz made their first contribution in https://github.com/we-promise/sure/pull/2010
- @jeffrey701 made their first contribution in https://github.com/we-promise/sure/pull/1872
- @tanoggy made their first contribution in https://github.com/we-promise/sure/pull/2043
- @JPette1783 made their first contribution in https://github.com/we-promise/sure/pull/1885
- @failing made their first contribution in https://github.com/we-promise/sure/pull/1921
- @Kelvinchen03 made their first contribution in https://github.com/we-promise/sure/pull/1988
- @trahloff made their first contribution in https://github.com/we-promise/sure/pull/2174
- @jonathanchang31 made their first contribution in https://github.com/we-promise/sure/pull/2180
- @dan-dr made their first contribution in https://github.com/we-promise/sure/pull/2251
- @BeltaKoda made their first contribution in https://github.com/we-promise/sure/pull/2298
- @thebandit made their first contribution in https://github.com/we-promise/sure/pull/1761
- @augustocbx made their first contribution in https://github.com/we-promise/sure/pull/2293
- @andrewb-nz made their first contribution in https://github.com/we-promise/sure/pull/2362
- @vlnd0 made their first contribution in https://github.com/we-promise/sure/pull/2356
- @oggysecond made their first contribution in https://github.com/we-promise/sure/pull/2026
- @Jookly123 made their first contribution in https://github.com/we-promise/sure/pull/2391
- @Holdner made their first contribution in https://github.com/we-promise/sure/pull/2373
- @jestinjoshi made their first contribution in https://github.com/we-promise/sure/pull/2480
- @marty0x made their first contribution in https://github.com/we-promise/sure/pull/2397
- @lifrank1 made their first contribution in https://github.com/we-promise/sure/pull/1888
- @mxafi made their first contribution in https://github.com/we-promise/sure/pull/2459
- @HairyHook made their first contribution in https://github.com/we-promise/sure/pull/2429
- @threatsurfer made their first contribution in https://github.com/we-promise/sure/pull/2460
- @Nekoraru22 made their first contribution in https://github.com/we-promise/sure/pull/2226
- @Nicotinii made their first contribution in https://github.com/we-promise/sure/pull/1922
Full Changelog: https://github.com/we-promise/sure/compare/v0.7.1…v0.7.2