14 Commits

Author SHA1 Message Date
Joey Eamigh
224a9046fc
fix: add "use cache" directives, fix server-client icon serialization
- Add Next.js 16 "use cache" with cacheLife profiles: seedData (1h),
  prices (5min), demand (5min), commodities (30min), ticker (1min),
  alerts (2min)
- Add cacheTag for parameterized server actions
- Fix MetricCard icon prop: pass rendered JSX instead of component
  references across the server-client boundary
2026-02-11 13:29:47 -05:00
Joey Eamigh
7a1bbca339
fix: comprehensive review fixes — real price data, missing components, SQL bugs, security
- Replace $0 electricity prices with real EIA retail-sales data (IND sector)
  with demand-based hourly variation (0.8x-1.2x)
- Add sparkline component and alerts feed to dashboard home
- Add animated number transitions to hero metric cards
- Fix ticker tape price direction (green/red arrows with % change)
- Fix AI milestone annotation alignment on price charts
- Fix SQL cartesian products in getDemandByRegion and getRegionPriceHeatmap
  using CTEs for independent aggregation
- Add unique composite constraints to prevent duplicate data
- Add bearer token auth to ingestion API routes
- Add 30s fetch timeouts to EIA and FRED API clients
- Add regionCode validation in server actions
- Fix docker-compose: localhost-only port binding, correct volume path
- Fix seed script to preserve ingested time-series data
2026-02-11 13:23:21 -05:00
Joey Eamigh
a954e89b47
fix: map EIA fuel type codes to display names in generation chart
EIA stores fuel types as codes (NG, NUC, WND, SUN, COL, WAT) but
the chart expected display names (gas, nuclear, wind, solar, coal,
hydro). All data was falling through to "other". Added EIA_FUEL_MAP
lookup in pivotGenerationData to resolve codes before categorizing.
2026-02-11 05:50:09 -05:00
Joey Eamigh
f053a3a53b
final QA: add error boundaries, run backfill
Add error.tsx files for all route segments (/, /map, /trends,
/demand, /generation) with retry buttons. Backfill script ran
successfully: ~30K electricity demand records, ~253K generation
mix records, and 233 commodity price records across all 7 regions.
2026-02-11 05:45:26 -05:00
Joey Eamigh
f05dc6fa68
final QA: code review fixes
Remove dead code per project rules:
- Delete unused ErrorBoundary component (never imported)
- Delete unused AmbientGlow component (never imported)
- Remove unused eiaPaginationSchema export
- Remove unused SuperJSON re-export
2026-02-11 05:40:39 -05:00
Joey Eamigh
7d20d4b484
phase 5: polish & real-time candy — ticker tape, GPU calculator, grid gauges, pulsing markers, toasts, auto-refresh, loading states, responsive nav 2026-02-11 05:33:23 -05:00
Joey Eamigh
2dddbe78cb
phase 4: charts & analysis — price trends, demand analysis, generation mix, commodity overlay, correlation view 2026-02-11 05:21:25 -05:00
Joey Eamigh
c33257092d
phase 3: dashboard UI — layout, map, markers, region overlays, interactions 2026-02-11 04:57:58 -05:00
Joey Eamigh
64f7099603
phase 2: data layer — EIA/FRED clients, server actions, ingestion routes, backfill 2026-02-11 04:41:57 -05:00
Joey Eamigh
6d7d2d966b
phase 1: foundation — next.js 16 scaffold, prisma schema, docker compose, seed data 2026-02-11 04:21:20 -05:00
Joey Eamigh
1e9b287036
add ralph loop plugin 2026-02-11 04:01:16 -05:00
Joey Eamigh
efb1eddf7a
final spec. 2026-02-11 03:57:23 -05:00
Joey Eamigh
7437f1b96b
more spec work 2026-02-11 03:39:59 -05:00
Joey Eamigh
40ef943d24
initial setup commit 2026-02-11 03:33:58 -05:00