Highlights
- Response-schema enforcement, a prose ban and token budgeting to eliminate MAX_TOKENS truncation.
- Domain knowledge as a hard gate: readings must be exactly 8 digits, enforced in the backend rather than merely prompted.
- json-repair salvage, latency optimisation (20 s → fast), systemd service and nginx hardening.