fire-planner/fire_planner
Viktor Barzin 4a0ef1faf6
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
fire-planner: filterable date range on the home-page history chart
User asked for a manual date range on the Dashboard chart instead of
the hard-coded 12-month window.

Backend (/networth/history):
- Read LIVE from wf_sync's daily_account_valuation JOIN accounts so the
  chart spans the broker's full daily series. The account_snapshot
  cache is only the latest snapshot — never had >2 daily points for
  charting. Falls back to the cache when wf_sync isn't wired (tests).
- Accept `from=YYYY-MM-DD` and `to=YYYY-MM-DD` query params. When `from`
  is set, the window is [from, to or today] (inclusive). Otherwise the
  legacy `days` look-back still applies. 422 when from > to.

Frontend:
- New HistoryRangePicker component: preset buttons (1m / 3m / 6m / 1y /
  3y / All) plus two date inputs for an explicit custom range.
- Dashboard wires the picker to the chart via react-query keyed on the
  selected range, so the chart re-fetches on change.

Tests:
- Renamed `respects_days_filter` → `respects_from_to_filter` and added
  inverted-window rejection. Old test asserted "days=1 returns 1 point"
  which only worked when 'today' was within the seed window — the new
  windowing is correct and explicit.

271 → 272 tests passing.
2026-05-28 09:04:58 +00:00
..
api fire-planner: filterable date range on the home-page history chart 2026-05-28 09:04:58 +00:00
col
ingest fire-planner: lazy-refresh /networth from wf_sync (default TTL 1d) 2026-05-27 18:21:12 +00:00
reporters
returns
strategies
tax
__init__.py
__main__.py
actualbudget.py
app.py fire-planner: lazy-refresh /networth from wf_sync (default TTL 1d) 2026-05-27 18:21:12 +00:00
db.py
flex_spending.py
fx.py
glide_path.py
goals_eval.py
income_streams.py
life_events.py
scenarios.py
simulator.py