diff options
Diffstat (limited to 'todo.org')
| -rw-r--r-- | todo.org | 46 |
1 files changed, 36 insertions, 10 deletions
@@ -55,6 +55,12 @@ Every module's hover tooltip should list its keyboard shortcut(s), for discovera ** TODO [#C] Smooth waybar expansion animation :waybar: The cluster expansion jumps instead of animating, and a few systray icons pop in one-by-one afterward, which reads as glitchy. Animate the expansion smoothly if waybar allows it — width transitions are limited, so feasibility is uncertain (hence [#C]). Origin: roam inbox capture. +** TODO [#C] Optional label on timer/alarm/stopwatch items :feature:waybar: +Let each wtimer item carry an optional short text label. The data model already supports it (=add_timer/add_alarm/add_stopwatch/add_pomodoro= all take =label=""=, and =_describe= shows =label or type=); the gap is the fuzzel-driven creation flow, which doesn't prompt for a label. Add the optional label prompt on create. Origin: roam inbox capture. + +** TODO [#C] Open meeting links in the browser instead of the Zoom app :feature: +Route Zoom (and similar) meeting links to the browser web client rather than launching the native Zoom app — e.g. firefox/chrome extensions, or a =zoommtg://= URL handler / desktop-file override that rewrites to the web-client URL. Decide the mechanism (extension vs handler) before building. Origin: roam inbox capture. + ** DONE [#C] Alarm tooltip shows time remaining, not alarm time :bug:waybar:quick: CLOSED: [2026-07-01 Wed] The =wtimer= alarm tooltip displays the countdown (time remaining) instead of the alarm's wall-clock fire time. For an alarm set to 2:00pm, the tooltip should name the target time, not "1h 23m left". Fix the tooltip rendering in =wtimer= (dotfiles repo). Origin: roam inbox capture. @@ -194,16 +200,36 @@ contract for what diagnose must detect and what the panel must say. - Missing speedtest backend — Detect: speedtest-go absent. Report: "Install speedtest-go to run a speed test." - Privileged op fails (helper missing / sudo declined) — Detect: helper exits non-zero or absent. Report: "Couldn't get admin rights for this repair — <install/fix the helper>." -*** TODO Sudo helper + NOPASSWD sudoers (gates everything; archsetup-installed) -Root-owned =/usr/local/bin/net-priv= (or similar), NOT stowed/user-writable, dispatching net's -fixed privileged verbs; narrow NOPASSWD sudoers scoped to that helper only. =repair.py= calls -=sudo net-priv <verb>=. Must also fix the latent bug it unblocks: the detached -=portal_restore_watch= runs with no tty and can't prompt, so today =_restore_dot= silently fails -when sudo creds aren't cached, leaving DNS unencrypted until a manual =net portal --restore=. -Separately reconcile where velox's DoT actually lives (currently -DNSOverTLS, no drop-in, so the -"drop DoT" step is a no-op there; =NET_DOT_CONF= overrides the path) — decide whether velox should -run DoT at all. -*** TODO Merged Diagnostics panel + nav restructure (Connections | Diagnostics | Performance) +*** 2026-07-01 Wed @ 13:02 -0400 net-priv helper landed (V2.1) +Craig's call: stowed (not root-owned), low security on locked-down single-user machines. +Shipped =net.priv= module + stowed =net-priv= bin (dotfiles =00aac1e=): a fixed 12-verb set +(rfkill/radio/mac-random/conn-up/net-off/net-on/restart-nm/dns-set/dns-revert/restart-resolved/ +dot-disable/dot-enable) with per-arg validation (uuid/iface/ipv4/resolved.conf.d-path, injection +rejected). =repair.py= now routes every privileged op through =priv.run(verb)= in-process instead +of scattered inline sudo — which also fixes the detached DoT-restore watcher (runs privileged ops +with no tty) and closes the gap where rfkill repair ran unprivileged. 244 net + 33 dotfiles suites +green. NO new sudoers needed: archsetup already grants =%<user> ALL=(ALL) NOPASSWD: ALL= +(archsetup:1089), so every build's primary user already runs net-priv's commands passwordless; +"replicate in archsetup" is already satisfied. net-priv rides =make stow hyprland=; hand-linked on +velox. The velox DoT-path reconcile (whether velox should run DoT at all) stays open — folded into +the deeper reconcile, low priority since the guard makes it a no-op. +*** 2026-07-01 Wed @ 14:05:47 -0400 Shipped V2.2 — merged Diagnostics panel + nav restructure, no terminals +Built the V2 panel (dotfiles =75ed825=, pushed): three top tabs Connections | +Diagnostics | Performance; Diagnostics merges the old Diagnose + Repair pages into a +sub-row (Diagnose | Get me online | Advanced) over a shared area that shows diagnose +rows AND streams repair progress in-panel. net-popup deleted entirely; repairs run on +a worker thread through net-priv (no tty). doctor grew an =on_step= callback so Get me +online streams each escalation step live. Connections groups Saved / Available now / +Wired with a golden group header and joins from a row (=join_plan= auth matrix + +=manage.join= one-step connect, secret to NM only); the Add modal became the hidden-network +affordance. Every diagnose/repair/speed run offers a Copy/Open redacted report +(=report.py=, MAC/IP scrubbed). Waybar visual contract applied (dark capsule, golden +border, monospace) via a CssProvider. =net-fix= opens the panel on Diagnostics instead of +a terminal; middle-click runs =net portal= directly. TDD: 34 new GTK-free tests (grouping, +join_plan, join, report, on_step, eventlog.tail); 278 net + 33 dotfiles suites green. +Live-verified: AT-SPI panel_smoke passes end-to-end + screenshots confirm both pages and +the visual contract. DAILY-DRIVER: waybar config + net-fix are stow symlinks (live on +disk); ratio needs =git pull= + waybar restart; velox waybar picks up on next restart. **** 2026-06-30 Tue @ 17:36 -0400 Dispositioned the 4th-review findings into the spec Codex's 9 fourth-review findings (8 accept, 1 modify) are folded into the spec's "V2 panel UX — the target design" section (cookie [40/40]): single nav target, |
