v0.20.0
Docker
docker pull ghcr.io/lucaslra/montly:0.20.0
docker pull ghcr.io/lucaslra/montly-mcp:0.20.0
Fixed
- Webhook
task.skippedevent — subscribers now receive real deliveries when a task is skipped (was subscribed but never fired). AddTaskShareContent-Type — response now correctly setsContent-Type: application/json(was sniffed astext/plaindue toWriteHeaderordering).- Amount validation —
NaN,Infinity, and negative values are now rejected in both task creation and completion patching; previously they passed validation and could corrupt spending totals. - Skip error matching — replaced fragile string comparison with a sentinel
ErrAlreadyCompletederror. - Progress bar with skipped tasks — skipped tasks are now excluded from the denominator so 100% is reachable; the monetary summary also excludes skipped payments from the "due" total.
- Task checkbox tap target — expanded from 20×20px to 44×44px minimum, meeting mobile touch target guidelines.
Changed
- Static asset caching — Vite-built assets under
/assets/now returnCache-Control: public, max-age=31536000, immutable, eliminating redundant downloads on repeat visits. - Documentation — 16 fixes across README, CLAUDE.md, SECURITY.md, deployment guide, CONTRIBUTING, MCP server README, PR template, and issue templates.