- timer.py: MySQL returns timezone-naive datetimes; wrap occurred_at
with _utc() before arithmetic against datetime.now(timezone.utc) to
avoid TypeError on compute_block_elapsed / compute_break_elapsed.
This was causing a 500 on GET /api/dashboard/{token} for any child
with an active session, preventing schedule templates from loading.
- children.js: after regenerateToken, also update activeChild so it
doesn't hold a stale tv_token reference. Also sync activeChild on
fetchChildren re-fetch so navigation after token regen picks up the
new token immediately.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.0 KiB
3.0 KiB