From c63a0626d3564c324f57cbbbb9eac340690dd830 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 24 Jul 2026 12:27:28 -0500 Subject: docs(todo): record the three post-review findings as closed --- todo.org | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/todo.org b/todo.org index 4deca17..c45cc60 100644 --- a/todo.org +++ b/todo.org @@ -66,7 +66,9 @@ THREE PATTERNS WORTH MORE THAN THE INDIVIDUAL FIXES: AND ONE FINDING WAS DISPROVED OUTRIGHT: round 1's =a57c443= claimed ffmpeg drains the read loop so only the first track is processed. Measured under strace and driven end to end with real ffmpeg (three runs of three, four 120s mp3s), the loop never truncates. The hazard is real and =-nostdin= is right; the symptom was reasoned from shellcheck SC2095 and never run. Corrected in =a30741a=, along with the OpenVPN autoconnect claim and the "four consumers" undercount. -STILL OPEN, deliberately: sweeping thumbnails per-readable-source instead of all-or-nothing (deferring is safe but a permanently-missing source defers forever and the cache grows — the tick now says so on stderr rather than being silent); the =noop= branch of =_restore_dot= still reports "DNS-over-TLS restored" on a machine where DoT was never configured; =_disable_dot= checks its move but not its restart. None is destructive; each is its own task. +ALL THREE NOW CLOSED, in dotfiles =c7cb40d= (pushed). =_restore_dot='s =noop= split into =already-on= and =not-managed=, so the step stops claiming a restore that never happened. =_disable_dot= checks its restart as well as its move, since moving the drop-in aside does nothing until resolved reloads. + +The thumbnail one could not be built as described, and that is worth recording. The cache name is a SHA-1 of realpath plus mtime, so no filename says which source it came from; per-source sweeping would mean changing the key format and invalidating every cached thumbnail. Bounding the growth gets the same result for less: a deferred sweep now trims to a 500-file ceiling, oldest first, because eviction is safe exactly where sweeping is not (an evicted thumbnail is rebuilt on the next warm pass, costing one decode and never a file). WHEN A FIX CANNOT BE BUILT AS SPECIFIED, SAY SO AND SOLVE THE ACTUAL HAZARD — the hazard here was unbounded growth, not imprecise attribution. ** DONE [#D] Repair tiers call an unverifiable service restart a failed one :bug:network:bluetooth:solo: CLOSED: [2026-07-24 Fri] -- cgit v1.2.3