aboutsummaryrefslogtreecommitdiff
path: root/docs/design/2026-07-02-bluetooth-panel-spec.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-02 13:31:48 -0400
committerCraig Jennings <c@cjennings.net>2026-07-02 13:31:48 -0400
commit7091f3472be5d09fcf01a539f2ca1c8d88d618d1 (patch)
treed88bd8928579a6ddd50ef7df310a54b779333bf0 /docs/design/2026-07-02-bluetooth-panel-spec.org
parent33adcc2147e816417d06dfcfd1f076af28c73d77 (diff)
downloadarchsetup-7091f3472be5d09fcf01a539f2ca1c8d88d618d1.tar.gz
archsetup-7091f3472be5d09fcf01a539f2ca1c8d88d618d1.zip
docs(spec): bluetooth phase 1 shipped, pw-dump ground truth noted, css factoring moved to phase 2
Diffstat (limited to 'docs/design/2026-07-02-bluetooth-panel-spec.org')
-rw-r--r--docs/design/2026-07-02-bluetooth-panel-spec.org20
1 files changed, 19 insertions, 1 deletions
diff --git a/docs/design/2026-07-02-bluetooth-panel-spec.org b/docs/design/2026-07-02-bluetooth-panel-spec.org
index 3ada112..a6b60ae 100644
--- a/docs/design/2026-07-02-bluetooth-panel-spec.org
+++ b/docs/design/2026-07-02-bluetooth-panel-spec.org
@@ -223,7 +223,10 @@ The doctor chain, in order, each an evidence row:
sink/source, or the card stuck in HSP/HFP when A2DP is expected:
evidence names the active profile and offers the repair inline —
"Switch to A2DP" drives =wpctl set-profile <card> <index>= (profile
- inventory from =wpctl status=/=inspect=), verifies the sink came back
+ inventory from =pw-dump= — ground truth 2026-07-02: wpctl can't
+ enumerate a card's profiles, and the card's =bluez5.profile= prop
+ reads "off" mid-stream; the card's Profile param and the sink node's
+ =api.bluez5.profile= are authoritative), verifies the sink came back
in the expected profile, and reports fixed or no-change. In v1 per
Craig (2026-07-02): this failure mode has bitten repeatedly, so it
gets the one-click fix, not just a diagnosis. Connected audio-device
@@ -360,6 +363,21 @@ Non-blocking; it's the donor default made explicit.
* Review and iteration history
+** 2026-07-02 Thu @ 13:31:00 -0400 — Claude Code (archsetup) — phase 1 builder
+- *What changed or was recommended:* Phase 1 shipped (dotfiles =eb2230f=):
+ the =bt= engine package, 101 tests over fakes, live-verified read-only
+ on velox. Two spec corrections from ground truth: profile inventory
+ comes from =pw-dump= (wpctl can't enumerate profiles), and the active
+ profile reads from the card's Profile param / sink's
+ =api.bluez5.profile= (the card's =bluez5.profile= prop is unreliable).
+ The shared-css factoring moved into phase 2 — net's css is an inline
+ string in its =gui.py=, so extracting it belongs with the first second
+ consumer rather than as a standalone poke at the working net panel.
+- *Why:* Build order per the DOING decomposition; corrections keep the
+ spec honest for the phase 2 implementer.
+- *Artifacts:* dotfiles =bluetooth/src/bt/=, =tests/bt/=, the stowed
+ =bt= shim; dated phase 1 entry under the todo.org parent.
+
** 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);