null
88cb9d5340
feat: summary overdue highlighting, tracker row visual polish, bill table cleanup
2026-06-06 23:29:34 -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
a1e6a308cf
feat: existing bill matching in recommendations, feedback tracking, broad-merchant rejection, annual price detection
2026-06-06 21:15:08 -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
7455dff5b8
feat: v0.37.0 — auto-learn merchant rules, ambiguous match protection, session hashing, geolocation opt-in
2026-06-06 18:30:21 -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
840620efe2
feat: v0.93 — stable provider keys, per-payment interest tracking with once-per-month gating
2026-06-06 16:34:20 -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
80b5d56010
feat(sync): rate limit sync/backfill endpoints to 10 per 15 minutes
2026-06-06 15:08:33 -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
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
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
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
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
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
ccdd16a626
fix: summary route and trackerService refinements
2026-06-04 01:27:00 -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
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
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
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
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
44320a7613
fix: validate all snowball order rows upfront, reject invalid ones with 400
...
PATCH /api/snowball/order silently skipped rows with bad ids or invalid
snowball_order values via bare 'continue' — no feedback, partial updates.
Now validates every item before touching the DB, returning 400 on the first
bad entry. Also adds deleted_at IS NULL filter so soft-deleted bills are
skipped instead of updated silently.
2026-06-03 20:48:24 -05:00
null
e41f413f61
fix: pass ramseyMode explicitly to getDebtBills to avoid stale DB reads
2026-06-03 20:46:32 -05:00
null
36a65156e3
feat: merge pipeline workflow into bill-tracker (batch v0.36.0)
...
- Copy pipeline-report.py from Pipeline project into scripts/
- Update TOOLS.md and MEMORY.md to reflect workflow consolidation
- (includes all uncommitted v0.36.0 changes from prior session)
2026-06-03 20:28:37 -05:00
null
e4f1f58730
feat: Roadmap pulls from Forgejo issues (v0.35.1)
2026-05-31 19:37:01 -05:00
null
9f27775da9
oidc error correction
2026-05-31 16:08:24 -05:00
null
67ce59db50
v0.35.0
2026-05-31 15:52:50 -05:00
null
31bafb0e55
0.34.3
2026-05-31 15:06:10 -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