v2.1.0
What's Changed
- fix(site): make the docker-compose snippet readable in dark mode by @easly1989 in #225
- fix(attachments): prevent stored XSS via inline SVG/HTML downloads by @easly1989 in #234
- security: add a security-headers middleware (CSP, X-Frame-Options, HSTS) by @easly1989 in #235
- perf: route the remaining read-only services through the SQLite read pool by @easly1989 in #236
- test(httpapi): cover vehicle/tag handlers, errmap and an integrity edge by @easly1989 in #237
- refactor(dashboard): split DashboardPage.tsx into per-widget component files by @easly1989 in #238
- refactor(reports): split ReportsPage.tsx into per-tab component files by @easly1989 in #239
- test: cover the dashboard layout model + add an attachment e2e step by @easly1989 in #240
- feat(dashboard): add Currency rates and Category budget widgets (batch 1) by @easly1989 in #241
- fix(schedule): post scheduled transactions as Cleared, not None by @easly1989 in #244
- fix(dashboard): make all widgets fill their grid cell height by @easly1989 in #245
- feat(dashboard): add Net worth and Balance trend widgets (batch 2) by @easly1989 in #246
- feat(dashboard): add Spending calendar heatmap widget (batch 3) by @easly1989 in #247
- feat(reports): uncleared / reconciliation summary + dashboard widget by @easly1989 in #250
- feat(reports): cashflow forecast (projection + dashboard widget) by @easly1989 in #251
Full Changelog: v2.0.0...v2.1.0