6 Commits

Author SHA1 Message Date
Joey Eamigh
564d212148
phase 6: post-review enhancements — data, map UX, charts, navigation
Data:
- Expand datacenter inventory from 38 to 108 facilities
- Add 14 North Carolina datacenters (Apple, Google, AWS, Microsoft, etc.)
- Add missing operators (Cloudflare, Switch, Vantage, Apple, Aligned, Iron Mountain)
- Fill geographic gaps (Southeast, Northwest, Midwest)

Map UX:
- Dark mode via ColorScheme.DARK, hide all default UI controls
- Center on Chapel Hill, NC (lat 35.91, lng -79.06) at zoom 6
- New map legend component (price gradient, marker scale, pulse/glow key)
- Floating region price labels via AdvancedMarker at region centroids
- Tune breathing animation: 8s period, only stressed regions, 5 FPS
- Enhanced markers: capacity labels on 200+ MW, status-based styling

Charts:
- Fix generation chart timestamp duplication (use epoch ms dataKey)
- Fix correlation chart black-on-black axis labels
- Context-aware tick formatting (time-only for 24h, date for longer ranges)

GPU Calculator:
- Default to B200 (1,000W), add R200 Rubin (1,800W)

Navigation:
- Granular Suspense boundaries on all 5 pages
- Extract data-fetching into async Server Components per section
- Page shells render instantly, sections stream in independently
2026-02-11 14:44:46 -05:00
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
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
c33257092d
phase 3: dashboard UI — layout, map, markers, region overlays, interactions 2026-02-11 04:57:58 -05:00