From 616ef71521337ee52785235eecedd51026d1befd Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 2 Jul 2026 22:49:57 -0400 Subject: chore(todo): close the net-diagnostics narrate task, shipped in dotfiles --- todo.org | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/todo.org b/todo.org index b970792..e16f626 100644 --- a/todo.org +++ b/todo.org @@ -21,11 +21,14 @@ The vocabulary is open — topic tags are coined as needed — so these are conv - *Effort / autonomy*: =:quick:= a spare-moment fix (minutes, not a sitting); =:solo:= Claude can carry it end to end — there's a build path, a test path, and no upfront decision needed (a leftover manual spot-check doesn't disqualify it). - *Topic / area* (open): the subsystem a task touches — e.g. =:hyprland:= =:waybar:= =:mpd:= =:music:= =:network:= =:tooling:= =:llm:= =:eask:= =:pocketbook:= =:cmail:=. Coin a new one when it aids filtering. * Archsetup Open Work -** TODO [#B] Net diagnostics: narrate every step :feature:network:solo: +** DONE [#B] Net diagnostics: narrate every step :feature:network:solo: +CLOSED: [2026-07-02 Thu] :PROPERTIES: :LAST_REVIEWED: 2026-07-02 :END: -Craig's live UX feedback (roam inbox, 2026-07-02, from a real net doctor run on hotel wifi): the output isn't enough to know what's being tested, why, and whether it passed — all three should be reported for every diagnostic validation or data-gathering step, in =net doctor= and =net diagnose= alike. Today a failing run prints only the verdict, the fix pointer, and the failing rows; the passing steps and the probe sequence are invisible. Code lives in ~/.dotfiles (=net/src/net/diag.py= and friends). Sample from the run that prompted this: +Shipped (dotfiles =7772427=): every diagnose step id carries a one-line narration (what it tests and why) in a viewmodel table, and both human renderers print every step — status, title, narration, evidence with timing, and the fix pointer on fail/warn — in =net doctor= and =net diagnose= alike. Bare =net diagnose= now prints the narrated report (was raw JSON; =--json= keeps the machine envelope; =net-fix= already used =--json= explicitly, the panel calls the engine in-process). A completeness test walks diag.py's step ids against the narration table so a new step can't land unnarrated. 470 net tests / 45 suites green; verified live on velox hotel wifi — both commands narrate the full probe sequence. Ratio picks it up with its queued dotfiles pull (source-imported, no restow-only step). + +Original ask (roam inbox, 2026-07-02, from a real net doctor run on hotel wifi): the output isn't enough to know what's being tested, why, and whether it passed — a failing run printed only the verdict, the fix pointer, and the failing rows: #+begin_example % net doctor -- cgit v1.2.3