Files
LlamaCasty/TASKS/task-55-disk-hygiene.md
T

1.8 KiB
Raw Blame History

TASK 55 — Disk hygiene: log rotation + low-disk guard (queued 2026-10-09)

Catalog: TASKS.md — status and requirements live here.

Why (creator ask, 2026-10-09): "we need some sort of log-rotation so that we don't inadvertently fill up a user's drive." A free app that quietly eats disk space is a support ticket and a trust breach.

What's known (from the 2026-10-09 privacy-policy code research — re-verify before building):

  • Helpers/AppLog.cs appends to %APPDATA%\ytLlive\startup.log, a timestamped line per entry, with no size cap or rotation found (not specifically searched — confirm first).
  • Services/Encoder/FfmpegEncoder.cs (~:371) logs every non-progress ffmpeg stderr line (≤400 chars each) — the main growth source over long streams.
  • Default alert clip is written to %TEMP%\ytLive-alert-<id>.mp4 (ViewModels/MainViewModel.Chat.cs ~:106) — confirm whether it's ever deleted.
  • Recordings (.mp4, default Downloads) are user-directed, but nothing checks free space.

Slices (one integration test each, in order):

  1. ☐ Size-capped log rotation — when startup.log passes a cap (~5 MB), roll it to startup.1.log (keep 1–2 old files), start fresh. Test: write past the cap, assert the roll and the bounded total. Standard pattern (NLog/Serilog fileSizeLimitBytes + retainedFileCountLimit) — cite in the commit.
  2. ☐ Temp alert clip cleanup — delete the %TEMP% alert clip on app close (and sweep stale ones at startup). Test: create, close, assert gone.
  3. ☐ Low-disk guard for recordings — check free space on the record folder's drive before Record starts, and warn (toast) when it runs low mid-recording. Thresholds TBD with the creator.

Design decisions: keep AppLog's call surface unchanged — rotation lives inside it.