The prior handoff claimed the strip-tile/on-air unit was uncommitted and the pinned-chat unit was 'not mine - do NOT commit'. Reality: both are committed (8e1d6f4,931ab46) and origin/main is level with HEAD (0 ahead). Corrected to match the code and recorded the true next step (webcam per-element composite timing measurement). Removed the stray Assets/llamacasty-text-nobg-2.png~ backup. (Docs: handoff)
47 lines
3.2 KiB
Markdown
47 lines
3.2 KiB
Markdown
# 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 "<file1>" "<file2>" ...` (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`.
|