Commit Graph

104 Commits

Author SHA1 Message Date
null e1082145ab feat: tracker payment flow and mobile row improvements 2026-06-07 14:49:39 -05:00
null 3b555e4d8e chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
null 6d60eebe1a chore: dependency updates and UI fixes (batch) 2026-06-07 14:23:19 -05:00
null 4f5a3d0cff feat: bank sync section, data sources route, subscription page updates, package updates 2026-06-07 02:03:00 -05:00
null d9cf499dba feat: search filter panel component, search preference persistence, page integration 2026-06-07 01:28:35 -05:00
null ab5e3fbf1f feat: profile settings UI, auth service refactor, schema migration, route tests 2026-06-07 01:17:49 -05:00
null 6811eb8be5 feat: payment accounting service, SQL schema + migration, backend route refactor, test updates 2026-06-07 01:05:48 -05:00
null 1ebb2da50a feat: tracker bucket rollover logic, utils cleanup, HISTORY update 2026-06-07 00:41:07 -05:00
null be95910ac2 feat: admin UX cleanup, bills page reordering, subscriptions page cadence sort + in-place edits, summary polish 2026-06-06 23:53:53 -05:00
null 88cb9d5340 feat: summary overdue highlighting, tracker row visual polish, bill table cleanup 2026-06-06 23:29:34 -05:00
null bb04966bbc fix: historical import loading state, remove stray catalog export 2026-06-06 23:17:08 -05:00
null 4dd01c13c4 feat: live transaction search in merchant rules, link-import preference toggle, tracker row tweaks 2026-06-06 23:04:53 -05:00
null b2f8f5ef66 feat: dedicated subscription catalog page, evidence badges, price display in recommendations 2026-06-06 20:44:54 -05:00
null 3a034ddeb7 feat: subscription catalog with bank descriptors, custom per-user descriptors, catalog→bill linking 2026-06-06 20:02:13 -05:00
null fc3709337c feat: bulk unmatch — review similar payees, batch-undo with optional rule removal 2026-06-06 19:15:06 -05:00
null b4779c9eda feat: auto-match review panel with undo — last 7d provider_sync payments 2026-06-06 17:34:09 -05:00
null 9a2a7ecdee feat: v0.94 — session token hashing, geolocation opt-in privacy setting 2026-06-06 17:00:22 -05:00
null a2ac241cd3 refactor(sync): centralize sync constants in bankSyncConfigService, wire through config/UI 2026-06-06 15:51:56 -05:00
null a73d0afe07 feat(encryption): support TOKEN_ENCRYPTION_KEY env var with startup migration 2026-06-06 15:27:45 -05:00
null 3623cadcf6 feat: income breakdown modal with ignore/restore, summary chart click, includeIgnored query param 2026-06-04 21:19:25 -05:00
null 910febae63 feat: bill rules manager page, merchant re-normalization, match suggestion scoring fix, cleanup pruning 2026-06-04 20:45:11 -05:00
null ac5d6c6625 feat: spending tracking page with category breakdowns 2026-06-04 04:31:25 -05:00
null a6b2e8bb87 fix: login mode card update, OIDC service improvements, auth middleware refinements 2026-06-04 03:53:38 -05:00
null 809bd4498b fix: BankSyncSection enhancements, merchant rule service updates, user settings import 2026-06-04 02:57:09 -05:00
null 5689fc95c2 feat: historical import batch selection UI, backend endpoint, DB migration v0.83 2026-06-04 02:36:36 -05:00
null d2d3045afe feat: historical payment import dialog for bank merchant rules 2026-06-04 02:05:15 -05:00
null d04f03b6b1 fix: replace Portal with inline block to avoid Radix pointer-event capture 2026-06-04 01:50:40 -05:00
null 68667fea59 fix: render suggestion dropdown in Portal to escape BillModal overflow container 2026-06-04 01:45:17 -05:00
null 52af533845 fix: remove duplicate/early refetch calls in BillModal sync flow 2026-06-04 01:38:14 -05:00
null 779ace60dd fix: overdue badge excludes due today, tooltip with names, larger column labels 2026-06-04 01:12:25 -05:00
null 46bcf83d22 fix: NavPill and Sidebar UI refinements, trackerService adjustments 2026-06-04 01:00:29 -05:00
null 1ea6979903 fix: TrackerBucket and SnowballPage minor adjustments 2026-06-04 00:50:50 -05:00
null da4642dbd0 feat: late-attribution prompt for bank payments that crossed month boundary 2026-06-04 00:06:16 -05:00
null 278521a612 fix: bank matching returns bill names, reactive Sync button in BillModal, error handling in merchant rule service 2026-06-03 23:29:30 -05:00
null 0011ade58d fix: encryptionService removes env-var key path, always uses auto-generated DB key 2026-06-03 23:21:48 -05:00
null 2a2ebd4b28 feat: Pin Due toggle to float urgent bills to top, keyboard nav for tracker rows 2026-06-03 22:55:27 -05:00
null 4188a2059d fix: mortgage and housing categories auto-detected as debt in snowball 2026-06-03 22:19:58 -05:00
null a0fe7880df feat: bill bank matching rules with pattern preview, conflict detection, retroactive payment sync
- Merchant rules link bills to bank transaction patterns for auto-import
- Live preview badge shows match count as user types merchant name
- Inline conflict warning if another bill already owns that pattern
- Retroactive sync on save — imports historical payments immediately
- Green Bank chip on bill list items with active rules
- New endpoints: GET/POST/DELETE merchant-rules + GET preview
2026-06-03 21:21:38 -05:00
null 690a86611a feat: SimpleFIN bank budget tracking with live balance, pending payments, bank tracking mode
- Opt-in Bank Budget Tracking mode replaces manual starting amounts with live bank balance
- Calendar money map shows Balance / Pending / Unpaid Bills / After Bills in bank mode
- Pending badge (amber) on tracker rows within configurable pending window (0-7 days)
- New GET /api/data-sources/accounts/all endpoint for account picker
- Tracker starting-amounts card shows account name and live balance hint
2026-06-03 21:09:26 -05:00
null 31bafb0e55 0.34.3 2026-05-31 15:06:10 -05:00
null c6cd81e33a chore: bump to v0.34.2, subscription badge fix on Tracker rows 2026-05-30 21:52:02 -05:00
null 90cfed035b feat: Payoff Custom mode, Summary reordering, unifed billing schedule, SimpleFIN + backup fixes (batch v0.34.1.3) 2026-05-30 21:20:51 -05:00
null c23cae1107 feat: reordering across management pages (Bills, Subscriptions, Categories, Snowball) — batch v0.34.1.2 2026-05-30 20:04:50 -05:00
null 35d0cbf8be chore: reset tracked db file 2026-05-30 17:27:15 -05:00
null 799189059b chore: roadmap audit v0.34.2 — remove completed FUTURE.md items, update partial statuses 2026-05-30 15:18:45 -05:00
null 5182754e0f feat(tracker): price-change drift detection with amber insight panel
Detects when a bill's recent payments have diverged from its configured
expected amount for 2+ consecutive months and surfaces it in a new
collapsible amber panel on the Tracker page.

