aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org46
1 files changed, 41 insertions, 5 deletions
diff --git a/todo.org b/todo.org
index d9a8eae..f07efeb 100644
--- a/todo.org
+++ b/todo.org
@@ -412,7 +412,8 @@ failures, so a regression here is uniquely undetectable. P2 = [#B].
:solo: — the surface is one script and its suite, the refactor is
behaviour-preserving, and the existing 58 tests plus a mutation battery are
the objective check that it stayed so.
-** TODO [#A] powerprofilesctl crashes on a loop since ppd was masked :bug:velox:dotfiles:
+** DONE [#A] powerprofilesctl crashes on a loop since ppd was masked :bug:velox:dotfiles:
+CLOSED: [2026-08-21 Fri]
:PROPERTIES:
:CREATED: [2026-08-17 Mon]
:LAST_REVIEWED: 2026-08-17
@@ -468,6 +469,8 @@ Grade unchanged. The matrix inputs did not move: the severity is what happens
while the machine is in that state, and the frequency row is every laptop
carrying the TLP fix. A quiet interval since a reboot is not a frequency
change.
+
+Fixed in dotfiles =e89d9db=. The caller was =waybar.py=, using =panel.read_state()= (the full snapshot of every control) to read one boolean, four bar modules deep on a 2-second interval. Two fixes, each needed alone: =panel.read_control()= reads a single control's backing, and =power.masked()= checks the mask symlink before shelling out. Verified with a logging stub: full snapshot unmasked calls powerprofilesctl once, masked calls it zero, and a waybar poll calls it zero even unmasked.
** TODO [#B] velox's systemd --user spins at 96% and cannot resolve unit files :bug:velox:
:PROPERTIES:
:CREATED: [2026-08-17 Mon]
@@ -526,7 +529,8 @@ instruction rather than by a fresh judgment.
Reproducing it deliberately is the open question, and it is not obviously
worth doing — it costs a wedged session to learn something the crash-loop fix
may make moot.
-** TODO [#A] The installer clones my two working repos shallow and read-only :bug:velox:
+** DONE [#A] The installer clones my two working repos shallow and read-only :bug:velox:
+CLOSED: [2026-08-21 Fri]
:PROPERTIES:
:CREATED: [2026-08-17 Mon]
:LAST_REVIEWED: 2026-08-17
@@ -605,6 +609,8 @@ repair.
*** 2026-08-19 Wed @ 23:05:00 -0700 Settled the remote-URL half and netted it
See the decision recorded above. The ISO half is a note on the secrets/ISO
task; the net is =post-rebuild-check= check 8, which ships now.
+
+Both halves resolved. Depth: =a028aa5= drops =--depth 1= from both user-repo clones, with 8 tests including one asserting the AUR build clones stay shallow. Remote URL: decided 2026-08-19 (see above) — the personal ISO carries the ssh form, and =post-rebuild-check= check 8 (=87ff0b7=) flags any working repo still on the read-only endpoint, covering the install paths the ISO cannot reach.
** TODO [#B] post-rebuild-check needs a reference-host mode :feature:velox:solo:
:PROPERTIES:
:CREATED: [2026-08-17 Mon]
@@ -638,6 +644,27 @@ close. Most-users-frequently x Major = P2 = [#B].
:solo: — the checks exist, the ssh path is proven (the 2026-08-17 session ran
exactly this comparison by hand), and correctness is verifiable locally by
diffing the two reports.
+*** 2026-08-21 Fri @ 07:10:00 -0700 The premise moved: velox now reports 1 finding, not 8
+Re-scope before building. The 1:7 ratio this task argues from is gone, and two
+of the three things it cites as noise are fixed at the source rather than
+filtered.
+
+=87ff0b7= gave check 2 a machine-local expected-disabled list, so the four unit
+findings are declared intent rather than noise, and an entry whose unit turns
+out to be enabled is itself reported so the list cannot rot. =3fbf3e0= dropped
+=.claude= from check 4's expected set, since the gitignore sweep writes that
+line into every project whether or not one exists. velox went 8 findings to 1.
+
+So the open question is no longer "how do we cut the noise" but whether a live
+reference-host diff still earns its place against a static declaration of
+intent. They are different tools: the list is offline, explicit, and states
+what a machine means; the diff is automatic and catches drift nobody declared.
+The reference-host comparison is still what *found* all of this, twice, by
+hand. That is an argument for it and not against.
+
+Worth knowing this task already contained the whole 8-to-1 analysis when it was
+filed 2026-08-17, and a session on 2026-08-20 re-derived it from scratch without
+reading it. Not :solo: any more — the design call above is Craig's.
** TODO [#C] screen-lock test suite red on ratio :bug:test:dotfiles:
:PROPERTIES:
:CREATED: [2026-08-13 Thu]
@@ -1128,7 +1155,8 @@ Not =:quick:= despite being small: four pieces with tests is a sitting rather th
From the roam inbox (Craig, claimed 2026-07-23): the wallpaper channel switches on sunrise/sunset today (the sun-pair mode, =settings/src/settings/wallpaper.py=, location read live via whereami with a state.json cache). Add a timed-schedule mode as an alternative: fixed clock times drive the transitions rather than the solar calc.
Not :solo: — the capture itself flags the missing inputs ("we'll need to know the transition times, and how many of them there are"). The count and the times are a design decision Craig owes: is it a two-image day/night flip at fixed hours, an N-way ring across the day, per-image dwell vs shared interval? The =set= channel already does fixed-interval cycling through a set, so the new part is specifically clock-anchored transition points, not just "a timer". Ask for the schedule shape at pickup, then build against the existing wallpaper.apply presenter vocabulary.
-** TODO [#D] Worldclock tooltip blanks on one bad timezone row :bug:dotfiles:waybar:quick:solo:
+** DONE [#D] Worldclock tooltip blanks on one bad timezone row :bug:dotfiles:waybar:quick:solo:
+CLOSED: [2026-08-21 Fri]
:PROPERTIES:
:LAST_REVIEWED: 2026-07-25
:END:
@@ -1136,7 +1164,10 @@ Found by sentry (2026-07-25), verified by exercising. =hyprland/.local/bin/wayba
Repro: a conf with =America/Chicago|Home=, =Not/AZone|Bad=, =Europe/London|London= renders =tooltip: ""= (Home and London gone too).
Grade: minor severity (one module's tooltip blanks, no data loss) x rare edge case (a malformed conf row) = P4 = [#D].
Fix: wrap the per-row =ZoneInfo=/=datetime= in a try/except and =continue=, so a typo drops only that row and the valid zones still render. Solo + quick: the script already has an env-override test harness (=WAYBAR_TIME_EPOCH=, =WAYBAR_WORLDCLOCK_CONF=), so a red-first test is cheap.
-** TODO [#C] obsbot-wb-guard polls forever on machines with no OBSBOT :bug:dotfiles:quick:solo:
+
+Fixed in dotfiles =8f692f5=. The per-row =ZoneInfo= is guarded, so a malformed row drops itself and the valid zones still render. Five cases, including a bad row first — the ordering that looks least like one typo and most like the module being broken. Caught the broad =except Exception= rather than =ZoneInfoNotFoundError=, because the row also parses floats and calls strftime and the contract wanted is "a bad row costs only itself".
+** DONE [#C] obsbot-wb-guard polls forever on machines with no OBSBOT :bug:dotfiles:quick:solo:
+CLOSED: [2026-08-21 Fri]
:PROPERTIES:
:LAST_REVIEWED: 2026-08-16
:END:
@@ -1151,6 +1182,8 @@ Careful when disabling by hand in the meantime: =systemctl --user disable= on a
Grade: minor severity (wasted wakeups and battery, no data loss, no failure) x every boot on any machine without the camera = P3 = [#C].
Solo: buildable here (archsetup owns dotfiles end-to-end), verifiable by the agent (assert the unit is skipped on velox and still active on ratio), and no design call left open.
+
+Fixed in dotfiles =566dd14=. =ConditionPathExists= on the camera node, so systemd skips the unit where the camera is absent. velox is now =enabled= like ratio and reports =ConditionResult=no=; the stow symlink is untouched. Found while doing it: ratio has a Logitech BRIO and no OBSBOT on USB at all, so the 2-second poll was pointless on the desktop too, not merely costing laptop battery. A test asserts the unit's condition path and the script's =OBSBOT_WB_DEVICE= default stay equal, since drift there is invisible in both directions.
** TODO [#C] Auto-dim status forgotten on layout change :bug:dotfiles:
:PROPERTIES:
:LAST_REVIEWED: 2026-07-25
@@ -1171,7 +1204,8 @@ From the roam inbox (Craig, claimed 2026-07-24): the network, bt, maint, and aud
:LAST_REVIEWED: 2026-08-02
:END:
From the roam inbox (Craig, claimed 2026-07-24): panel labels look cut off; a few more pixels of space fixes it. He named the audio and bt panels, but his "before" capture is the networking panel (=~/pictures/screenshots/2026-07-23_202419.png=; "after" resizing =~/pictures/screenshots/2026-07-23_202458.png=), so the whole panel family likely shares the tight spacing. Confirm which panels clip at pickup, then add the padding/width. Grade: cosmetic × every glance at the affected panels = P3 = [#C]. Solo — buildable (CSS/size tweak) and screenshot-verifiable, no design call once the clipping panels are identified.
-** TODO [#C] Spine face tests decay against the wall clock :bug:test:dotfiles:solo:
+** DONE [#C] Spine face tests decay against the wall clock :bug:test:dotfiles:solo:
+CLOSED: [2026-08-21 Fri]
:PROPERTIES:
:LAST_REVIEWED: 2026-08-02
:END:
@@ -1185,6 +1219,8 @@ Grade: minor severity (dev-facing only; no product behavior is wrong, the face i
Solo — mechanical, an existing convention to copy, and verifiable by running the suite plus re-running it under a faked clock to prove the determinism actually holds.
+
+Fixed in dotfiles =c96a216=. All thirteen bare calls now pass =JUL=. The task's "line 747" was stale (the deliberate =t0= sweep is at 893 and already passed its own ref, so it was never at risk), and the continuation-form call closes its arguments on the next line, which is why a naive grep counts fourteen. Added a guard that reads the file and fails with the offending line numbers, and verified it bites by stripping =JUL= from one call and confirming it went red naming that line.
** TODO [#C] Night-watch live telemetry :feature:maint:
:PROPERTIES:
:LAST_REVIEWED: 2026-08-02