fix(lex): drop periodic sync poll, drive sync from visibility events
Lex was running a 5-minute setInterval that ran whether or not the home
window was visible, generating spammy '[atproto] Token refresh failed' and
'[lex] Failed to check repo rev' errors when the user wasn't actively in
Lex. The home tile is resident: true, so the script keeps running after
the window is hidden.
Replace the periodic loop with visibility-driven syncs:
- syncPoll() now runs once on tile init (if authenticated), once on
re-authentication, and on visibilitychange / window focus events
(debounced to one sync per minute).
- Drop startSyncPoll / stopSyncPoll helpers and the syncIntervalId state.
- Drop the 30-second updateSyncIndicator setInterval — syncPoll already
updates the indicator after each successful sync, which is when its
value changes.
User-driven sync paths (panel switches, refresh button) call syncPoll
directly and bypass the visibility debounce.