From f6b45c33fc04c1da460fb5c8fbaec1b2a50bfd8a Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Wed, 1 Jul 2026 22:50:30 -0400 Subject: docs(todo): file the network panel UI review findings --- todo.org | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'todo.org') diff --git a/todo.org b/todo.org index 82418e4..77f6a39 100644 --- a/todo.org +++ b/todo.org @@ -21,6 +21,54 @@ 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] Network panel UI — review findings :feature:waybar:network: +Full UI review 2026-07-01 (visual walk of every state + code pass over the view logic). Bugs first, then design awkwardness. Each child is independently shippable. + +*** TODO Saved profiles all claim "open" :bug: +Every out-of-range saved profile's subtitle reads "open · saved, out of range" — including WPA2 home networks (dupre, ORBI50). secondary_line falls back to "open" when security is unknown, and saved rows only carry a security field when the in-range scan merges one in. Severity: misinformation about security posture. Fix: omit the security bit when unknown, or fetch key-mgmt for saved rows. + +*** TODO Dialogs fall back to Adwaita blue :bug: +The suggested-action and entry-focus overrides are scoped to .net-panel, and the Add / password / SSID dialogs are separate windows without that class — so every dialog shows the stock blue button and blue focus ring, breaking the dupre visual contract exactly where the user types a password. Give the dialog windows the styling class (and the transparent-window treatment if needed). + +*** TODO List-load error strands the Loading overlay :bug: +When the initial connection listing fails, the error lands only in the small status line and the in-box "Loading…" stays up forever with both lists empty. The overlay should show the failure and offer a retry. + +*** TODO Rescan has no op-state guard :bug: +Nothing ever calls model.begin("rescan"), so can_rescan is always true — the guard is dead code and a double-click fires two overlapping scans. Wire rescan through the op state machine like every other operation. + +*** TODO Live-info age shows raw seconds :bug: +The active row reads "Internet: online, 445s ago". Humanize the age (45s, 7m, 2h) past the first minute. + +*** TODO VPN profiles wear the unknown-wifi glyph :bug: +signal_glyph only knows ethernet and wifi; a saved WireGuard/tun profile gets the "wifi outline" out-of-range icon. Add a VPN glyph for the vpn/tun/wireguard types. + +*** TODO Live poll runs regardless of visibility :bug: +The 1.5s status poll (nmcli + sysfs each tick) keeps running while the Diagnostics tab is showing and while dialogs are up, where the subtitle it feeds isn't visible. Pause it unless the Connections page is the visible child. Related: the active row's height changes when a live-info line appears or disappears (the captive-portal line), which makes the list jump mid-poll — reserve the line or fix the row height. + +*** TODO Add vs Add Hidden verb mismatch +Adjacent buttons with near-identical dialogs do different things: Add saves a profile without connecting; Add Hidden connects immediately. Either both should join, or the names should say what happens (Save Network vs Join Hidden), or the dialog gets a "connect now" toggle. Today the only hint is the tooltip. + +*** TODO Active wired connection is invisible in the default view +Available lists only in-range wifi, so on ethernet the active connection — and the live subtitle that rides it — exists only under Saved. Docked-with-ethernet is a daily state on ratio. Options: pin the active non-wifi connection above the Available list, or auto-open the view that holds the active row. + +*** TODO Disconnect wears the primary suggested-action style +The destructive-leaning action gets the same slate highlight as Connect. With the red=off convention elsewhere on the bar, Disconnect (and Forget) reads better as destructive-action terracotta. + +*** TODO Forgetting the active network doesn't warn about the drop +Selection defaults to the active row, so Forget targets the network you're on by default, and the confirm never says you'll be disconnected. Add "this will also disconnect you" (or preselect nothing) when the target is active. + +*** TODO Overall verdict is buried in the status line +After a diagnose, "Overall: ok/fail" lands in small dim text at the bottom-left, far from the output rows it summarizes. Deserves a colored verdict row or chip at the top or bottom of the output area. + +*** TODO Retire the status line; finish the in-context migration +The bottom status line is a catch-all: op progress, errors, copy confirmation, verdicts — all in small dim text. Loading/rescanning already moved into the boxes. Migrate the rest (button-local progress labels, in-box error rows, a toast for copy) and drop the line. Open question from 2026-07-01 session, deferred then. + +*** TODO Subtitle says "saved, out of range" inside the Saved tab +The "saved" half is redundant in the Saved view, and Available never shows not-in-range rows at all. Make the secondary line context-aware: Saved shows security + range, Available shows security + signal. + +*** TODO Diagnostics placeholder names a hidden button +The empty-state text says "Get Me Online, Speed Test, or Diagnose." but Diagnose now lives under Advanced and isn't visible. Update the copy (and keep it in sync with the button layout). + ** DONE [#B] Advanced repair buttons: half width, two per row :feature:waybar:network:quick: CLOSED: [2026-07-01 Wed] The wide Advanced buttons shrink the panel and leave the diagnostics output impossible to read. Make each half width, two to a row, and rename where needed to fit. Origin: roam inbox capture. -- cgit v1.2.3