chore: release v0.2.8

This commit is contained in:
Víctor Falcón 2026-08-12 15:20:37 +02:00
parent 5a61375ea5
commit e210f7f5cf
3 changed files with 111 additions and 64 deletions

View File

@ -1,79 +1,126 @@
# Changelog
## [0.2.8](https://github.com/whisper-money/whisper-money/compare/v0.2.7...v0.2.8) (2026-08-12)
### Bug Fixes
* **ai:** stop a learned rule title from 500-ing the user's category change ([#741](https://github.com/whisper-money/whisper-money/issues/741)) ([275b77e](https://github.com/whisper-money/whisper-money/commit/275b77e640f2664a1d359993d796edca803bf763))
* **banking:** stop bank connections from silently dropping out of scheduled syncing ([#782](https://github.com/whisper-money/whisper-money/issues/782)) ([091457c](https://github.com/whisper-money/whisper-money/commit/091457c74752b89a7adfa0fef8e94d4d1762b5df))
* **banking:** stop crypto holdings quoted only in USD from vanishing from the balance ([#759](https://github.com/whisper-money/whisper-money/issues/759)) ([5eb4306](https://github.com/whisper-money/whisper-money/commit/5eb43067f885e5e2adc8a6b73a1aa53785041d88)), closes [#754](https://github.com/whisper-money/whisper-money/issues/754)
* **banking:** stop requesting a year of Enable Banking history on every sync ([#755](https://github.com/whisper-money/whisper-money/issues/755)) ([5baa677](https://github.com/whisper-money/whisper-money/commit/5baa677c2af3d7f3a37aabd24193bba30722bc3d))
* **banking:** stop unclassified bank responses from silently killing a connection ([#742](https://github.com/whisper-money/whisper-money/issues/742)) ([5e38c58](https://github.com/whisper-money/whisper-money/commit/5e38c583b9be25d21b5d6043efc272c4d19a17e6))
* **banking:** stop Wise outages from silently parking a bank connection ([#757](https://github.com/whisper-money/whisper-money/issues/757)) ([81c32b8](https://github.com/whisper-money/whisper-money/commit/81c32b887bcb5d86f69b2d9183eb4d89a2177eb1)), closes [#678](https://github.com/whisper-money/whisper-money/issues/678)
* **banking:** strip the ISO 20022 remittance tag from transaction descriptions ([#744](https://github.com/whisper-money/whisper-money/issues/744)) ([b35968b](https://github.com/whisper-money/whisper-money/commit/b35968b45632c9bc3ee95746af8fd540df3d8120)), closes [#RECOBRO](https://github.com/whisper-money/whisper-money/issues/RECOBRO)
* **binance:** value past days from Binance's own snapshot total ([#763](https://github.com/whisper-money/whisper-money/issues/763)) ([e6cb045](https://github.com/whisper-money/whisper-money/commit/e6cb0459f66b5d8a255be0edbf4e9f0045598e83)), closes [#759](https://github.com/whisper-money/whisper-money/issues/759) [#759](https://github.com/whisper-money/whisper-money/issues/759) [#761](https://github.com/whisper-money/whisper-money/issues/761)
* **budgets:** keep labeled expenses out of the catch-all budget ([#781](https://github.com/whisper-money/whisper-money/issues/781)) ([ab3902a](https://github.com/whisper-money/whisper-money/commit/ab3902af397f042c3e80296a81783246bae5ec93))
* **budgets:** re-derive budget membership when labels are attached without a model event ([#787](https://github.com/whisper-money/whisper-money/issues/787)) ([2f00a56](https://github.com/whisper-money/whisper-money/commit/2f00a5627294d8418abb56a07a96957f39156653)), closes [#781](https://github.com/whisper-money/whisper-money/issues/781)
* **coinbase:** stop one unlisted stablecoin from unpricing the whole portfolio ([#761](https://github.com/whisper-money/whisper-money/issues/761)) ([1a0e80a](https://github.com/whisper-money/whisper-money/commit/1a0e80a3423742d6465468b374754701d60a351f)), closes [#759](https://github.com/whisper-money/whisper-money/issues/759) [#759](https://github.com/whisper-money/whisper-money/issues/759) [post-#759](https://github.com/post-/issues/759)
* **demo:** stop demo:reset from colliding on the fake Stripe subscription id ([#756](https://github.com/whisper-money/whisper-money/issues/756)) ([33fc058](https://github.com/whisper-money/whisper-money/commit/33fc058f3c7099e87644ccbf3e40f05e1b21489c)), closes [#753](https://github.com/whisper-money/whisper-money/issues/753)
* **docker:** keep the client port in the URLs the app generates ([#739](https://github.com/whisper-money/whisper-money/issues/739)) ([df9d62f](https://github.com/whisper-money/whisper-money/commit/df9d62f76c6c6f555b9f2632a9b0369a1d6c7193))
* **mcp:** declare all three MCP hints on every tool ([#751](https://github.com/whisper-money/whisper-money/issues/751)) ([da9032a](https://github.com/whisper-money/whisper-money/commit/da9032a76ea2af5035b22437d7d7e4f97161cf38))
* **observability:** stop our own page navigations from reporting fake network errors ([#780](https://github.com/whisper-money/whisper-money/issues/780)) ([5ec62d8](https://github.com/whisper-money/whisper-money/commit/5ec62d86250211e2cb9d2b86da3ff22b095ad629)), closes [#769](https://github.com/whisper-money/whisper-money/issues/769)
* **onboarding:** don't trap users on the syncing step when a bank sync fails ([#745](https://github.com/whisper-money/whisper-money/issues/745)) ([a3eafec](https://github.com/whisper-money/whisper-money/commit/a3eafecf6011b9a9d9febfa3d5d1cd6cf2a5dcf8))
* **open-banking:** unblock account mapping when the bank reports accounts without a uid ([#746](https://github.com/whisper-money/whisper-money/issues/746)) ([eb60f2e](https://github.com/whisper-money/whisper-money/commit/eb60f2eb30933ee103d67eb85a364fcfd1036e58))
* **ui:** show a recoverable screen instead of a blank page when render throws ([#758](https://github.com/whisper-money/whisper-money/issues/758)) ([a500c00](https://github.com/whisper-money/whisper-money/commit/a500c00b2b44a322268b22ae090c7cfb32f19712)), closes [#41](https://github.com/whisper-money/whisper-money/issues/41) [#43](https://github.com/whisper-money/whisper-money/issues/43) [#47](https://github.com/whisper-money/whisper-money/issues/47) [#57](https://github.com/whisper-money/whisper-money/issues/57) [#4Y](https://github.com/whisper-money/whisper-money/issues/4Y) [#675](https://github.com/whisper-money/whisper-money/issues/675) [#57](https://github.com/whisper-money/whisper-money/issues/57)
* **ui:** stop unusable web storage from white-screening the app ([#743](https://github.com/whisper-money/whisper-money/issues/743)) ([239317f](https://github.com/whisper-money/whisper-money/commit/239317f7f929b6bc2e989be1990930f8614c98a4))
* **wise:** send the pagination cursor under the name Wise reads ([#788](https://github.com/whisper-money/whisper-money/issues/788)) ([2c7fe5d](https://github.com/whisper-money/whisper-money/commit/2c7fe5d64a7ac8ce04f14045780be3d58c3e46e4)), closes [#757](https://github.com/whisper-money/whisper-money/issues/757) [#782](https://github.com/whisper-money/whisper-money/issues/782)
### Features
* **accounts:** count shared accounts at the owner's percentage ([#750](https://github.com/whisper-money/whisper-money/issues/750)) ([c9a70ff](https://github.com/whisper-money/whisper-money/commit/c9a70ffa1a9d27002d73aec1f0a1d69f1e998c2f))
* **budgets:** count shared accounts at the owner's percentage ([#786](https://github.com/whisper-money/whisper-money/issues/786)) ([f4c2114](https://github.com/whisper-money/whisper-money/commit/f4c21147f13c58ed9ad3dcac2da89cc6fd5bb4a7)), closes [#750](https://github.com/whisper-money/whisper-money/issues/750) [#750](https://github.com/whisper-money/whisper-money/issues/750)
* **currencies:** add the Danish Krone (DKK) ([#754](https://github.com/whisper-money/whisper-money/issues/754)) ([02b6892](https://github.com/whisper-money/whisper-money/commit/02b68924899e3501491dd5432ed0c5c1f8a015d5))
* **currency:** add THB (Thai Baht) ([#740](https://github.com/whisper-money/whisper-money/issues/740)) ([bd04814](https://github.com/whisper-money/whisper-money/commit/bd0481486dcb5d1297569e2df04b688c6d1f80e4)), closes [#567](https://github.com/whisper-money/whisper-money/issues/567)
* **demo:** seed named accounts with demo:reset --email ([#753](https://github.com/whisper-money/whisper-money/issues/753)) ([fb692da](https://github.com/whisper-money/whisper-money/commit/fb692dabf6aef86ef700e767473e4c35a03bd94a))
* **deps:** upgrade Inertia.js from v2 to v3 ([#769](https://github.com/whisper-money/whisper-money/issues/769)) ([a190d37](https://github.com/whisper-money/whisper-money/commit/a190d37307981e021b557cf168ccd8a1608629c1)), closes [#764](https://github.com/whisper-money/whisper-money/issues/764)
* **feedback:** move feedback and roadmap links from Canny to UserJot ([#748](https://github.com/whisper-money/whisper-money/issues/748)) ([698aaff](https://github.com/whisper-money/whisper-money/commit/698aaffbbaac16ffca8ad028ef19430040e96ed7))
* **landing:** stop auto-redirecting signed-in visitors to the dashboard ([#777](https://github.com/whisper-money/whisper-money/issues/777))a ([5ee9926](https://github.com/whisper-money/whisper-money/commit/5ee992644ce9fe331910cc0e940ea439db8878ae))
* **mcp:** budget tools — read, create, edit and delete ([#779](https://github.com/whisper-money/whisper-money/issues/779)) ([b2ff166](https://github.com/whisper-money/whisper-money/commit/b2ff1664e26c974cf65ab5472988dd31cf3267e8))
* **mcp:** record MCP tool usage and report it with stats:mcp-usage ([#760](https://github.com/whisper-money/whisper-money/issues/760)) ([9e493dc](https://github.com/whisper-money/whisper-money/commit/9e493dc75bdf628d715513c73393785a454e9424))
* **mcp:** serve the ChatGPT app directory domain challenge ([#749](https://github.com/whisper-money/whisper-money/issues/749)) ([7260e86](https://github.com/whisper-money/whisper-money/commit/7260e86817d7837dc818df3f824035a4fa08f7d1))
* **reports:** email a monthly CSV of active user emails to the owners ([#783](https://github.com/whisper-money/whisper-money/issues/783)) ([4ba78e5](https://github.com/whisper-money/whisper-money/commit/4ba78e54d8dfed546bf7edde5f85aa781239b7c0))
* **roadmap:** add a public roadmap page mirrored from UserJot ([#778](https://github.com/whisper-money/whisper-money/issues/778)) ([12cab75](https://github.com/whisper-money/whisper-money/commit/12cab755e3778097425f1170dd9513d0c5a2734d))
* **stats:** post the Discord stats reports in Spanish, opened by an AI summary ([#752](https://github.com/whisper-money/whisper-money/issues/752)) ([fe747c4](https://github.com/whisper-money/whisper-money/commit/fe747c44728ca444b2b1d4a87f43963b4e5e2026))
* **subscriptions:** add an A/B price experiment (€3.99 control vs €8.99 high) ([#700](https://github.com/whisper-money/whisper-money/issues/700)) ([5a61375](https://github.com/whisper-money/whisper-money/commit/5a61375ea555fb9123d35244a3f5f9ad5caadd5d)), closes [#762](https://github.com/whisper-money/whisper-money/issues/762) [#600](https://github.com/whisper-money/whisper-money/issues/600) [#762](https://github.com/whisper-money/whisper-money/issues/762) [#762](https://github.com/whisper-money/whisper-money/issues/762) [#600](https://github.com/whisper-money/whisper-money/issues/600)
* **subscriptions:** end the trial experiment and make the trial length per plan ([#762](https://github.com/whisper-money/whisper-money/issues/762)) ([b6bc775](https://github.com/whisper-money/whisper-money/commit/b6bc7756bc1be16841f381666e616df383258f4f))
* **transactions:** allow manual transactions on bank-connected accounts ([#747](https://github.com/whisper-money/whisper-money/issues/747)) ([85c7460](https://github.com/whisper-money/whisper-money/commit/85c74604b25bc1d40118bfa5f52e14ac24b6f22c))
## [0.2.7](https://github.com/whisper-money/whisper-money/compare/v0.2.6...v0.2.7) (2026-07-26)
### Bug Fixes
* **accounts:** show credit cards as positive and exclude them from net worth ([#673](https://github.com/whisper-money/whisper-money/issues/673)) ([cbeea2f](https://github.com/whisper-money/whisper-money/commit/cbeea2fc34c1800300d906c911aa4010b39ae911))
* **ai:** don't report expected transient provider overloads (PHP-LARAVEL-44) ([#655](https://github.com/whisper-money/whisper-money/issues/655)) ([d504e70](https://github.com/whisper-money/whisper-money/commit/d504e7030912f7ffcee04904200be4002b47bef8)), closes [hi#signal](https://github.com/hi/issues/signal)
* **amount-input:** allow negative amounts via a sign toggle on iOS ([#674](https://github.com/whisper-money/whisper-money/issues/674)) ([91ffeb9](https://github.com/whisper-money/whisper-money/commit/91ffeb917d1f35be7d37d5f01434233b14aa9b45))
* **auth:** make build deterministic when REGISTRATION_ENABLED=false ([#720](https://github.com/whisper-money/whisper-money/issues/720)) ([87c63f2](https://github.com/whisper-money/whisper-money/commit/87c63f21002f227bfd3594523960acbcaada0e6b))
* **balances:** allow saving a zero balance ([#664](https://github.com/whisper-money/whisper-money/issues/664)) ([ca2e5c0](https://github.com/whisper-money/whisper-money/commit/ca2e5c09b3e83eee06dc0a7b6c81d018fcd81175))
* **balances:** propagate retroactive transaction changes to later balances ([#682](https://github.com/whisper-money/whisper-money/issues/682)) ([9312d24](https://github.com/whisper-money/whisper-money/commit/9312d24f9347ea7b07ef3955b7596f495afed512))
* **balances:** stop historical-balance generator OOM on ancient purchase/loan dates (PHP-LARAVEL-49) ([#661](https://github.com/whisper-money/whisper-money/issues/661)) ([08d367a](https://github.com/whisper-money/whisper-money/commit/08d367a5c8a70af160b5796d3384c4c6b843c830)), closes [#2](https://github.com/whisper-money/whisper-money/issues/2)
* **banking:** recover from EnableBanking 422 wrong-period instead of crashing the sync (PHP-LARAVEL-42) ([#653](https://github.com/whisper-money/whisper-money/issues/653)) ([9b7632f](https://github.com/whisper-money/whisper-money/commit/9b7632f58563fc3b06eda62b06b90b26d4c2d0a1))
* **banking:** stop duplicating EnableBanking transactions with positional entry_reference ([#669](https://github.com/whisper-money/whisper-money/issues/669)) ([cd91852](https://github.com/whisper-money/whisper-money/commit/cd918523e84e38d56dfcfe0a80f906a764c9e668))
* **banking:** treat EnableBanking upstream 5xx as transient, not reportable ([#678](https://github.com/whisper-money/whisper-money/issues/678)) ([d796373](https://github.com/whisper-money/whisper-money/commit/d7963736d10d98a1d08526ffa95bd2a994a350cd))
* **budgets:** keep per-transaction email notifications opt-in ([#735](https://github.com/whisper-money/whisper-money/issues/735)) ([1bd2d80](https://github.com/whisper-money/whisper-money/commit/1bd2d80b1480c35a69b9353c6706844e9156ff8f)), closes [#733](https://github.com/whisper-money/whisper-money/issues/733)
* **categories:** fall back to gray when category color is unknown ([#675](https://github.com/whisper-money/whisper-money/issues/675)) ([19e0c24](https://github.com/whisper-money/whisper-money/commit/19e0c24f9a894d5ce50e31cba6ab062b7bd3d775))
* **chart:** stop tooltip render loop crashing the dashboard (PHP-LARAVEL-3B) ([#657](https://github.com/whisper-money/whisper-money/issues/657)) ([5b34009](https://github.com/whisper-money/whisper-money/commit/5b3400909e8c0a30bc1634f640ece98055a04869))
* **chart:** upgrade recharts to 3.9.2 to stop the mobile dashboard render loop (PHP-LARAVEL-47) ([#659](https://github.com/whisper-money/whisper-money/issues/659)) ([e339aaa](https://github.com/whisper-money/whisper-money/commit/e339aaa19361cc34ec8c45692fc2aaee303a6fa4)), closes [#657](https://github.com/whisper-money/whisper-money/issues/657) [hi#confidence](https://github.com/hi/issues/confidence)
* **ci:** publish the production image as :latest so Docker/Coolify deploys work ([#706](https://github.com/whisper-money/whisper-money/issues/706)) ([a2dfdb7](https://github.com/whisper-money/whisper-money/commit/a2dfdb744247acc03e3bf1fb475d9a32bd7020a4))
* **dashboard:** render negative net worth as a downward bar ([#722](https://github.com/whisper-money/whisper-money/issues/722)) ([50d0fcc](https://github.com/whisper-money/whisper-money/commit/50d0fccd177ce0da7da74bc2ece5b7d6ca4f2b91))
* **dashboard:** stop negative asset balances inflating net worth ([#660](https://github.com/whisper-money/whisper-money/issues/660)) ([1a62b8f](https://github.com/whisper-money/whisper-money/commit/1a62b8f42e16628693927556c1bfa76f45019c6b))
* **encryption:** never email or delete users who are still being billed ([#656](https://github.com/whisper-money/whisper-money/issues/656)) ([7d750fa](https://github.com/whisper-money/whisper-money/commit/7d750fa1a8446742cf08b4f1c13df3ea3bd55f9e))
* **mcp:** correct the ChatGPT and Claude connector steps ([#714](https://github.com/whisper-money/whisper-money/issues/714)) ([d1f3b02](https://github.com/whisper-money/whisper-money/commit/d1f3b0203b56d62dd352ea57075cbfee8d7c2a7b))
* **mcp:** keep Passport signing keys at 600 in production ([#693](https://github.com/whisper-money/whisper-money/issues/693)) ([41ac3e9](https://github.com/whisper-money/whisper-money/commit/41ac3e90e17a676ea435acdac70c0b4b83e724c1)), closes [#691](https://github.com/whisper-money/whisper-money/issues/691)
* **mcp:** serve OAuth authorize on a dedicated host so the PWA can't capture it ([#709](https://github.com/whisper-money/whisper-money/issues/709)) ([2041181](https://github.com/whisper-money/whisper-money/commit/2041181dc2d09a9384b3bddbdfbc79022dfe5feb)), closes [#707](https://github.com/whisper-money/whisper-money/issues/707) [#708](https://github.com/whisper-money/whisper-money/issues/708)
* **oauth:** stop reporting client-facing OAuthServerException to Sentry ([#723](https://github.com/whisper-money/whisper-money/issues/723)) ([fb5027b](https://github.com/whisper-money/whisper-money/commit/fb5027b32134ef59165fef9c20378d9245b5ee8b))
* **onboarding:** stop the AI rule-suggestion step from hanging forever ([#705](https://github.com/whisper-money/whisper-money/issues/705)) ([d3ec96b](https://github.com/whisper-money/whisper-money/commit/d3ec96b84595c7cfd643a748c26466ea32875804))
* **pwa:** keep mobile OAuth consent from being swallowed by the installed app ([#701](https://github.com/whisper-money/whisper-money/issues/701)) ([2cca291](https://github.com/whisper-money/whisper-money/commit/2cca29177375db6e8dfacf176efad322e61430e2))
* **pwa:** open OAuth links in the browser instead of the installed app ([#707](https://github.com/whisper-money/whisper-money/issues/707)) ([1b30e7e](https://github.com/whisper-money/whisper-money/commit/1b30e7edc0e4d1a3fed817734714dd9d33bb1006)), closes [#701](https://github.com/whisper-money/whisper-money/issues/701)
* **stats:** correct the trial/pricing experiment funnel report ([#679](https://github.com/whisper-money/whisper-money/issues/679)) ([3db03de](https://github.com/whisper-money/whisper-money/commit/3db03de86d9606619a215e13870771fc0fc12b81))
* **sync:** don't crash when IndexedDB is unavailable (PHP-LARAVEL-43) ([#654](https://github.com/whisper-money/whisper-money/issues/654)) ([a38dc5d](https://github.com/whisper-money/whisper-money/commit/a38dc5dd955b823e36fb84768ae2fd20ffa57dfd))
* **transactions:** keep saved-filter delete button visible on touch and confirm before deleting ([#648](https://github.com/whisper-money/whisper-money/issues/648)) ([362ac44](https://github.com/whisper-money/whisper-money/commit/362ac445ea28f6e36aece2a41883d5a024997405))
* **accounts:** show credit cards as positive and exclude them from net worth ([#673](https://github.com/whisper-money/whisper-money/issues/673)) ([cbeea2f](https://github.com/whisper-money/whisper-money/commit/cbeea2fc34c1800300d906c911aa4010b39ae911)) by [@victor-falcon](https://github.com/victor-falcon)
* **ai:** don't report expected transient provider overloads (PHP-LARAVEL-44) ([#655](https://github.com/whisper-money/whisper-money/issues/655)) ([d504e70](https://github.com/whisper-money/whisper-money/commit/d504e7030912f7ffcee04904200be4002b47bef8)) by [@victor-falcon](https://github.com/victor-falcon), closes [hi#signal](https://github.com/hi/issues/signal)
* **amount-input:** allow negative amounts via a sign toggle on iOS ([#674](https://github.com/whisper-money/whisper-money/issues/674)) ([91ffeb9](https://github.com/whisper-money/whisper-money/commit/91ffeb917d1f35be7d37d5f01434233b14aa9b45)) by [@victor-falcon](https://github.com/victor-falcon)
* **auth:** make build deterministic when REGISTRATION_ENABLED=false ([#720](https://github.com/whisper-money/whisper-money/issues/720)) ([87c63f2](https://github.com/whisper-money/whisper-money/commit/87c63f21002f227bfd3594523960acbcaada0e6b)) by [@victor-falcon](https://github.com/victor-falcon)
* **balances:** allow saving a zero balance ([#664](https://github.com/whisper-money/whisper-money/issues/664)) ([ca2e5c0](https://github.com/whisper-money/whisper-money/commit/ca2e5c09b3e83eee06dc0a7b6c81d018fcd81175)) by [@victor-falcon](https://github.com/victor-falcon)
* **balances:** propagate retroactive transaction changes to later balances ([#682](https://github.com/whisper-money/whisper-money/issues/682)) ([9312d24](https://github.com/whisper-money/whisper-money/commit/9312d24f9347ea7b07ef3955b7596f495afed512)) by [@victor-falcon](https://github.com/victor-falcon)
* **balances:** stop historical-balance generator OOM on ancient purchase/loan dates (PHP-LARAVEL-49) ([#661](https://github.com/whisper-money/whisper-money/issues/661)) ([08d367a](https://github.com/whisper-money/whisper-money/commit/08d367a5c8a70af160b5796d3384c4c6b843c830)) by [@victor-falcon](https://github.com/victor-falcon), closes [#2](https://github.com/whisper-money/whisper-money/issues/2)
* **banking:** recover from EnableBanking 422 wrong-period instead of crashing the sync (PHP-LARAVEL-42) ([#653](https://github.com/whisper-money/whisper-money/issues/653)) ([9b7632f](https://github.com/whisper-money/whisper-money/commit/9b7632f58563fc3b06eda62b06b90b26d4c2d0a1)) by [@victor-falcon](https://github.com/victor-falcon)
* **banking:** stop duplicating EnableBanking transactions with positional entry_reference ([#669](https://github.com/whisper-money/whisper-money/issues/669)) ([cd91852](https://github.com/whisper-money/whisper-money/commit/cd918523e84e38d56dfcfe0a80f906a764c9e668)) by [@victor-falcon](https://github.com/victor-falcon)
* **banking:** treat EnableBanking upstream 5xx as transient, not reportable ([#678](https://github.com/whisper-money/whisper-money/issues/678)) ([d796373](https://github.com/whisper-money/whisper-money/commit/d7963736d10d98a1d08526ffa95bd2a994a350cd)) by [@victor-falcon](https://github.com/victor-falcon)
* **budgets:** keep per-transaction email notifications opt-in ([#735](https://github.com/whisper-money/whisper-money/issues/735)) ([1bd2d80](https://github.com/whisper-money/whisper-money/commit/1bd2d80b1480c35a69b9353c6706844e9156ff8f)) by [@victor-falcon](https://github.com/victor-falcon), closes [#733](https://github.com/whisper-money/whisper-money/issues/733)
* **categories:** fall back to gray when category color is unknown ([#675](https://github.com/whisper-money/whisper-money/issues/675)) ([19e0c24](https://github.com/whisper-money/whisper-money/commit/19e0c24f9a894d5ce50e31cba6ab062b7bd3d775)) by [@victor-falcon](https://github.com/victor-falcon)
* **chart:** stop tooltip render loop crashing the dashboard (PHP-LARAVEL-3B) ([#657](https://github.com/whisper-money/whisper-money/issues/657)) ([5b34009](https://github.com/whisper-money/whisper-money/commit/5b3400909e8c0a30bc1634f640ece98055a04869)) by [@victor-falcon](https://github.com/victor-falcon)
* **chart:** upgrade recharts to 3.9.2 to stop the mobile dashboard render loop (PHP-LARAVEL-47) ([#659](https://github.com/whisper-money/whisper-money/issues/659)) ([e339aaa](https://github.com/whisper-money/whisper-money/commit/e339aaa19361cc34ec8c45692fc2aaee303a6fa4)) by [@victor-falcon](https://github.com/victor-falcon), closes [#657](https://github.com/whisper-money/whisper-money/issues/657) [hi#confidence](https://github.com/hi/issues/confidence)
* **ci:** publish the production image as :latest so Docker/Coolify deploys work ([#706](https://github.com/whisper-money/whisper-money/issues/706)) ([a2dfdb7](https://github.com/whisper-money/whisper-money/commit/a2dfdb744247acc03e3bf1fb475d9a32bd7020a4)) by [@susomejias](https://github.com/susomejias)
* **dashboard:** render negative net worth as a downward bar ([#722](https://github.com/whisper-money/whisper-money/issues/722)) ([50d0fcc](https://github.com/whisper-money/whisper-money/commit/50d0fccd177ce0da7da74bc2ece5b7d6ca4f2b91)) by [@victor-falcon](https://github.com/victor-falcon)
* **dashboard:** stop negative asset balances inflating net worth ([#660](https://github.com/whisper-money/whisper-money/issues/660)) ([1a62b8f](https://github.com/whisper-money/whisper-money/commit/1a62b8f42e16628693927556c1bfa76f45019c6b)) by [@victor-falcon](https://github.com/victor-falcon)
* **encryption:** never email or delete users who are still being billed ([#656](https://github.com/whisper-money/whisper-money/issues/656)) ([7d750fa](https://github.com/whisper-money/whisper-money/commit/7d750fa1a8446742cf08b4f1c13df3ea3bd55f9e)) by [@victor-falcon](https://github.com/victor-falcon)
* **mcp:** correct the ChatGPT and Claude connector steps ([#714](https://github.com/whisper-money/whisper-money/issues/714)) ([d1f3b02](https://github.com/whisper-money/whisper-money/commit/d1f3b0203b56d62dd352ea57075cbfee8d7c2a7b)) by [@victor-falcon](https://github.com/victor-falcon)
* **mcp:** keep Passport signing keys at 600 in production ([#693](https://github.com/whisper-money/whisper-money/issues/693)) ([41ac3e9](https://github.com/whisper-money/whisper-money/commit/41ac3e90e17a676ea435acdac70c0b4b83e724c1)) by [@victor-falcon](https://github.com/victor-falcon), closes [#691](https://github.com/whisper-money/whisper-money/issues/691)
* **mcp:** serve OAuth authorize on a dedicated host so the PWA can't capture it ([#709](https://github.com/whisper-money/whisper-money/issues/709)) ([2041181](https://github.com/whisper-money/whisper-money/commit/2041181dc2d09a9384b3bddbdfbc79022dfe5feb)) by [@victor-falcon](https://github.com/victor-falcon), closes [#707](https://github.com/whisper-money/whisper-money/issues/707) [#708](https://github.com/whisper-money/whisper-money/issues/708)
* **oauth:** stop reporting client-facing OAuthServerException to Sentry ([#723](https://github.com/whisper-money/whisper-money/issues/723)) ([fb5027b](https://github.com/whisper-money/whisper-money/commit/fb5027b32134ef59165fef9c20378d9245b5ee8b)) by [@victor-falcon](https://github.com/victor-falcon)
* **onboarding:** stop the AI rule-suggestion step from hanging forever ([#705](https://github.com/whisper-money/whisper-money/issues/705)) ([d3ec96b](https://github.com/whisper-money/whisper-money/commit/d3ec96b84595c7cfd643a748c26466ea32875804)) by [@victor-falcon](https://github.com/victor-falcon)
* **pwa:** keep mobile OAuth consent from being swallowed by the installed app ([#701](https://github.com/whisper-money/whisper-money/issues/701)) ([2cca291](https://github.com/whisper-money/whisper-money/commit/2cca29177375db6e8dfacf176efad322e61430e2)) by [@victor-falcon](https://github.com/victor-falcon)
* **pwa:** open OAuth links in the browser instead of the installed app ([#707](https://github.com/whisper-money/whisper-money/issues/707)) ([1b30e7e](https://github.com/whisper-money/whisper-money/commit/1b30e7edc0e4d1a3fed817734714dd9d33bb1006)) by [@victor-falcon](https://github.com/victor-falcon), closes [#701](https://github.com/whisper-money/whisper-money/issues/701)
* **stats:** correct the trial/pricing experiment funnel report ([#679](https://github.com/whisper-money/whisper-money/issues/679)) ([3db03de](https://github.com/whisper-money/whisper-money/commit/3db03de86d9606619a215e13870771fc0fc12b81)) by [@victor-falcon](https://github.com/victor-falcon)
* **sync:** don't crash when IndexedDB is unavailable (PHP-LARAVEL-43) ([#654](https://github.com/whisper-money/whisper-money/issues/654)) ([a38dc5d](https://github.com/whisper-money/whisper-money/commit/a38dc5dd955b823e36fb84768ae2fd20ffa57dfd)) by [@victor-falcon](https://github.com/victor-falcon)
* **transactions:** keep saved-filter delete button visible on touch and confirm before deleting ([#648](https://github.com/whisper-money/whisper-money/issues/648)) ([362ac44](https://github.com/whisper-money/whisper-money/commit/362ac445ea28f6e36aece2a41883d5a024997405)) by [@victor-falcon](https://github.com/victor-falcon)
### Features
* **ai:** add command to delete a user's AI consent by email ([#729](https://github.com/whisper-money/whisper-money/issues/729)) ([8382a56](https://github.com/whisper-money/whisper-money/commit/8382a56e985563136c462b68a27f73932b448ff3))
* **ai:** make the AI provider configurable (any laravel/ai provider, incl. local Ollama) ([#718](https://github.com/whisper-money/whisper-money/issues/718)) ([350e003](https://github.com/whisper-money/whisper-money/commit/350e0031f1531eebefb014ed046e1a670f963069))
* **auth:** add REGISTRATION_ENABLED env to disable public sign-ups ([#713](https://github.com/whisper-money/whisper-money/issues/713)) ([d55ee5b](https://github.com/whisper-money/whisper-money/commit/d55ee5bdcd209ee9bb81c700d21b1d5383b68b2d)), closes [#711](https://github.com/whisper-money/whisper-money/issues/711)
* **billing:** explain what AI categorization does and the data it sends ([#730](https://github.com/whisper-money/whisper-money/issues/730)) ([2be0df2](https://github.com/whisper-money/whisper-money/commit/2be0df25c683764af1e57946676d4aef93649f5c)), closes [#725](https://github.com/whisper-money/whisper-money/issues/725) [#725](https://github.com/whisper-money/whisper-money/issues/725)
* **budgets:** add per-budget email notifications ([#731](https://github.com/whisper-money/whisper-money/issues/731)) ([0351dbf](https://github.com/whisper-money/whisper-money/commit/0351dbfb38fd563a38f3ae15f3c81f3a28cc396e))
* **budgets:** enable email notifications by default and coalesce alerts per transaction ([#733](https://github.com/whisper-money/whisper-money/issues/733)) ([045466f](https://github.com/whisper-money/whisper-money/commit/045466f70d09df1f41c10330d2741faa72585721)), closes [#731](https://github.com/whisper-money/whisper-money/issues/731) [#731](https://github.com/whisper-money/whisper-money/issues/731) [hi#volume](https://github.com/hi/issues/volume) [#731](https://github.com/whisper-money/whisper-money/issues/731)
* **cashflow:** expand income categories and fix Sankey label overlap ([#672](https://github.com/whisper-money/whisper-money/issues/672)) ([b9b5070](https://github.com/whisper-money/whisper-money/commit/b9b507005f64e338af35c6cd1331cf4237e8745a))
* **commands:** delete transactions and balances of a user's non-connected accounts ([#728](https://github.com/whisper-money/whisper-money/issues/728)) ([ca084ce](https://github.com/whisper-money/whisper-money/commit/ca084ce5d197b13d4060cc8a51fea3ff94bb3892))
* **currencies:** add Guatemalan Quetzal (GTQ) ([#685](https://github.com/whisper-money/whisper-money/issues/685)) ([808d41e](https://github.com/whisper-money/whisper-money/commit/808d41eee2c0a2eae22f9dabbc3b29e69399168b))
* **currencies:** add Hong Kong Dollar (HKD) ([#688](https://github.com/whisper-money/whisper-money/issues/688)) ([782ec2f](https://github.com/whisper-money/whisper-money/commit/782ec2f2e93ddb2939461a561730ee12a6f75fbb))
* **currencies:** add Swedish Krona (SEK) ([#684](https://github.com/whisper-money/whisper-money/issues/684)) ([7aa32da](https://github.com/whisper-money/whisper-money/commit/7aa32dab0f1c82725a36879bd51041f7e30f7cfe))
* **docker:** run the Laravel scheduler in the production image ([#732](https://github.com/whisper-money/whisper-money/issues/732)) ([24fcdef](https://github.com/whisper-money/whisper-money/commit/24fcdef09816664cb7c8de2cbb7978403d05dee3))
* **encryption:** report count of users still holding encrypted data ([#687](https://github.com/whisper-money/whisper-money/issues/687)) ([4cd7619](https://github.com/whisper-money/whisper-money/commit/4cd761979128f14e5b52b764d39a0bbc3530ba51))
* **import:** persist per-account import configuration on the backend ([#698](https://github.com/whisper-money/whisper-money/issues/698)) ([4c83cb8](https://github.com/whisper-money/whisper-money/commit/4c83cb8b335c341b713f9ba3d2c816aff0c5e845))
* **landing:** add Marta Bordiu testimonial ([#734](https://github.com/whisper-money/whisper-money/issues/734)) ([21b1b74](https://github.com/whisper-money/whisper-money/commit/21b1b74fb5c11a5e8752fc82773897ed017a6d42))
* **mcp:** add OAuth 2.1 for Claude Desktop & ChatGPT connectors (Phase 3) ([#691](https://github.com/whisper-money/whisper-money/issues/691)) ([6d5f440](https://github.com/whisper-money/whisper-money/commit/6d5f440727c9b1d58445cc436526470a1b75d273)), closes [#689](https://github.com/whisper-money/whisper-money/issues/689) [#690](https://github.com/whisper-money/whisper-money/issues/690) [#1](https://github.com/whisper-money/whisper-money/issues/1) [#690](https://github.com/whisper-money/whisper-money/issues/690)
* **mcp:** add write tools (Phase 2) ([#690](https://github.com/whisper-money/whisper-money/issues/690)) ([5d7b655](https://github.com/whisper-money/whisper-money/commit/5d7b6551114acf3c8bc11f06b19794f77ecc3eb5))
* **mcp:** filter search_transactions by label ([#724](https://github.com/whisper-money/whisper-money/issues/724)) ([bd1ad63](https://github.com/whisper-money/whisper-money/commit/bd1ad633f865bf726846ed8137b3997c97e57ccd))
* **mcp:** lead with Claude Desktop/ChatGPT connect steps, collapse tokens ([#695](https://github.com/whisper-money/whisper-money/issues/695)) ([2d7e905](https://github.com/whisper-money/whisper-money/commit/2d7e905dddc17b9530723ac8367e7ea246e51f9d))
* **mcp:** read-only MCP server for Pro accounts ([#689](https://github.com/whisper-money/whisper-money/issues/689)) ([fb1adfc](https://github.com/whisper-money/whisper-money/commit/fb1adfc484f4ad3c9ff265fe417fb8d79831ed34))
* **mcp:** recommend desktop for AI connector setup ([#712](https://github.com/whisper-money/whisper-money/issues/712)) ([2827df9](https://github.com/whisper-money/whisper-money/commit/2827df968545f54fdc34896dc5cf0cbaee20d814))
* prompt free users to subscribe when enabling AI categorization ([#696](https://github.com/whisper-money/whisper-money/issues/696)) ([52aae3f](https://github.com/whisper-money/whisper-money/commit/52aae3fd6777bbe60a0d46ad61b1a1985679cb5d))
* reuse the upgrade modal at more upsell points and attribute revenue ([#699](https://github.com/whisper-money/whisper-money/issues/699)) ([2b2e4c4](https://github.com/whisper-money/whisper-money/commit/2b2e4c4a8772d1060b2716bfb1d91d430621c919)), closes [#696](https://github.com/whisper-money/whisper-money/issues/696) [#696](https://github.com/whisper-money/whisper-money/issues/696)
* **settings:** make mobile settings nav read as a tappable menu ([#721](https://github.com/whisper-money/whisper-money/issues/721)) ([9e1aedc](https://github.com/whisper-money/whisper-money/commit/9e1aedcccd3bf56d2845724ac0415438ec2e0e93))
* **spaces:** phase 0 — multi-tenant Space foundation (no behaviour change) ([#650](https://github.com/whisper-money/whisper-money/issues/650)) ([6f72c43](https://github.com/whisper-money/whisper-money/commit/6f72c43ccebaf364ff0577e729c0ca0d7359c6ee))
* **stats:** add unit-economics funnel + connection cost to experiment report ([#666](https://github.com/whisper-money/whisper-money/issues/666)) ([dada23c](https://github.com/whisper-money/whisper-money/commit/dada23cd84661f7b4b74f258d59aea17035270fb))
* **stats:** surface trials scheduled to cancel in experiment funnel ([#665](https://github.com/whisper-money/whisper-money/issues/665)) ([815ca62](https://github.com/whisper-money/whisper-money/commit/815ca6244c4eded808ee1a361883ac9bcbe04282))
* streamline the subscription paywall and add a support escape hatch ([#694](https://github.com/whisper-money/whisper-money/issues/694)) ([5621e90](https://github.com/whisper-money/whisper-money/commit/5621e9087964938dac01526403caf03dac871218))
* **transactions:** add a monthly trend view to the analysis drawer ([#736](https://github.com/whisper-money/whisper-money/issues/736)) ([d32d1ff](https://github.com/whisper-money/whisper-money/commit/d32d1ff40b67df45ac6a1fe3c749e2ccb7233c02))
* **transactions:** add delete button to the transaction edit modal ([#697](https://github.com/whisper-money/whisper-money/issues/697)) ([89174af](https://github.com/whisper-money/whisper-money/commit/89174af4e687085651a6e37d7ca7db6129f732fa))
* **transactions:** allow editing all fields of manual transactions ([#683](https://github.com/whisper-money/whisper-money/issues/683)) ([a873582](https://github.com/whisper-money/whisper-money/commit/a873582191574b4a4192b26ec3d48687aaa1bea7))
* **welcome:** add Miguel Ángel SB testimonial to the landing page ([#703](https://github.com/whisper-money/whisper-money/issues/703)) ([8172ca7](https://github.com/whisper-money/whisper-money/commit/8172ca78d7f370b011756945bbbb77be3c5e0fe2))
* **ai:** add command to delete a user's AI consent by email ([#729](https://github.com/whisper-money/whisper-money/issues/729)) ([8382a56](https://github.com/whisper-money/whisper-money/commit/8382a56e985563136c462b68a27f73932b448ff3)) by [@victor-falcon](https://github.com/victor-falcon)
* **ai:** make the AI provider configurable (any laravel/ai provider, incl. local Ollama) ([#718](https://github.com/whisper-money/whisper-money/issues/718)) ([350e003](https://github.com/whisper-money/whisper-money/commit/350e0031f1531eebefb014ed046e1a670f963069)) by [@susomejias](https://github.com/susomejias)
* **auth:** add REGISTRATION_ENABLED env to disable public sign-ups ([#713](https://github.com/whisper-money/whisper-money/issues/713)) ([d55ee5b](https://github.com/whisper-money/whisper-money/commit/d55ee5bdcd209ee9bb81c700d21b1d5383b68b2d)) by [@susomejias](https://github.com/susomejias), closes [#711](https://github.com/whisper-money/whisper-money/issues/711)
* **billing:** explain what AI categorization does and the data it sends ([#730](https://github.com/whisper-money/whisper-money/issues/730)) ([2be0df2](https://github.com/whisper-money/whisper-money/commit/2be0df25c683764af1e57946676d4aef93649f5c)) by [@victor-falcon](https://github.com/victor-falcon), closes [#725](https://github.com/whisper-money/whisper-money/issues/725) [#725](https://github.com/whisper-money/whisper-money/issues/725)
* **budgets:** add per-budget email notifications ([#731](https://github.com/whisper-money/whisper-money/issues/731)) ([0351dbf](https://github.com/whisper-money/whisper-money/commit/0351dbfb38fd563a38f3ae15f3c81f3a28cc396e)) by [@victor-falcon](https://github.com/victor-falcon)
* **budgets:** enable email notifications by default and coalesce alerts per transaction ([#733](https://github.com/whisper-money/whisper-money/issues/733)) ([045466f](https://github.com/whisper-money/whisper-money/commit/045466f70d09df1f41c10330d2741faa72585721)) by [@victor-falcon](https://github.com/victor-falcon), closes [#731](https://github.com/whisper-money/whisper-money/issues/731) [#731](https://github.com/whisper-money/whisper-money/issues/731) [hi#volume](https://github.com/hi/issues/volume) [#731](https://github.com/whisper-money/whisper-money/issues/731)
* **cashflow:** expand income categories and fix Sankey label overlap ([#672](https://github.com/whisper-money/whisper-money/issues/672)) ([b9b5070](https://github.com/whisper-money/whisper-money/commit/b9b507005f64e338af35c6cd1331cf4237e8745a)) by [@victor-falcon](https://github.com/victor-falcon)
* **commands:** delete transactions and balances of a user's non-connected accounts ([#728](https://github.com/whisper-money/whisper-money/issues/728)) ([ca084ce](https://github.com/whisper-money/whisper-money/commit/ca084ce5d197b13d4060cc8a51fea3ff94bb3892)) by [@victor-falcon](https://github.com/victor-falcon)
* **currencies:** add Guatemalan Quetzal (GTQ) ([#685](https://github.com/whisper-money/whisper-money/issues/685)) ([808d41e](https://github.com/whisper-money/whisper-money/commit/808d41eee2c0a2eae22f9dabbc3b29e69399168b)) by [@victor-falcon](https://github.com/victor-falcon)
* **currencies:** add Hong Kong Dollar (HKD) ([#688](https://github.com/whisper-money/whisper-money/issues/688)) ([782ec2f](https://github.com/whisper-money/whisper-money/commit/782ec2f2e93ddb2939461a561730ee12a6f75fbb)) by [@victor-falcon](https://github.com/victor-falcon)
* **currencies:** add Swedish Krona (SEK) ([#684](https://github.com/whisper-money/whisper-money/issues/684)) ([7aa32da](https://github.com/whisper-money/whisper-money/commit/7aa32dab0f1c82725a36879bd51041f7e30f7cfe)) by [@victor-falcon](https://github.com/victor-falcon)
* **docker:** run the Laravel scheduler in the production image ([#732](https://github.com/whisper-money/whisper-money/issues/732)) ([24fcdef](https://github.com/whisper-money/whisper-money/commit/24fcdef09816664cb7c8de2cbb7978403d05dee3)) by [@susomejias](https://github.com/susomejias)
* **encryption:** report count of users still holding encrypted data ([#687](https://github.com/whisper-money/whisper-money/issues/687)) ([4cd7619](https://github.com/whisper-money/whisper-money/commit/4cd761979128f14e5b52b764d39a0bbc3530ba51)) by [@victor-falcon](https://github.com/victor-falcon)
* **import:** persist per-account import configuration on the backend ([#698](https://github.com/whisper-money/whisper-money/issues/698)) ([4c83cb8](https://github.com/whisper-money/whisper-money/commit/4c83cb8b335c341b713f9ba3d2c816aff0c5e845)) by [@victor-falcon](https://github.com/victor-falcon)
* **landing:** add Marta Bordiu testimonial ([#734](https://github.com/whisper-money/whisper-money/issues/734)) ([21b1b74](https://github.com/whisper-money/whisper-money/commit/21b1b74fb5c11a5e8752fc82773897ed017a6d42)) by [@victor-falcon](https://github.com/victor-falcon)
* **mcp:** add OAuth 2.1 for Claude Desktop & ChatGPT connectors (Phase 3) ([#691](https://github.com/whisper-money/whisper-money/issues/691)) ([6d5f440](https://github.com/whisper-money/whisper-money/commit/6d5f440727c9b1d58445cc436526470a1b75d273)) by [@victor-falcon](https://github.com/victor-falcon), closes [#689](https://github.com/whisper-money/whisper-money/issues/689) [#690](https://github.com/whisper-money/whisper-money/issues/690) [#1](https://github.com/whisper-money/whisper-money/issues/1) [#690](https://github.com/whisper-money/whisper-money/issues/690)
* **mcp:** add write tools (Phase 2) ([#690](https://github.com/whisper-money/whisper-money/issues/690)) ([5d7b655](https://github.com/whisper-money/whisper-money/commit/5d7b6551114acf3c8bc11f06b19794f77ecc3eb5)) by [@victor-falcon](https://github.com/victor-falcon)
* **mcp:** filter search_transactions by label ([#724](https://github.com/whisper-money/whisper-money/issues/724)) ([bd1ad63](https://github.com/whisper-money/whisper-money/commit/bd1ad633f865bf726846ed8137b3997c97e57ccd)) by [@victor-falcon](https://github.com/victor-falcon)
* **mcp:** lead with Claude Desktop/ChatGPT connect steps, collapse tokens ([#695](https://github.com/whisper-money/whisper-money/issues/695)) ([2d7e905](https://github.com/whisper-money/whisper-money/commit/2d7e905dddc17b9530723ac8367e7ea246e51f9d)) by [@victor-falcon](https://github.com/victor-falcon)
* **mcp:** read-only MCP server for Pro accounts ([#689](https://github.com/whisper-money/whisper-money/issues/689)) ([fb1adfc](https://github.com/whisper-money/whisper-money/commit/fb1adfc484f4ad3c9ff265fe417fb8d79831ed34)) by [@victor-falcon](https://github.com/victor-falcon)
* **mcp:** recommend desktop for AI connector setup ([#712](https://github.com/whisper-money/whisper-money/issues/712)) ([2827df9](https://github.com/whisper-money/whisper-money/commit/2827df968545f54fdc34896dc5cf0cbaee20d814)) by [@victor-falcon](https://github.com/victor-falcon)
* prompt free users to subscribe when enabling AI categorization ([#696](https://github.com/whisper-money/whisper-money/issues/696)) ([52aae3f](https://github.com/whisper-money/whisper-money/commit/52aae3fd6777bbe60a0d46ad61b1a1985679cb5d)) by [@victor-falcon](https://github.com/victor-falcon)
* reuse the upgrade modal at more upsell points and attribute revenue ([#699](https://github.com/whisper-money/whisper-money/issues/699)) ([2b2e4c4](https://github.com/whisper-money/whisper-money/commit/2b2e4c4a8772d1060b2716bfb1d91d430621c919)) by [@victor-falcon](https://github.com/victor-falcon), closes [#696](https://github.com/whisper-money/whisper-money/issues/696) [#696](https://github.com/whisper-money/whisper-money/issues/696)
* **settings:** make mobile settings nav read as a tappable menu ([#721](https://github.com/whisper-money/whisper-money/issues/721)) ([9e1aedc](https://github.com/whisper-money/whisper-money/commit/9e1aedcccd3bf56d2845724ac0415438ec2e0e93)) by [@victor-falcon](https://github.com/victor-falcon)
* **spaces:** phase 0 — multi-tenant Space foundation (no behaviour change) ([#650](https://github.com/whisper-money/whisper-money/issues/650)) ([6f72c43](https://github.com/whisper-money/whisper-money/commit/6f72c43ccebaf364ff0577e729c0ca0d7359c6ee)) by [@victor-falcon](https://github.com/victor-falcon)
* **stats:** add unit-economics funnel + connection cost to experiment report ([#666](https://github.com/whisper-money/whisper-money/issues/666)) ([dada23c](https://github.com/whisper-money/whisper-money/commit/dada23cd84661f7b4b74f258d59aea17035270fb)) by [@victor-falcon](https://github.com/victor-falcon)
* **stats:** surface trials scheduled to cancel in experiment funnel ([#665](https://github.com/whisper-money/whisper-money/issues/665)) ([815ca62](https://github.com/whisper-money/whisper-money/commit/815ca6244c4eded808ee1a361883ac9bcbe04282)) by [@victor-falcon](https://github.com/victor-falcon)
* streamline the subscription paywall and add a support escape hatch ([#694](https://github.com/whisper-money/whisper-money/issues/694)) ([5621e90](https://github.com/whisper-money/whisper-money/commit/5621e9087964938dac01526403caf03dac871218)) by [@victor-falcon](https://github.com/victor-falcon)
* **transactions:** add a monthly trend view to the analysis drawer ([#736](https://github.com/whisper-money/whisper-money/issues/736)) ([d32d1ff](https://github.com/whisper-money/whisper-money/commit/d32d1ff40b67df45ac6a1fe3c749e2ccb7233c02)) by [@victor-falcon](https://github.com/victor-falcon)
* **transactions:** add delete button to the transaction edit modal ([#697](https://github.com/whisper-money/whisper-money/issues/697)) ([89174af](https://github.com/whisper-money/whisper-money/commit/89174af4e687085651a6e37d7ca7db6129f732fa)) by [@victor-falcon](https://github.com/victor-falcon)
* **transactions:** allow editing all fields of manual transactions ([#683](https://github.com/whisper-money/whisper-money/issues/683)) ([a873582](https://github.com/whisper-money/whisper-money/commit/a873582191574b4a4192b26ec3d48687aaa1bea7)) by [@victor-falcon](https://github.com/victor-falcon)
* **welcome:** add Miguel Ángel SB testimonial to the landing page ([#703](https://github.com/whisper-money/whisper-money/issues/703)) ([8172ca7](https://github.com/whisper-money/whisper-money/commit/8172ca78d7f370b011756945bbbb77be3c5e0fe2)) by [@victor-falcon](https://github.com/victor-falcon)
### Reverts
* **pwa:** drop handle_links to keep app deep-linking ([#708](https://github.com/whisper-money/whisper-money/issues/708)) ([13360ce](https://github.com/whisper-money/whisper-money/commit/13360ce0b861ae25e3249355df9f384c397044a4))
* **pwa:** drop handle_links to keep app deep-linking ([#708](https://github.com/whisper-money/whisper-money/issues/708)) ([13360ce](https://github.com/whisper-money/whisper-money/commit/13360ce0b861ae25e3249355df9f384c397044a4)) by [@victor-falcon](https://github.com/victor-falcon)
## [0.2.6](https://github.com/whisper-money/whisper-money/compare/v0.2.5...v0.2.6) (2026-07-06)

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "whisper-money",
"version": "0.2.7",
"version": "0.2.8",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "whisper-money",
"version": "0.2.7",
"version": "0.2.8",
"hasInstallScript": true,
"dependencies": {
"@dnd-kit/core": "^6.3.1",

View File

@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "whisper-money",
"version": "0.2.7",
"version": "0.2.8",
"private": true,
"type": "module",
"scripts": {