TheoChat 1.2.0
v1.2.0
Moderation sync:
- All YouTube mod actions reflected in Twitch: Remove, Timeout, Hide User, Blocked Words
- Reconciliation poll every 90s compares live state with YouTube API — catches any missed events
- MESSAGE_RETRACTED_EVENT (type 11) now handled alongside standard delete/tombstone types
Live detection:
- Background script shows red LIVE badge on toolbar icon when streaming
- Browser notifications on stream start/end
- Connects during YouTube waiting room (upcoming), not just live broadcast
- AutoHeal fallback with exponential backoff (5min → 60min max) — zero quota when idle
- PubSub subscription retries every 5 min if initial attempt fails
- gRPC auto-reconnects on transient errors (5s retry)
Display:
- Custom YouTube channel emojis rendered as images (scraped from live_chat page, zero quota)
- Verified badge now rendered (gray checkmark)
- Username colors, avatars, Owner/Mod/Member/SuperChat badges
Reliability:
- Heartbeat watchdog — force reconnect after 90s silence
- Exponential backoff on WebSocket reconnect (3s → 30s max)
- Defensive error isolation — event handler failures cannot affect native Twitch chat
- Popup alert strip with manual RECONNECT button
Observability:
- /health returns quota usage, uptime, message counts
- /metrics returns full operational metrics (gated behind METRICS_TOKEN)
- Quota budget enforcement — reconcile auto-skips near daily ceiling
- Per-IP WebSocket connection cap (default 5)
Full Changelog: v1.0.0...v1.2.0