0.4.0
New
- Recurring bill lifecycle — pausing a bill now moves it into a collapsed Archived section of the
finance-recurringblock (click to open), with Resume and a permanent Remove completely — the bill is dropped from consideration for good, even if you log another entry with the same tag later. - Edit a recurring bill — manage mode gains an Edit action: correct the amount directly, or schedule a future price change with an exact date (e.g. "this subscription becomes $15.99 on the 1st"). The new amount applies itself automatically once that date arrives.
- Recurring payments note name is now a setting — asked once during first-time setup, changeable any time in Settings → Recurring payments.
- Merchant map moved off disk — learned merchant → category associations now live in plugin settings instead of a hand-edited
Merchant Map.mdnote. Existing notes are migrated once, automatically, and then removed. Manage entries at Settings → Merchant map. - Donut chart polish — subcategory shades are now ranked by spend (biggest subcategory lightest, smallest darkest) instead of a fixed pattern, and hovering any slice shows its name, amount, and share of the total.
- README overhaul — a full command reference table, the Apple Shortcuts capture tutorial folded in from its standalone note, and 23 real screenshots covering setup, capture, quick-add, recurring payments, dashboards, goals, splits, and net worth.
Fixed
- The Recurring Payments note no longer shows up as a selectable holiday budget or savings goal in those pickers.
updateRecurringRegistryEntrywas silently ignoring amount overrides.- Settings → Holiday budgets and → Savings goals shared one unfiltered list, so a plain savings goal (no
trip_tag) would visually appear under "Holiday budgets" — each section now only lists its own notes. - Quick-add's category/tag autocomplete was inadvertently hiding every
subscriptions/...category. - Quick-add: Enter now accepts the highlighted autocomplete suggestion (same as Tab) while the popup is open, and only submits the entry once the popup has closed.
authorUrlin the manifest pointed at a dead GitHub account; corrected.- Added a lockfile (
package-lock.json) for reproducible builds.
76 tests passing (npm test).