diff --git a/HANDOFF.md b/HANDOFF.md index 6783cba..b99f33a 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -70,6 +70,13 @@ `ytLive.Tests/BorderColorPickerTests.cs` (model + panel + the **real widget**). The TASK 60 guard (`BorderColorPaletteTests`) was updated to guard the new wiring (the drop-down is bound to the palette; no second list of colours anywhere). +- **TASK 55 slice 1 — the log is capped (shipped 2026-10-22).** `startup.log` was uncapped (23 MB + and growing every few seconds — ffmpeg logs every stderr line). Now it rolls to `startup.1.log` + at 5 MB (one rolled copy kept), so the growth is bounded. The policy is + `Helpers/LogRotation.cs` (a pure function over a path — `AppLog`'s 156-call-site surface is + unchanged; the seams are two `internal` properties). Guard: + `ytLive.Tests/AppLogRotationTests.cs`. Slices 2 (temp alert-clip cleanup) and 3 (low-disk + guard before recording) are still open. - **The previous session (HA lights) produced NO ytLive code** — it was spent on the creator's Home Assistant light alert system (off-repo, `192.168.50.145`). See `MyMistakes.md` → 2026-10-21: the plan was one tweak to a verified-working script; the script was rewritten twice, the alert path broke, and @@ -258,13 +265,15 @@ Zombie entities deleted from the registry: `script.leak_strobe`, `script.doorbel `Helpers/OAuthCredentials.cs` were never tracked. ⚠️ the repo was **already public** (anonymous GET → 200, API `private = false`) when the scan ran — the gate came late, but nothing leaked. Method + verdict: `TASKS/task-56-secret-scan.md`. -- TASK 55 disk hygiene (`startup.log` uncapped — 23MB and growing every 5s). +- TASK 55 disk hygiene: slice 1 (log rotation) **shipped 2026-10-22** — see the At-a-glance bullet. + Slices 2 (temp alert-clip cleanup) + 3 (low-disk guard before recording) are open. (The GOG + Galaxy `cef.log` at 2.7 GB is NOT ours.) ## Tests -- Last full run: **435/435 passed, 0 warnings** (2026-10-21, this session — after TASK 63's - `BorderColorPickerTests`, which replaced TASK 62's `BorderColorNameTests`; the run before was also - 435/435 after TASK 61+62, and the runs before that were 433/433 after TASK 60, 432/432 after - TASK 59 and 431/431 after TASK 58). The one failure seen earlier in the +- Last full run: **436/436 passed, 0 warnings** (2026-10-22 — after TASK 55 slice 1's + `AppLogRotationTests`; the run before was 435/435 after TASK 63, and the runs before that were + 435/435 after TASK 61+62, 433/433 after TASK 60, 432/432 after TASK 59 and 431/431 after + TASK 58). The one failure seen earlier in the session was `LayerReorderPersistenceTests.RealMouseDrag_OnTheLayerList_PersistsTheReorder`, which **passes in isolation** (re-run: 3/3) — the known real-mouse flake, not a regression. - Known flaky-by-environment (all pass in isolation): `AudioPipelineTests.Mix_HonorsProviderGains…`, @@ -279,7 +288,8 @@ Zombie entities deleted from the registry: `script.leak_strobe`, `script.doorbel ## 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` (23MB). + `%APPDATA%\ytLlive\ytLlive.auth` (DPAPI). Startup log: `%APPDATA%\ytLlive\startup.log` + (23MB — now CAPPED at 5 MB with one rolled copy, TASK 55). - Recordings land in `C:\Users\gramp\Downloads\recordings\` (`ty--