Replace the sample-data scaffold with real SQL, un-scoped across all
presses and scoped to one plant (PLANT_NAME env, default Cadolzburg).
- api/routes.py: press list from press_settings.presses; per-press
good/chips from active_orders + rejects; run/stop/idle by cycle
recency (cycles_new); stop note from downtimes + downtime_reasons;
on-way / in-oven / finished carts + nicht-verladen from
temper_tracking (live position derived IN SQL from planned times vs
NOW(); reprint rows excluded so carts never double-count). Thin
_fetch_* helpers (degrade to empty, never 500) + a pure _build_payload.
- Oven temperature omitted (no sensor feed): ovenTempC optional in the
type, °C chip hidden in OvenBand.vue, coerced in ProductionLine.vue.
- Rebuilt dist/.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>