# HANDOFF — 2026-10-14 (clean tree; all units committed AND pushed) ## At a glance - **Branch** main, tracking `origin/main`. **HEAD = `origin/main` = `931ab46`** — 0 ahead, 0 behind. Everything below is pushed; nothing is local-only. - Working tree is **clean** (the stray `Assets/llamacasty-text-nobg-2.png~` backup was deleted 2026-10-14). ## Recent units (all committed + pushed) - `931ab46` — pinned chat: `ChatMessage.IsPinned`, `MainViewModel.PinnedChatMessage` + Pin/Clear commands (`Helpers/RelayCommandGeneric.cs`), LeftPanel pinned banner via `NotNullToVis`. Plus brand wordmark assets. (This was previously mislabeled in the old handoff as "not mine — do NOT commit"; it is committed.) - `8e1d6f4` — strip tile artwork + on-air indicator (per-scene `Scene.ThumbnailAssetId`, shared `OnAirImageAssetId`, PreviewPane green rect removed, tile labels FontSize 20, Asset-pruner keep-set fix). 427 pass, 0 warnings. - `06f88f4` — scene strip renders in canonical F1–F5 order (`ReorderScenesToCanonical`). - `63bf844` — desktop lock: `ShowActivated = !FullscreenGameRunningNow` + `FullScreenDetectorOverride`. ## Next step - **Webcam cadence work** (creator-queued 2026-10-05; see TASKS.md → "Webcam cadence → resolution"). **ACTUAL NEXT UNIT: per-element composite timing + a scene dump at pump start.** Measurement only — no fix until it names which of the 6 elements eats ~140ms. Needs a creator recording/session to read. The compositor manages **6.8 composites/s at ~141ms** and the file is **88.7% duplicate frames** — that is the judder; the camera itself delivers 30.0/s clean. ## Also still open (operational) - **Vertical-format regression (STALE, not fixed):** 1080p60-vertical selection no longer shrinks the capture border in the preview. Mechanism mapped in `Controls/PreviewPane.xaml:319-322` (crop Rectangle bound to `OutputRectX/Y/W/H` + `IsOutputCropped`, driven by `MainViewModel.Streaming.cs` `ApplyStreamQuality`; `DimRects` in `MainViewModel.cs:91-94`). Root cause unknown — paused. - ⛔ Sudo password rotation pending (user; then update both password lines in `CREDENTIALS.md`). - TASK 56 secret scan before `gramps/LlamaCasty` goes public. - TASK 55 disk hygiene queued (`startup.log` uncapped). ## Tests - Full suite **427 passed / 0 failed / 0 skipped / 0 warnings** (as of `8e1d6f4`). Known env flakes: `Mix_HonorsProviderGains…` (fails while system audio plays), `RealMouseDrag…` (needs an idle desktop), `Round_Clip_Corner…` (grab/geometry under active mouse). The verify gate whitelists only the latter two — `RealMouseDrag…` failing mid-session needs one re-run when the desktop idles. - Pre-commit gate: `./scripts/verify.sh "" "" ...` (clean build + full suite + scope check). ## Secrets / paths (do not re-hunt) - Layout DB: `%APPDATA%\ytLlive\ytLlive.db` (SQLite, full-rewrite per save). Auth: `%APPDATA%\ytLlive\ytLlive.auth` (DPAPI). Startup log: `%APPDATA%\ytLlive\startup.log`. - LAN credentials: `CREDENTIALS.md` (gitignored). Google Cloud OAuth project number `198374416003`, owned by `llamachile.shop@gmail.com` — verify at `https://console.cloud.google.com/apis/credentials?project=198374416003`.