aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-04 12:38:10 -0500
committerCraig Jennings <c@cjennings.net>2026-07-04 12:38:10 -0500
commit22101e1f1bc846885798b5815318a41110110a1c (patch)
treeab0b0656a990bbb14475fa3954102a4bec87f1df
parent16a53cdff389e2059fa2e3c20de98e8c0a18dcb6 (diff)
downloadarchsetup-22101e1f1bc846885798b5815318a41110110a1c.tar.gz
archsetup-22101e1f1bc846885798b5815318a41110110a1c.zip
docs(spec): sort formal specs into docs/specs/ with lifecycle status
Moved the seven formal specs from docs/design/ into docs/specs/, each stamped with a lifecycle status heading: four IMPLEMENTED (bluetooth, net-other-interfaces, audio, instrument-console), one CANCELLED (file-manager-swallow), two DRAFT (desktop-settings, timer). Rewrote the seven todo.org links to the new paths. The two -spec.org files without the spec spine (waybar-network-module, waybar-timer-module) stayed in docs/design/ as notes.
-rw-r--r--docs/specs/2026-07-02-bluetooth-panel-spec.org (renamed from docs/design/2026-07-02-bluetooth-panel-spec.org)6
-rw-r--r--docs/specs/2026-07-02-desktop-settings-panel-spec.org (renamed from docs/design/2026-07-02-desktop-settings-panel-spec.org)6
-rw-r--r--docs/specs/2026-07-02-file-manager-swallow-spec.org (renamed from docs/design/2026-07-02-file-manager-swallow-spec.org)6
-rw-r--r--docs/specs/2026-07-02-net-panel-other-interfaces-spec.org (renamed from docs/design/2026-07-02-net-panel-other-interfaces-spec.org)6
-rw-r--r--docs/specs/2026-07-02-timer-panel-spec.org (renamed from docs/design/2026-07-02-timer-panel-spec.org)6
-rw-r--r--docs/specs/2026-07-03-audio-panel-spec.org (renamed from docs/design/2026-07-03-audio-panel-spec.org)6
-rw-r--r--docs/specs/2026-07-03-instrument-console-panels-spec.org (renamed from docs/design/2026-07-03-instrument-console-panels-spec.org)6
-rw-r--r--todo.org14
8 files changed, 49 insertions, 7 deletions
diff --git a/docs/design/2026-07-02-bluetooth-panel-spec.org b/docs/specs/2026-07-02-bluetooth-panel-spec.org
index 121197a..f1b3ac1 100644
--- a/docs/design/2026-07-02-bluetooth-panel-spec.org
+++ b/docs/specs/2026-07-02-bluetooth-panel-spec.org
@@ -4,6 +4,12 @@
#+TODO: TODO | DONE
#+TODO: DRAFT READY DOING | IMPLEMENTED SUPERSEDED CANCELLED
+* IMPLEMENTED Bluetooth Panel — CLI-Driven, Net-Panel Kin
+:PROPERTIES:
+:ID: 8af6a76a-5665-4d20-9efd-ffdf7460c981
+:END:
+- 2026-07-04 Sat @ 12:36:56 -0500 — retrofitted by spec-sort; status set to IMPLEMENTED (reason: Shipped through phase 3; build task DONE and manual tests filed.)
+
* IMPLEMENTED Status
:PROPERTIES:
:ID: 1271a845-4463-4831-9902-990eda6b2265
diff --git a/docs/design/2026-07-02-desktop-settings-panel-spec.org b/docs/specs/2026-07-02-desktop-settings-panel-spec.org
index 8becf71..d147249 100644
--- a/docs/design/2026-07-02-desktop-settings-panel-spec.org
+++ b/docs/specs/2026-07-02-desktop-settings-panel-spec.org
@@ -4,6 +4,12 @@
#+TODO: TODO | DONE
#+TODO: DRAFT READY DOING | IMPLEMENTED SUPERSEDED CANCELLED
+* DRAFT Desktop-Settings Dropdown Panel
+:PROPERTIES:
+:ID: d6bb1e73-ec90-4327-85ee-bfa762da5bce
+:END:
+- 2026-07-04 Sat @ 12:36:56 -0500 — retrofitted by spec-sort; status set to DRAFT (evidence-based, human-confirmed)
+
* DRAFT Status
:PROPERTIES:
:ID: fb7eec22-a214-4568-82c4-903612f4832f
diff --git a/docs/design/2026-07-02-file-manager-swallow-spec.org b/docs/specs/2026-07-02-file-manager-swallow-spec.org
index 4c61be1..b898f11 100644
--- a/docs/design/2026-07-02-file-manager-swallow-spec.org
+++ b/docs/specs/2026-07-02-file-manager-swallow-spec.org
@@ -4,6 +4,12 @@
#+TODO: TODO | DONE
#+TODO: DRAFT READY DOING | IMPLEMENTED SUPERSEDED CANCELLED
+* CANCELLED File-Manager Swallow Pattern
+:PROPERTIES:
+:ID: 179a1cd2-7a02-4c44-a09d-685c5a154895
+:END:
+- 2026-07-04 Sat @ 12:36:56 -0500 — retrofitted by spec-sort; status set to CANCELLED (reason: Native swallow ruled out by test; reassigned to .emacs.d dirvish handling.)
+
* CANCELLED Status
:PROPERTIES:
:ID: d92e0074-f594-4e83-81a0-faf282e15ed0
diff --git a/docs/design/2026-07-02-net-panel-other-interfaces-spec.org b/docs/specs/2026-07-02-net-panel-other-interfaces-spec.org
index 6b0a72d..0d63feb 100644
--- a/docs/design/2026-07-02-net-panel-other-interfaces-spec.org
+++ b/docs/specs/2026-07-02-net-panel-other-interfaces-spec.org
@@ -4,6 +4,12 @@
#+TODO: TODO | DONE
#+TODO: DRAFT READY DOING | IMPLEMENTED SUPERSEDED CANCELLED
+* IMPLEMENTED Net Panel — Tailscale, VPN, and WireGuard Interfaces
+:PROPERTIES:
+:ID: 09f4cd40-f391-4eba-a4ff-c22bad00ad7f
+:END:
+- 2026-07-04 Sat @ 12:36:56 -0500 — retrofitted by spec-sort; status set to IMPLEMENTED (reason: Tunnels track shipped detection, diagnose, and panel bring-up; build task DONE.)
+
* IMPLEMENTED Status
:PROPERTIES:
:ID: 79a1075a-4b56-4f25-a861-b69f120a636a
diff --git a/docs/design/2026-07-02-timer-panel-spec.org b/docs/specs/2026-07-02-timer-panel-spec.org
index 2c9f7d4..c0dbd2c 100644
--- a/docs/design/2026-07-02-timer-panel-spec.org
+++ b/docs/specs/2026-07-02-timer-panel-spec.org
@@ -4,6 +4,12 @@
#+TODO: TODO | DONE
#+TODO: DRAFT READY DOING | IMPLEMENTED SUPERSEDED CANCELLED
+* DRAFT Timer GTK Panel
+:PROPERTIES:
+:ID: 25ed5321-f035-42b3-b115-69364d775f41
+:END:
+- 2026-07-04 Sat @ 12:36:56 -0500 — retrofitted by spec-sort; status set to DRAFT (evidence-based, human-confirmed)
+
* DRAFT Status
:PROPERTIES:
:ID: 1770af2e-b093-4024-a512-ae4324a2869f
diff --git a/docs/design/2026-07-03-audio-panel-spec.org b/docs/specs/2026-07-03-audio-panel-spec.org
index 16a087d..82041ed 100644
--- a/docs/design/2026-07-03-audio-panel-spec.org
+++ b/docs/specs/2026-07-03-audio-panel-spec.org
@@ -4,6 +4,12 @@
#+TODO: TODO | DONE
#+TODO: DRAFT READY DOING | IMPLEMENTED SUPERSEDED CANCELLED
+* IMPLEMENTED Audio Panel — the pulsemixer console
+:PROPERTIES:
+:ID: 9175e017-46ad-4887-ae45-887e9551c005
+:END:
+- 2026-07-04 Sat @ 12:36:56 -0500 — retrofitted by spec-sort; status set to IMPLEMENTED (reason: Shipped; build task DONE, manual tests filed.)
+
* IMPLEMENTED Status
:PROPERTIES:
:ID: 71f556c6-ee02-47cc-a3be-68c8289380f3
diff --git a/docs/design/2026-07-03-instrument-console-panels-spec.org b/docs/specs/2026-07-03-instrument-console-panels-spec.org
index 315e0b4..c0a0c56 100644
--- a/docs/design/2026-07-03-instrument-console-panels-spec.org
+++ b/docs/specs/2026-07-03-instrument-console-panels-spec.org
@@ -3,6 +3,12 @@
#+TODO: TODO | DONE
#+TODO: DRAFT READY DOING | IMPLEMENTED SUPERSEDED CANCELLED
+* IMPLEMENTED Instrument-console rebuild — net + bluetooth panels
+:PROPERTIES:
+:ID: ac23e996-a51a-466b-ad80-2faff46447bf
+:END:
+- 2026-07-04 Sat @ 12:36:56 -0500 — retrofitted by spec-sort; status set to IMPLEMENTED (reason: Panel rebuild shipped (dotfiles e993c3f); build task DONE.)
+
* IMPLEMENTED Status
:PROPERTIES:
:ID: e73877f5-4f5b-4f81-b946-dbaa6145e0d5
diff --git a/todo.org b/todo.org
index e9c419f..abd4eee 100644
--- a/todo.org
+++ b/todo.org
@@ -189,7 +189,7 @@ Rescoped 2026-07-04 (audit): the tunnels track already shipped most of the origi
:PROPERTIES:
:LAST_REVIEWED: 2026-07-02
:END:
-Initial spec written 2026-07-02: [[file:docs/design/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).
+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).
From Craig's roam capture 2026-07-02: give the timer a GTK UI/UX like the network panel.
@@ -197,7 +197,7 @@ From Craig's roam capture 2026-07-02: give the timer a GTK UI/UX like the networ
:PROPERTIES:
:LAST_REVIEWED: 2026-06-24
:END:
-Initial spec written 2026-07-02: [[file:docs/design/2026-07-02-desktop-settings-panel-spec.org]] (DRAFT — four decisions await Craig's review before build; architecture updated to the net panel's Blueprint/GTK4 stack).
+Initial spec written 2026-07-02: [[file:docs/specs/2026-07-02-desktop-settings-panel-spec.org]] (DRAFT — four decisions await Craig's review before build; architecture updated to the net panel's Blueprint/GTK4 stack).
One waybar dropdown gathering the desktop toggles and sliders into a single settings panel, opened from a gear/settings glyph on the bar. Incorporate:
- *Auto-dim* toggle (the =custom/dim= feature just shipped — fold in here, or keep the standalone indicator and mirror it).
@@ -1284,7 +1284,7 @@ CLOSED: [2026-07-02 Thu]
:PROPERTIES:
:SPEC_ID: 1271a845-4463-4831-9902-990eda6b2265
:END:
-Spec: [[file:docs/design/2026-07-02-bluetooth-panel-spec.org]] (IMPLEMENTED 2026-07-02 — all five phases shipped same day: engine eb2230f, panel 76b2c05, bar module e372de3, bt-priv + blueman retirement 2a026b1/d8d8c53, install wiring proven by VM assertions). Residual: the phase 4-5 VM assertions run on the next VM pass; ratio picks up the package removal + hand-links on its trip list.
+Spec: [[file:docs/specs/2026-07-02-bluetooth-panel-spec.org]] (IMPLEMENTED 2026-07-02 — all five phases shipped same day: engine eb2230f, panel 76b2c05, bar module e372de3, bt-priv + blueman retirement 2a026b1/d8d8c53, install wiring proven by VM assertions). Residual: the phase 4-5 VM assertions run on the next VM pass; ratio picks up the package removal + hand-links on its trip list.
A bluetooth panel driving a CLI underneath (bluetoothctl one-shot verbs), consistent in look and feel with the net panel (GTK4 + layer-shell + Blueprint, humble-object presenter, verify-everything). Minimalistic interface, full functionality, plus a diagnostics/troubleshooting section mirroring the net panel's Diagnostics tab. Bar module glyph opens it. Craig's ask (2026-07-02): follow UX/UI best practices; where the net panel's patterns conflict with best practices, file a net-panel bug task rather than clone the flaw.
@@ -1407,7 +1407,7 @@ CLOSED: [2026-07-03 Fri]
:PROPERTIES:
:SPEC_ID: e73877f5-4f5b-4f81-b946-dbaa6145e0d5
:END:
-The no-approvals speedrun build of the console design Craig approved through five prototype iterations (2026-07-02/03). Spec: [[file:docs/design/2026-07-03-instrument-console-panels-spec.org]] — the interactive prototype [[file:assets/2026-07-03-instrument-console-panels-prototype.html][assets/2026-07-03-instrument-console-panels-prototype.html]] is the normative design reference. Folds three open tasks: network panel redesign, bt switch placement + title, bt rename devices. Code in ~/.dotfiles (net/, bluetooth/, themes/dupre/panel.css). Final step: flip the spec to IMPLEMENTED, write the findings summary to file, finalize session context.
+The no-approvals speedrun build of the console design Craig approved through five prototype iterations (2026-07-02/03). Spec: [[file:docs/specs/2026-07-03-instrument-console-panels-spec.org]] — the interactive prototype [[file:assets/2026-07-03-instrument-console-panels-prototype.html][assets/2026-07-03-instrument-console-panels-prototype.html]] is the normative design reference. Folds three open tasks: network panel redesign, bt switch placement + title, bt rename devices. Code in ~/.dotfiles (net/, bluetooth/, themes/dupre/panel.css). Final step: flip the spec to IMPLEMENTED, write the findings summary to file, finalize session context.
*** 2026-07-03 Fri @ 03:20:00 -0400 Phase 2 shipped: net GTK-free console layer + engine verbs
Dotfiles =81ec9c3= (TDD, 52 new tests, 581 net green). Pure presenter logic for the single-screen console, no view code touched: =viewmodel.net_faceplate= (state word + lamp + TUNNEL/AIRPLANE badges, wired-link-wins precedence), =network_console_rows= (ethernet pinned, radio-off note, active-then-signal sort, per-row lamp/caption/ladder/forget), =channel_headline= (wired device+speed / SSID+ladder+dBm / not-connected placeholder), =tunnel_console_rows=, dial-meter geometry (=meter_needle_deg= + =meter_scale= 100→1000 auto-relabel), =signal_bars=/=mbps_label=, and =panel.ArmState= (two-click arm-to-fire for forget/disconnect). Engine verbs: =manage.wifi_radio= (nmcli radio wifi on|off), =manage.device_up= (ethernet take-the-route), =sysio.link_speed_mbps= (/sys wired speed), =connections.ethernet_devices=, hidden flag on =manage.add=.
@@ -1489,7 +1489,7 @@ CLOSED: [2026-07-02 Thu]
:PROPERTIES:
:SPEC_ID: 79a1075a-4b56-4f25-a861-b69f120a636a
:END:
-Spec: [[file:docs/design/2026-07-02-net-panel-other-interfaces-spec.org]] (DOING — reviewed READY and decomposed 2026-07-02 evening; all four decisions were resolved same morning, claims re-verified live at review: protonvpn binary, tailscale JSON shape, seven importable wireguard configs).
+Spec: [[file:docs/specs/2026-07-02-net-panel-other-interfaces-spec.org]] (DOING — reviewed READY and decomposed 2026-07-02 evening; all four decisions were resolved same morning, claims re-verified live at review: protonvpn binary, tailscale JSON shape, seven importable wireguard configs).
Tunnels visible and controllable in the net panel: tailscale + NM wireguard + proton-vpn-cli probes, a Tunnels group in Connections, diagnose/doctor route-ownership awareness, a bar badge when a tunnel owns the default route, archsetup operator flag + package swap, and the one-time NM import of the seven Proton configs. Origin: roam inbox capture 2026-07-02.
@@ -1518,7 +1518,7 @@ CLOSED: [2026-07-02 Thu]
:PROPERTIES:
:LAST_REVIEWED: 2026-07-02
:END:
-Reassigned to .emacs.d 2026-07-02 (handoff: =~/.emacs.d/inbox/2026-07-02-2231-from-archsetup-dirvish-popup-swallow-handoff.org=). The "file manager" is the dirvish popup (Super+F, an Emacs frame), not nautilus — so the fix is elisp in dirvish's external-open path (=cj/xdg-open=): spawn the handler directly with =start-process=, hide the popup frame, restore it from the process sentinel, notify on non-zero exit. The spec drafted here first ([[file:docs/design/2026-07-02-file-manager-swallow-spec.org]], now CANCELLED) records the feasibility finding that stays useful: gio/xdg-open launches double-fork, so no PID-ancestry approach (Hyprland native swallow included) can ever connect viewer to launcher.
+Reassigned to .emacs.d 2026-07-02 (handoff: =~/.emacs.d/inbox/2026-07-02-2231-from-archsetup-dirvish-popup-swallow-handoff.org=). The "file manager" is the dirvish popup (Super+F, an Emacs frame), not nautilus — so the fix is elisp in dirvish's external-open path (=cj/xdg-open=): spawn the handler directly with =start-process=, hide the popup frame, restore it from the process sentinel, notify on non-zero exit. The spec drafted here first ([[file:docs/specs/2026-07-02-file-manager-swallow-spec.org]], now CANCELLED) records the feasibility finding that stays useful: gio/xdg-open launches double-fork, so no PID-ancestry approach (Hyprland native swallow included) can ever connect viewer to launcher.
When the file manager launches another app, it should hide to a special workspace (the "swallow" pattern) and return when that process ends, rather than vanishing. Today it disappears with no signal of whether it's coming back, so the user can't tell success from failure — they should quit explicitly instead. Origin: roam inbox capture.
@@ -1704,6 +1704,6 @@ CLOSED: [2026-07-03 Fri]
:PROPERTIES:
:LAST_REVIEWED: 2026-07-02
:END:
-Went past the spec to a full build in a no-approvals speedrun. Spec is now IMPLEMENTED ([[file:docs/design/2026-07-03-audio-panel-spec.org]], all 5 Decisions resolved). The panel shipped in the dotfiles repo (branch panel-bugfixing, commits 65e5bb0..9601420): pactl engine, GTK-free presenter, GTK instrument-console panel (OUTPUTS/INPUTS device rows with faders + per-device mute, LIVE/MUTED/PUSH·TALK mic keys, twin VU gauges, master quick-mute), Hyprland-bind push-to-talk, bar indicator, and the bar/keybind wiring (Super+A → panel, XF86AudioMute → master quick-mute). 102 unit tests + a passing AT-SPI smoke on velox. Live-eyeball validation filed under Manual testing and validation. Apply steps + follow-ups handed to the dotfiles project inbox.
+Went past the spec to a full build in a no-approvals speedrun. Spec is now IMPLEMENTED ([[file:docs/specs/2026-07-03-audio-panel-spec.org]], all 5 Decisions resolved). The panel shipped in the dotfiles repo (branch panel-bugfixing, commits 65e5bb0..9601420): pactl engine, GTK-free presenter, GTK instrument-console panel (OUTPUTS/INPUTS device rows with faders + per-device mute, LIVE/MUTED/PUSH·TALK mic keys, twin VU gauges, master quick-mute), Hyprland-bind push-to-talk, bar indicator, and the bar/keybind wiring (Super+A → panel, XF86AudioMute → master quick-mute). 102 unit tests + a passing AT-SPI smoke on velox. Live-eyeball validation filed under Manual testing and validation. Apply steps + follow-ups handed to the dotfiles project inbox.
Original ask (roam inbox, 2026-07-02): net/bt-panel kin — change default output/input, volume for both, push-to-talk mic mode for meetings, master quick-mute, bar sound-glyph state. Related bindings: Super+M audio-cycle ring, Super+Shift+A mic-toggle. Prototype: =working/sound-panel/sound-panel-prototype.html=.