- Migration v0.71: adds `drift_snoozed_until` to bills and
  `notify_amount_change` to users
- New `driftService.getDriftReport()`: computes per-bill payment median
  over last 3 months, flags drift above a user-configurable threshold
  (default 5%, minimum $1 delta)
- New `GET /api/bills/drift-report` and `POST /api/bills/:id/snooze-drift`
  routes (registered before `/:id` to avoid routing conflict)
- `runDriftNotifications()` added to daily worker — sends amber digest
  email per user listing all changed bills with old → new amounts
- `notify_amount_change` wired through profile and notifications routes
- `DriftInsightPanel`: collapsible amber panel with per-bill
  strikethrough old → new amount, ±% badge, TrendingUp/TrendingDown
  icons, "Update to $X.XX" (with undo toast) and "Dismiss" (30 days)
  actions; teal palette for price decreases
- `drift_threshold_pct` setting added to SettingsPage Billing Behavior
- "Notify on price changes" toggle added to ProfilePage notifications

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 14:33:55 -05:00
null 3978507572 feat(tracker): overdue command center with snooze/skip/pay + sidebar badge
- migration v0.70 adds snoozed_until TEXT to monthly_bill_state
- trackerService: snoozed_until in monthly state fetch + getOverdueCount()
- GET /api/tracker/overdue-count endpoint
- PUT /bills/:id/monthly-state validates snoozed_until
- OverdueCommandCenter component: collapsible, per-bill actions, hides snoozed
- useOverdueCount hook (2-min stale, 5-min poll, tab-only)
- Sidebar/nav uses overdue count badge on Tracker menu item
- Bump v0.33.8.7 → v0.34.0
2026-05-30 13:19:09 -05:00
null 6b0c86b73c revert: compact tracker mode + wider layout, keep S badge + remaining/Done header (batch 0.33.8.7)
- Removed hasBoth, compact prop, 2xl:min-w-[700px], 2xl:hidden Last Month,
  narrowed columns — back to original single-column tracker layout
- Removed 2xl:max-w-[2000px] from Layout/Sidebar/AdminShell/footer/nav
- Kept S badge in all 4 locations and bucket remaining/Done header
- Added mkdocs/ to .gitignore
- Bump v0.33.8.6 -> v0.33.8.7
2026-05-29 21:16:13 -05:00
null af601057c4 style: wider max-width at 2xl+ (1500px -> 2000px) (batch 0.33.8.6)
- Layout, AdminShell, Sidebar, footer, mobile nav: 2xl:max-w-[2000px]
- Content area grows from ~1436px to ~1936px, enough room for
  dual-bucket tracker at 2xl+
- Bump v0.33.8.5 -> v0.33.8.6
2026-05-29 20:40:14 -05:00
null f99cd82438 feat: compact tracker, S badge, side-by-side buckets (batch 0.33.8.5)
- Sub badge changed to 'S' in all 4 locations with matching border style
- Two-bucket grid at 2xl+ when both buckets have bills
- Compact mode: narrow table, hide Last Month column, shrink Notes/Actions/Due
- Bucket header shows remaining/Done labels alongside paid/total/overpaid
- Removed standalone Remaining summary card (redundant with bucket header)
- Row and Bucket accept compact=false
- Bump v0.33.8.4 -> v0.33.8.5
2026-05-29 20:33:01 -05:00