1) full_status._iso_utc dostával z JSONB bundle stringy → AttributeError → 500
celého /status/full; nyní parsuje přes _parse_ts.
2) /plan/compare: NameError — 'comparison = _bundle_from_current(compare_raw)'
se nikdy nesestavilo (smazaný řádek), endpoint vždy 500.
3) fn_forecast_pv_slots_range_canonical_ab: PG 18 cachuje plány SQL funkcí →
generický plán 4.5 s / 607k buffers; set plan_cache_mode=force_custom_plan
→ 0.4 s / 34k (změřeno explain analyze na živé DB). Táhne /plan/current,
/plan/compare i rolling plánovač.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>