Files
LlamaCasty/HANDOFF.md
T

41 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.