# HANDOFF — 2026-10-30 (scoreboard built to the polling policy; two wiring items left) ## State - Branch `main`. The audio dock is shipped and pushed. **The scoreboard is built** in ten units, local commits only: tallies (`Models/ScoreboardState`, session-scoped), lifecycle (`ScoreboardRecorder`: start clears, End freezes), layout (`Models/ScoreboardLayout`: coupled edges resolved at render time, shrink-then-wrap, never scroll), renderer (`Services/Compositor/ScoreboardRenderer`: plate + text colour + opacity + 14–24px, cached), tile selection (`Models/ScoreboardTiles`, opt-in, money per currency), the cached presenter, the layer itself (`SourceType.Scoreboard`, strip geometry, resolver case), the properties panel (eight fact switches + colours + plate + size, theme widgets only), the Analytics scope (`yt-analytics.readonly`, incremental, `HasAnalyticsScope`), and the polling policy (`Models/ScoreboardCadence`). - Fixed on the way: the chat feed now reaches the tallies (the recorder had no caller). ## Next action 1. **HTTP providers** behind the cadence policy: watch hours (`reports.query`, `metrics=estimatedMinutesWatched`) and subscriber count (`channels.list?mine=true&part=statistics`), both behind an interface with a fake for tests, plus the timer that calls `ScoreboardCadence.Due(...)` and writes the values into `ScoreboardTiles`. 2. **Goal-target inputs** in the properties panel (the tiles read `SubscriberGoal`/`WatchHourGoal` but nothing sets them yet). 3. **On-screen check** of the strip: one line at 24px, plate/opacity, and the edge swap against the social bar. ## Landmines - **Not every hex is a theme colour.** `BorderColorPalette` and the chat/socials config defaults are USER DATA — they keep their literals. On-stream graphics now come from `OutputPalette`, never from a literal or from app resources (the pump thread must not touch them). - A red settings control is a bug now — red means live/record. - Pre-existing: the **full test suite hangs** (WASAPI teardown). Per-class runs are the way. ## Pending - **Launch and eyeball**: fonts render (pack-URI resolution cannot be proven in the test host), the blue accent, blue-staged / red-live tiles, and mono telemetry. - Vertical-tier camera check; webcam-cadence take in the failing geometry.