Commit Graph

5 Commits

Author SHA1 Message Date
5f2111ea66 Add recurring expenses with active nav tab highlighting
- Add RecurringExpense model to Prisma schema with migration
- Add lib/recurring-expenses.ts: CRUD + virtual projection per month
- Add /recurring-expenses API routes (GET, POST, PATCH, DELETE)
- Merge projected recurring expenses into dashboard totals and expense list
- Add RecurringExpenseManager component to /add-expense page
- Show amber "Recurring" badge on projected items; hide edit/delete for them
- Highlight active nav tab using usePathname() with hover state
- Fix Turbopack/Prisma stub issue by adding serverExternalPackages to next.config.ts
- Clear stale Turbopack stub in Dockerfile before each build

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 21:08:38 -04:00
3e6231b654 Teach local AI from user category corrections
- Add MerchantCorrection model: upsert by merchantName, Category enum
- Check corrections DB first in suggestCategoryForMerchant (source: "learned",
  no confirmation required); falls through to rules then Ollama if no match
- Inject recent corrections as few-shot examples in the Ollama prompt so the
  model improves even for merchants not yet explicitly corrected
- Add POST /categories/correct route to persist corrections
- Detect category override on form save (suggestedCategory !== chosen category)
  and silently fire a correction — no extra UX required
- Fix test isolation: beforeEach re-applies vi.fn() defaults after restoreAllMocks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 17:28:26 -04:00
83d6891023 Add biweekly pay schedule with projected paychecks and dashboard integration
- Add PaySchedule model (anchorDate + amountCents + active flag)
- Add /pay-schedule API route (GET, POST, DELETE)
- Project biweekly pay dates from anchor; deduplicate against manual paychecks
- Merge projected paychecks into dashboard totals and daily chart
- Fix DST day-shift bug in getProjectedPayDates by using Date.UTC throughout
- Rewrite paycheck workspace: schedule panel at top, manual entry below,
  projected dates with "Mark received" buttons, confirmed badges
- Pass paySchedule context to Ollama insight prompt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 17:20:32 -04:00
a745c0ca1e Add offline monthly insights with Ollama 2026-03-23 14:12:35 -04:00
905af75cd8 Implement expense tracking foundation for v1 2026-03-23 12:32:36 -04:00