89d8b4b5a0
Flutter client posts FlutterTimezone.getLocalTimezone() to PUT /api/me/timezone on every setSession (login / register success) and on every AuthController.build (app cold-start with valid session), when the locally-stored tz_last_sent_at is >7 days old. Cadence tracked in flutter_secure_storage so it survives app restarts. Failures swallowed: the server's UTC default + last-known value keep the scheduler functioning until the next attempt. Completes the client side of #392 Half B (per-user timezone scheduling). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>