aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org43
1 files changed, 37 insertions, 6 deletions
diff --git a/todo.org b/todo.org
index dafc5a3..259ed6f 100644
--- a/todo.org
+++ b/todo.org
@@ -198,13 +198,11 @@ From the 2026-07-04 roam capture. The waybar collapse mechanism (click the trian
:END:
Follow-up from the 2026-07-04 net-panel hardening speedrun (Craig's cj question on the no-WiFi item). The shipped no-wifi-hardware verdict covers "no adapter at all." This tier covers "adapter present but the driver is wedged": read-only health signals — =ip link= (device present but no-carrier / down), =dmesg= / =journalctl -k= for firmware-load failures, =rfkill= for a hard block, =modinfo= / =lsmod= for the driver module — classified before a generic reset. Remedy actions: a privileged =modprobe -r <mod> && modprobe <mod>= reload of the wifi driver, and a firmware-package pointer when the failure is a missing/failed firmware load. Dotfiles net-package work (handled per the archsetup-owns-dotfiles rule). Design pass first to decide whether it's worth a repair tier vs a needs-user-action pointer.
-** TODO [#B] Timer GTK panel :feature:waybar:
-:PROPERTIES:
-:LAST_REVIEWED: 2026-07-02
-:END:
-Initial spec written 2026-07-02: [[file:docs/specs/2026-07-02-timer-panel-spec.org]] (DRAFT — four decisions await Craig's review before build; net-panel Blueprint/GTK4 stack, wtimer stays the state owner).
+** DONE [#B] Timer GTK panel :feature:waybar:
+CLOSED: [2026-07-05 Sun]
+Built and shipped to dotfiles 2026-07-05 in a no-approvals speedrun (4 commits =1f4f270=..=78d3cbb=): wtimer gained watch/lap/save; a new =timer/= package holds a GTK-free PanelModel (62 tests) and the GTK instrument-console panel; the bar's =custom/timer= now opens the panel and the fuzzel creation flow retired. Spec: [[file:docs/specs/2026-07-02-timer-panel-spec.org]] (IMPLEMENTED). Code-complete; live GTK verification filed under Manual testing and validation below.
-From Craig's roam capture 2026-07-02: give the timer a GTK UI/UX like the network panel.
+From Craig's roam capture 2026-07-02: give the timer a GTK UI/UX like the network panel. Scope expanded via a later cj comment (queue/output-wall auto-sorted by fire time, stopwatch lap/stop + saveable runs, 5/25 configurable defaults, up to 10 timers, widget-gallery elements) — folded into the spec's Build scope and shipped.
** TODO [#B] Desktop-settings dropdown panel :waybar:
:PROPERTIES:
@@ -609,6 +607,39 @@ Parse yay errors and provide specific, actionable fixes instead of generic error
Enhance existing indicators to show what's happening in real-time
** TODO Manual testing and validation
+*** Timer panel: apply the new package + configs, then reboot (precondition for the timer tests)
+What we're verifying: the new =timer/= package, the =timer= / =timer-panel= bin shims, and the waybar + hyprland edits are live. New files need a restow (a plain =git pull= doesn't symlink them). Quit Hyprland or run from a TTY.
+#+begin_src sh :results output
+cd ~/.dotfiles && git pull && make restow hyprland
+#+end_src
+Then reboot (picks up the float rule, the 2px border, the Super+P/Shift+P + Control_R keybinds, and the bar rewire).
+*** Timer panel opens from the bar, fuzzel retired
+What we're verifying: the bar module opens the GTK panel, not the old fuzzel menu.
+- Click the timer module on the bar.
+Expected: the instrument-console timer panel opens floating, top-right; the old fuzzel type-menu does not appear.
+- Press q or Escape.
+Expected: the panel closes.
+*** Create a timer (preset + freeform validation)
+- Open the panel, pick the timer type, click the 5m chip, click +.
+Expected: a 5:00 timer appears in the queue and counts down live.
+- Type a bad value (e.g. "xyz") in the freeform entry.
+Expected: an inline reject reason shows and + is blocked; a valid value (e.g. "25m") adds on +.
+*** Queue auto-sorts by fire time
+- Add a 25m timer, then a 5m timer, then an alarm a few minutes out.
+Expected: the queue orders soonest-first (5m above 25m; the alarm placed by its fire time).
+*** Per-item controls: pause / cancel / promote
+- On a running timer: pause then resume; cancel; click the row to promote.
+Expected: pause freezes the value and resume continues; cancel removes it; promote makes it the bar's primary glyph.
+*** Stopwatch lap / stop / save
+- Add a stopwatch, hit Lap two or three times (name one lap via the popover), then Stop.
+Expected: laps record; Stop saves the run. Then:
+#+begin_src sh :results output
+cat ~/org/stopwatch-runs.org
+#+end_src
+Expected: an org heading for the run with a lap table (split / cumulative / optional name).
+*** 10-item cap + live countdown
+- Queue items until 10 exist.
+Expected: + disables with a reason at 10; running countdowns advance live in the panel (the wtimer watch subscription).
*** Audio panel: apply the new shims + configs (precondition for the tests below)
What we're verifying: the new =audio=/=audio-panel=/=waybar-audio= bin shims and the hyprland.conf + waybar config edits are live. New files need a restow (a plain =git pull= doesn't symlink them). Quit Hyprland or run from a TTY — restowing live Hyprland writes a stub hyprland.conf.
#+begin_src sh :results output