null
a97d656e92
fix(match-suggestions): use rejection timestamps and share late attribution helper
2026-06-06 14:06:28 -05:00
null
99abca9868
security: WebAuthn / FIDO2 hardware security key 2FA
2026-06-05 22:05:23 -05:00
null
2c9cc37593
feat: copy last month budgets, monthly income section on summary page
2026-06-04 21:57:42 -05:00
null
3a19303d4d
fix: SQLite timestamp timezone ambiguity — convert to proper UTC ISO strings
2026-06-04 21:42:34 -05:00
null
df9d6fbf6d
fix: backup enabled setting key mismatch
2026-06-04 21:35:02 -05:00
null
a2266635f4
perf: worker N+1 batching, status runtime DB persistence, 'use strict'
2026-06-04 21:32:28 -05:00
null
81ae41325a
feat: move income modal to tracker page, clickable bank card
2026-06-04 21:22:20 -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
59d32f4686
perf: composite DB indexes, notification N+1 batching, spending page double-fetch fix
2026-06-04 21:00:59 -05:00
null
803e91da28
fix: migration error handling for legacy DBs, fallback rejection query
2026-06-04 20:52:50 -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
743379fc94
feat: spending toggle per category, empty state, income query, auto-enable on rule creation
2026-06-04 20:01:51 -05:00
null
3f0078b930
feat: spending income section, rules manager, error handling improvements
2026-06-04 19:53:38 -05:00
null
ac5d6c6625
feat: spending tracking page with category breakdowns
2026-06-04 04:31:25 -05:00
null
92f292dcee
refactor: otplib named imports, cleanup totpService internal naming
2026-06-04 04:16:20 -05:00
null
653dd72e12
feat: TOTP 2FA for login & profile setup flow
2026-06-04 04:10:14 -05:00
null
a6b2e8bb87
fix: login mode card update, OIDC service improvements, auth middleware refinements
2026-06-04 03:53:38 -05:00
null
26b6fb13e5
feat: login history with geolocation, encryption, new device alerts, session detection
2026-06-04 03:38:32 -05:00
null
ecec6763b0
docs: update user-guide index with recent features (bank status, notifications, cash flow, batch import, merchant rules)
2026-06-04 03:14:54 -05:00
null
809bd4498b
fix: BankSyncSection enhancements, merchant rule service updates, user settings import
2026-06-04 02:57:09 -05:00
null
3745ef79b7
docs: update HISTORY.md with bank tracking, merchant rules, and UI changes
2026-06-04 02:48:32 -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
d5a0b65532
feat: live bank status bar and card on TrackerPage with effective balance + pending
2026-06-04 02:24:10 -05:00
null
19421c06fc
fix: historical import backend routes and service adjustments
2026-06-04 02:20:30 -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
48f5577031
fix: bank tracking pending deduction corrected, projected month-end balance, settings loading fix
2026-06-04 01:36:07 -05:00
null
ccdd16a626
fix: summary route and trackerService refinements
2026-06-04 01:27:00 -05:00
null
5783f80e38
fix: include b.name in overdue query for tooltip display
2026-06-04 01:16:48 -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
a88d5c4647
fix: move cashflow calculations before the cashflow block reference
2026-06-03 23:08:20 -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
e271c54ac6
fix: reconcileLegacyMigrations asserts version sync with runMigrations to prevent drift
2026-06-03 22:38:33 -05:00
null
b81b41d302
security: rename LIVE constant to SQL_NOT_DELETED with injection safety documentation
2026-06-03 22:28:46 -05:00
null
ff7ae8b3ab
perf: optimize bills list query, add merchant rule composite index (v0.81)
2026-06-03 22:25:30 -05:00
null
6da43c5e92
fix: use correct payment_source 'file_import' for imported spreadsheet payments
2026-06-03 22:23:07 -05:00
null
4188a2059d
fix: mortgage and housing categories auto-detected as debt in snowball
2026-06-03 22:19:58 -05:00
null
b7c855e570
fix: imported payments now update debt balance via balance_delta and current_balance
2026-06-03 22:16:51 -05:00
null
37cf24f5a0
feat: Sync Bank button on tracker that runs merchant rule matching on all connected sources
2026-06-03 21:59:50 -05:00
null
1f1c505115
fix: daily worker quarterly and annual bill cycle bugs
...
- getCycleRange() now called per-bill so quarterly/annual bills are
checked in their full window, not just the calendar month
- Null-safe guard after buildTrackerRow() prevents TypeError on
cyclically-inactive bills
2026-06-03 21:55:15 -05:00
null
c353dd9f40
fix: remove client-side snowball projection, delegate to server with ?extra=N
...
- Delete 86-line computeLiveProjection() — drift risk eliminated
- GET /api/snowball/projection now accepts ?extra=N for unsaved amount preview
- Client uses debounced useEffect calling server instead of useMemo duplicate
2026-06-03 21:50:29 -05:00
null
36f7191289
feat: push notification channels (ntfy/Gotify/Discord/Telegram) and cash flow projection
...
- Wire four push channels into runNotifications() with urgency mapping
- push_url and push_token encrypted at rest via AES-256-GCM
- Profile page Push card with master toggle, channel picker, test button
- Calendar CashFlowCard with period/month projections and negative alert
- Tracker card shows projected amount when cashflow data available
2026-06-03 21:43:54 -05:00
null
c26880da89
fix: bank tracking Pending badge cleanup, CalendarPage money map polish
...
- TrackerPage Pending badge: consistent styling and tooltip text
- CalendarPage money map: handle edge cases when bank tracking is active but no pending payments
- trackerService: deduplicate pending payment query, handle zero-pending state
2026-06-03 21:30:02 -05:00