What's Changed
🏦 Bank Integrations Overhaul
The banks integrations list got a significant UX pass: a refreshed mobile layout, redesigned tooltips, regional flags next to providers, and a reordered list that surfaces the most relevant providers first. The duplicate detection logic when linking accounts is also smarter, with improved dedup behavior across providers.
👀 Smarter Stuck-Sync UI
MoneyMatter now responds gracefully when an account sync gets stuck. The sync status tooltip and header indicator surface clearer states, and the underlying tracker is more reliable — so you can tell at a glance when something needs attention rather than wondering whether a sync is still running.
🔒 Security Hardening
A broad security pass across the app:
- Closed IDOR vulnerabilities by properly scoping account-group mutations and transaction
categoryIdupdates by user. - Fixed authorization issues around account deletion.
- Added rate limiting middleware on sensitive endpoints.
- Hardened auth configuration and tightened nginx response headers.
- Migrated to a more robust PDF parser for CSV/statement imports.
- Added a
.well-known/security.txtfor responsible disclosure.
🐛 Bug Fixes
- Fix
refCreditLimitcalculation upon bank connection - Fix re-linking gaps for previously disconnected bank accounts
- Fix monobank
lastSyncednot updating after sync - Fix monobank last-batch completion race condition
- Fix bank disconnection edge cases
- Fix bank providers masking 5xx/429 errors as invalid credentials
- Add missing unique index on
AccountGroups.bankDataProviderConnection - Fix
getConnectionDetailsnumber conversions - Fix
getCurrencymisleading signature
📝 Code Changes
- feat: improve banks integrations list UI by @letehaha in #223
- fix: Security audit issues by @letehaha in #225
- fix: banks connection bugs by @letehaha in #226
- feat: bunch of security issues and improvements by @letehaha in #227
Full Changelog: v0.14.1...v0.14.2