41 lines
2.3 KiB
Markdown
41 lines
2.3 KiB
Markdown
# 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.
|