aboutsummaryrefslogtreecommitdiff
path: root/docs/design
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-02 13:07:14 -0400
committerCraig Jennings <c@cjennings.net>2026-07-02 13:07:14 -0400
commit33adcc2147e816417d06dfcfd1f076af28c73d77 (patch)
tree76a2e1109a314ad5990d7f5fd0cde2c0c6337e12 /docs/design
parent084889af9ee106c18f123cd7c009320a42ea340c (diff)
downloadarchsetup-33adcc2147e816417d06dfcfd1f076af28c73d77.tar.gz
archsetup-33adcc2147e816417d06dfcfd1f076af28c73d77.zip
docs(spec): bluetooth panel reviewed READY, decomposed to DOING; net-panel kbd-nav probe deferred
Fused reviewer + responder pass: gate passed (all four decisions resolved, phases decomposable, bluez 5.86 verbs verified), two non-blocking findings recorded and dispositioned inline (empty-state/no-adapter copy, eventlog + redaction carry-over — both clone the net-panel donor). Build parent now carries the five phase sub-tasks and the spec's ID. The keyboard-nav verification task logs its code-level findings; the live AT-SPI probe waits until Craig's meeting ends (no test windows or synthetic input while zoom holds focus).
Diffstat (limited to 'docs/design')
-rw-r--r--docs/design/2026-07-02-bluetooth-panel-spec.org58
1 files changed, 55 insertions, 3 deletions
diff --git a/docs/design/2026-07-02-bluetooth-panel-spec.org b/docs/design/2026-07-02-bluetooth-panel-spec.org
index f010c1a..3ada112 100644
--- a/docs/design/2026-07-02-bluetooth-panel-spec.org
+++ b/docs/design/2026-07-02-bluetooth-panel-spec.org
@@ -4,10 +4,17 @@
#+TODO: TODO | DONE
#+TODO: DRAFT READY DOING | IMPLEMENTED SUPERSEDED CANCELLED
-* DRAFT Status
+* DOING Status
:PROPERTIES:
:ID: 1271a845-4463-4831-9902-990eda6b2265
:END:
+- [2026-07-02 Thu] DOING — spec-response decomposed the five phases into
+ build sub-tasks under the todo.org parent (:SPEC_ID: bound); build
+ started same day per Craig ("4 first, then 1" — bugs then bluetooth).
+- [2026-07-02 Thu] READY — spec-review passed the gate: all four
+ decisions resolved, phases decomposable, CLI verbs verified against
+ bluez 5.86. Two non-blocking findings recorded and dispositioned in
+ the same pass (donor-pattern answers).
- [2026-07-02 Thu] DRAFT — initial spec from Craig's request: a bluetooth
module driving a CLI underneath, consistent with the net panel, minimal
interface, full functionality, diagnostics section, visual mockups.
@@ -16,7 +23,7 @@
| Field | Value |
|--------+---------------------------------------------------------------------------------|
-| Status | draft |
+| Status | doing |
|--------+---------------------------------------------------------------------------------|
| Owner | Craig Jennings |
|--------+---------------------------------------------------------------------------------|
@@ -277,7 +284,7 @@ auto-dismiss in 4s, and the V2 spec's keyboard-navigation claims
implemented. Both filed against the net panel rather than cloned here;
this panel adopts whatever resolution those tasks land on.
-* Decisions (Craig)
+* Decisions (Craig) [4/4]
** DONE Pair implies trust + connect?
CLOSED: [2026-07-02 Thu]
@@ -304,6 +311,32 @@ CLOSED: [2026-07-02 Thu]
Approved (Craig, 2026-07-02): 8s bursts, no auto-repeat — Rescan stays
explicit, matching the net panel's Available view.
+* Review findings [2/2]
+
+** DONE Empty-state and no-adapter presentation copy undefined :nonblocking:
+CLOSED: [2026-07-02 Thu]
+The mockups show populated lists; the spec didn't say what an empty Paired
+list, an empty post-scan Nearby list, or a machine with no adapter shows
+in the panel and on the bar glyph. Dispositioned same pass: clone the
+donor — the net panel's in-box overlay message pattern (=show_loading= /
+placeholder label) carries the copy. Paired empty: "No paired devices —
+switch to Nearby to pair one." Nearby post-scan empty: "Nothing found —
+Rescan, or make the device discoverable." No adapter: adapter row reads
+"No Bluetooth adapter", Devices controls disable, Diagnostics stays
+usable (the doctor's step 1 names the hardware/driver verdict); bar
+glyph shows the off/blocked state. Non-blocking; recorded so the
+implementer doesn't invent copy mid-build.
+
+** DONE Logging/redaction carry-over unstated :nonblocking:
+CLOSED: [2026-07-02 Thu]
+The spec says "the net panel's stack, verbatim" but didn't name whether
+the engine adopts net's =eventlog= (structured op log) and =redact=
+(sensitive-field scrubbing) modules. Dispositioned same pass: yes, both
+carry over — every mutating verb (pair/connect/forget/repair) logs an
+eventlog entry, and MACs are the redaction surface (device names stay,
+MACs redact in copied reports, mirroring net's report redaction).
+Non-blocking; it's the donor default made explicit.
+
* Implementation phases
1. Engine =bt= package: adapter/device/scan probes over fake-bluetoothctl,
@@ -324,3 +357,22 @@ explicit, matching the net panel's Available view.
assertions.
5. archsetup keybind/config defaults so a fresh install lands the panel
wired (waybar module present, bind set, sudoers placed).
+
+* Review and iteration history
+
+** 2026-07-02 Thu @ 13:10:00 -0400 — Claude Code (archsetup) — reviewer + responder
+- *What changed or was recommended:* Ran the spec-review gate: passed.
+ All four decisions were already DONE (cookie added to the heading);
+ the five phases are each a clean single-session stop; CLI verbs are
+ verified against installed bluez 5.86. Two non-blocking findings
+ recorded and dispositioned in the same fused pass (empty-state /
+ no-adapter copy, eventlog + redaction carry-over) — both resolve to
+ "clone the net-panel donor," now stated explicitly. Flipped DRAFT →
+ READY → DOING and decomposed the phases into build sub-tasks under the
+ todo.org parent with :SPEC_ID: bound.
+- *Why:* Craig queued the build ("4 first, then 1", 2026-07-02) after
+ resolving all decisions the same morning; the gate held nothing back,
+ so review and response fused to keep the speedrun moving.
+- *Artifacts:* Findings in =* Review findings [2/2]= above; build parent
+ in todo.org ("Bluetooth panel + bar module"); net-panel toast fix the
+ UX-conformance note references landed as dotfiles =0f017d4=.