Skip to content

Commit f886d06

Browse files
tedsluisclaude
andcommitted
docs: close out session 0010's remaining sign-off items (session 0015)
Resolves the two items left open in ai-sessions/0010 after its Volume Balance proposal was approved separately (DECISIONS.md ADR-026, session 0013): - PROTOCOL.md §6: the CAP-037/CAP-048 dock-timing anomaly is confirmed resolved (a genuine real-time docking action, consistent with the existing DECISIONS.md ADR-016) — the "awaiting maintainer sign-off" hedge is removed. - DECISIONS.md ADR-024: added a dated Update recording CAP-048's two counter-example Settable-toggles readings as a documented, unreconciled HYPOTHESIS exception, not a reversal of the ADR's own FACT. Both approved by the maintainer directly in chat. ai-sessions/0010 and ai-sessions/0015 both close as complete; nothing remains pending from session 0010. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V2WfHWj4DFbq79FSae5KdV
1 parent dd588f7 commit f886d06

6 files changed

Lines changed: 203 additions & 17 deletions

DECISIONS.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1227,6 +1227,20 @@ motivated this).
12271227
candidate cross-check for `ARCHITECTURE.md`'s connection/dock-state model. The exact bit-level
12281228
meaning of `0xe8` beyond "not both docked" (e.g. whether it varies further for one-bud-docked
12291229
states) remains unexplored and is not claimed by this ADR.
1230+
- **Update (2026-09-13, maintainer sign-off, `ai-sessions/0015_MAINTENANCE_RESULT_2026_09_13.md`):
1231+
two counter-examples found in a single session, not yet reconciled.** `CAP-048`
1232+
(`CAP-048-FINDINGS.md` §5, a purpose-built repeat with continuous dock-state video) found two
1233+
fresh classic reconnects (`17:44:45`, `17:47:42`) reporting `Settable-toggles=0x00` (docked) while
1234+
the video, checked at essentially the same wire timestamp, shows the case visibly **empty**. Four
1235+
other readings in the same session (including two same-chandle DLCI reopens, not fresh
1236+
reconnects) are correct — this is not a reversal of this ADR's own dock-state-indicator finding,
1237+
which the same session's other readings continue to confirm. 🟡 **HYPOTHESIS, not confirmed:** a
1238+
fresh reconnect's own Get/Notify may occasionally return a value queried before the Buds' own
1239+
firmware has settled on an already-changed physical state — offered as a testable direction only;
1240+
does not by itself explain why the other four fresh reconnects in the same session read
1241+
correctly. Implementations reading this field on a fresh reconnect specifically (as opposed to a
1242+
same-chandle DLCI reopen) should treat it as usually, not unconditionally, reliable immediately
1243+
after connection.
12301244

12311245
## ADR-025 — Google Play Services (GMS) reverse-engineering is out of scope; DLCI 0x04/0x08 implementation proceeds clean-room, from wire evidence only
12321246

PROTOCOL.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2496,16 +2496,16 @@ leaving them buried in prose elsewhere.
24962496
(`CAP-032-FINDINGS.md` §5).
24972497

24982498
- [x] **Added 2026-09-06, `CAP-037-FINDINGS.md` §5 (Group AD, `OBS-004` purpose-built repeat);
2499-
resolved 2026-09-12, `CAP-048-FINDINGS.md` §4 (PROPOSAL, awaiting maintainer sign-off):** on
2500-
one of 26 same-session `DECISIONS.md` ADR-022 replications, a chandle shows a **second**
2501-
"Notify ANC state" frame 18 seconds after the first, with no new `08 11` Get frame in
2502-
between, and its `Settable-toggles` value flips from `0xe8` to `0x00`. `CAP-048` (a repeat
2503-
with continuous physical dock-state video) reproduced this exact shape (chandle `0x0010`,
2504-
`17:52:25.14`) and resolved it directly: the video, extracted at the exact wire timestamp,
2505-
shows a hand actively placing a bud into the case at that moment — a genuine real-time
2506-
dock-state change while the ACL connection stayed open, **consistent with** (not in tension
2507-
with) `DECISIONS.md` ADR-016 — the second bud's own docking, 5.4s later, is what then triggers
2508-
the disconnect, matching ADR-016 exactly.
2499+
resolved 2026-09-12, `CAP-048-FINDINGS.md` §4; maintainer sign-off obtained 2026-09-13
2500+
(`ai-sessions/0015_MAINTENANCE_RESULT_2026_09_13.md`):** on one of 26 same-session
2501+
`DECISIONS.md` ADR-022 replications, a chandle shows a **second** "Notify ANC state" frame 18
2502+
seconds after the first, with no new `08 11` Get frame in between, and its `Settable-toggles`
2503+
value flips from `0xe8` to `0x00`. `CAP-048` (a repeat with continuous physical dock-state
2504+
video) reproduced this exact shape (chandle `0x0010`, `17:52:25.14`) and resolved it directly:
2505+
the video, extracted at the exact wire timestamp, shows a hand actively placing a bud into the
2506+
case at that moment — a genuine real-time dock-state change while the ACL connection stayed
2507+
open, **consistent with** (not in tension with) `DECISIONS.md` ADR-016 — the second bud's own
2508+
docking, 5.4s later, is what then triggers the disconnect, matching ADR-016 exactly.
25092509
- [ ] **Added 2026-09-12, `CAP-048-FINDINGS.md` §5:** a genuine, video-confirmed counter-example to
25102510
a simple reading of `DECISIONS.md` ADR-024: two fresh classic reconnects (`17:44:45`,
25112511
`17:47:42`) report `Settable-toggles=0x00` (docked) while the video, checked at essentially the
@@ -2612,6 +2612,7 @@ leaving them buried in prose elsewhere.
26122612
| 2026-09-08 | **`ai-sessions/0003_MAINTENANCE_PROMPT_2026_09_08.md` Phase 3/4 — APK reverse-engineering and capture cross-checks.** **§4.5.5 In-ear detection (`qhr` field 2)** promoted to 🟢 FACT for field-number/category-level identity, maintainer-approved (`DECISIONS.md` ADR-019 Update): the field's existing write site is also reached from the system Settings app's `MaestroDeviceSettingsProviderService` (case `2102`), logged there under the internal category name `"CATEGORY_OHD"` — the specific "In-ear detection" UI-label equivalence stays 🟡 HYPOTHESIS. **§4.2 EQ** — `fyd.d`/`fyd.e`'s call sites traced: field 16 confirmed fed from the slider-drag/preset path; field 18 found reachable *only* via a dedicated "Save EQ" button click handler, directly contradicting (not confirming) `CAP-015`'s own "fires on slider-release" wire-timing hypothesis — recorded as an open tension per the maintainer's own review, not resolved either way. **§6** — `MaestroDeviceSettingsProviderService`'s remaining 5 case IDs traced (field 27, field 11/Multipoint with a new internal-name confirmation and an unreconciled `fpm.ENABLED_HEAD_GESTURES` naming tension, field 5, a non-`qhr` "Feature A" toggle, and a new field 32); `MaestroEndpointService.onCreate()` read via `apktool` smali fallback (a Dagger-multibinding-based, per-call UID-authorization-gated service registry, service names not recovered); `gjv.p()`'s caller re-attempted and still not found (static analysis judged exhausted). **`CAP-041-FINDINGS.md` §8** — full byte-for-byte content diff of the DLCI 0x02 connect-time burst across 4 settings states: content-level clean negative for a settings-state read-back, closing `OBS-007` beyond the prior length-only result. **§6** — a plausible (unconfirmed) structural match found between `CAP-036`'s existing connect-time burst and `qjb`'s `qie`-shaped nested structure; `TrueWirelessHeadset.modelId` confirmed to need the maintainer's own device access, no existing data found | Claude (AI), APK-reverse-engineering + capture-analysis task; one item (`qhr` field 2) maintainer-directed sign-off, prompt `0003` |
26132613
| 2026-09-09 | **`ai-sessions/0004_MAINTENANCE_PROMPT_2026_09_09.md` — connection-lifecycle analysis on existing captures.** **New §5.2**: DLCI 0x02 (`libmaestro`) reliably opens *last* of the five data-carrying RFCOMM channels on a fresh reconnect — 6 independent instances across `CAP-036`/`CAP-037`/`CAP-041`, zero counter-examples in that condition, one honestly-scoped exception during a mid-session RFCOMM channel-bounce (where the order differs). Maintainer reviewed this directly in the chat session that authored this prompt and explicitly chose to keep it at 🟡 HYPOTHESIS (strong) rather than promote, pending more evidence or an explanation for the one exception | Claude (AI), capture-re-analysis task; maintainer-reviewed, kept at HYPOTHESIS (not promoted), prompt `0004` |
26142614
| 2026-09-13 | **`ai-sessions/0013_FEATURE_PROMPT_2026_09_13.md` — pending `0012` decisions resolved.** **§4.5.7 Volume Balance** — the ±100 range and `+100`=Left/`-100`=Right polarity promoted to 🟢 FACT (`DECISIONS.md` ADR-026), maintainer-approved in the same chat session that authored this prompt; matching §6 open item closed. **§4.4/§6 Behavior** — Find My Buds Case/"both simultaneously" scope decision resolved (`DECISIONS.md` ADR-027): v1 ships with Left/Right ring only, Case/"both" out of scope absent a future local mechanism; see `PROJECT.md`'s non-goals and `TODO.md`'s Phase 1 item for the corresponding updates. Also this session: mechanical count corrections to `CAP-036-FINDINGS.md`/`CAP-037-FINDINGS.md` (not a `PROTOCOL.md` change), a bounded APK research pass (`REVERSE_ENGINEERING.md`'s `frb`/`fuh`/`glk`/`gjv` entry and a new "GSND" naming-lead entry), and the first real, buildable/tested Android Studio project (`android/`, five Gradle modules, ANC `FrameEncoder`/`FrameDecoder` implemented and unit-tested against real capture fixtures) — none of which touch this document's own body | Claude (AI), maintainer-directed sign-off session, prompt `0013` |
2615+
| 2026-09-13 | **`ai-sessions/0015_MAINTENANCE_PROMPT_2026_09_13.md` — resolved `ai-sessions/0010`'s two remaining sign-off items.** **§6** — the `CAP-037`/`CAP-048` dock-timing anomaly's "(PROPOSAL, awaiting maintainer sign-off)" hedge removed; the explanation itself (a genuine real-time docking action, consistent with `DECISIONS.md` ADR-016) was maintainer-approved, citing `ai-sessions/0015`. No new FACT beyond ADR-016 was introduced — this only closes a previously-open citation. `DECISIONS.md` ADR-024 gained a dated Update recording `CAP-048`'s two counter-example `Settable-toggles` readings as a documented, unreconciled 🟡 HYPOTHESIS exception, maintainer-approved | Claude (AI), maintainer-directed sign-off session, prompt `0015` |
26152616

26162617
---
26172618
https://github.com/tedsluis/opencontrolpixelbudspro2/blob/main/PROTOCOL.md - https://tedsluis.github.io/opencontrolpixelbudspro2/PROTOCOL

ai-sessions/0010_CAPTURE_RESULT_2026_09_12.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
**Category:** CAPTURE
55
**Date:** 2026-09-12
66
**Title:** Full video+log re-analysis and FINDINGS for CAP-018, CAP-026, CAP-028, CAP-029, CAP-045, CAP-046, CAP-048, CAP-049
7-
**Status:** awaiting maintainer sign-off
7+
**Status:** complete — all 3 originally-pending sign-off items resolved: item 1 (Volume Balance) via
8+
`DECISIONS.md` ADR-026 (`ai-sessions/0013`); items 2 and 3 (the `CAP-037`/`CAP-048` anomaly and the
9+
`DECISIONS.md` ADR-024 caveat) approved by the maintainer and applied via
10+
`ai-sessions/0015_MAINTENANCE_RESULT_2026_09_13.md`
811

912
---
1013

@@ -93,15 +96,18 @@ connection-retry burst.
9396
(per `AGENTS.md` §6/§15 — none of these were self-promoted; all are labeled PROPOSAL in the affected
9497
documents):
9598

96-
1. **`PROTOCOL.md` §4.5.7 (Volume Balance)** — promote the ±100 range and the
97-
`+100`=Left/`-100`=Right direction mapping to 🟢 FACT (`CAP-046-FINDINGS.md` §2, 3/3
98-
video-confirmed, zero counter-examples).
99+
1. ~~**`PROTOCOL.md` §4.5.7 (Volume Balance)** — promote the ±100 range and the
100+
`+100`=Left/`-100`=Right direction mapping to 🟢 FACT.~~ **Resolved 2026-09-13** — approved by
101+
the maintainer in the chat session that authored `ai-sessions/0013_FEATURE_PROMPT_2026_09_13.md`,
102+
recorded as `DECISIONS.md` ADR-026. `PROTOCOL.md` §4.5.7 updated accordingly.
99103
2. **`DECISIONS.md` ADR-024** — record `CAP-048`'s two video-confirmed counter-examples (stale
100104
`Settable-toggles` readings on two fresh reconnects) as an explicit, documented exception —
101105
**not** proposed as a reversal of the existing FACT, proposed as a caveat needing the
102-
maintainer's own read on how to qualify it.
106+
maintainer's own read on how to qualify it. **Still pending** — see
107+
`ai-sessions/0015_MAINTENANCE_RESULT_2026_09_13.md`.
103108
3. **`CAP-037-FINDINGS.md` §5 / `PROTOCOL.md` §6** — mark this specific anomaly class as resolved
104-
(real-time dock-state change, ADR-016-consistent), citing `CAP-048`.
109+
(real-time dock-state change, ADR-016-consistent), citing `CAP-048`. **Still pending** — see
110+
`ai-sessions/0015_MAINTENANCE_RESULT_2026_09_13.md`.
105111
4. **`HOLD-005` (`PROTOCOL.md` §4.5.3 / `TESTPLAN_BLUETOOTH_HCI_SNOOP.md`)** — no promotion proposed;
106112
flagged instead that `CAP-045` did not close this question and a genuine re-run of Group AJ's own
107113
procedure (open the rotation-checklist screen, not physical long-presses) is still needed.
@@ -110,6 +116,10 @@ documents):
110116
Conversation Detection's wire-silent pause; the Balance↔Mono-audio timing correlation; the
111117
`CAP-048` connection-retry burst.
112118

119+
**Update (2026-09-13, `ai-sessions/0015_MAINTENANCE_RESULT_2026_09_13.md`):** item 1 resolved (see
120+
above). Items 2 and 3 are this file's only remaining open sign-off items — surfaced again to the
121+
maintainer in `0015`.
122+
113123
## Uncommitted work
114124

115125
Nothing committed yet this session (project convention: no auto-commits). Uncommitted changes as of
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# 0015_MAINTENANCE_PROMPT_2026_09_13.md — Investigate and resolve ai-sessions/0010's remaining sign-off items
2+
3+
**Number:** 0015
4+
**Category:** MAINTENANCE
5+
**Date:** 2026-09-13
6+
**Title:** Investigate and resolve ai-sessions/0010's remaining sign-off items
7+
8+
---
9+
10+
## Mandatory reading order
11+
12+
Per `AGENTS.md` §0.1 and `AI_SESSION_LOG_PROCEDURE.md` §8: `AGENTS.md`, `PROJECT.md`,
13+
`PROJECT_RULES.md`, and `DECISIONS.md` in full (already read earlier this same chat session, still
14+
current), plus `ai-sessions/0010_CAPTURE_PROMPT_2026_09_12.md`/`ai-sessions/0010_CAPTURE_RESULT_2026_09_12.md`
15+
(full), the 8 capture `CAP-NNN-FINDINGS.md` files that session covers (`CAP-018`, `CAP-026`,
16+
`CAP-028`, `CAP-029`, `CAP-045`, `CAP-046`, `CAP-048`, `CAP-049`), `PROTOCOL.md` §4.1/§4.5.7/§6,
17+
`DECISIONS.md` ADR-016/ADR-022/ADR-024/ADR-026, and `TESTPLAN_BLUETOOTH_HCI_SNOOP.md`'s matching
18+
rows.
19+
20+
## Task (verbatim, as given by the maintainer in chat, translated from Dutch)
21+
22+
> It appears that 0010_CAPTURE_PROMPT_2026_09_12.md still needs a sign-off from me. Find out what
23+
> still needs to happen and update the relevant documents.
24+
25+
## Scope
26+
27+
1. Re-read `ai-sessions/0010_CAPTURE_RESULT_2026_09_12.md` in full, including its "Final summary for
28+
the maintainer" section's 5-item sign-off list, and independently verify against the 8 underlying
29+
`CAP-NNN-FINDINGS.md` files' own "Proposed" sections that this list is exhaustive (nothing else
30+
awaiting sign-off was missed).
31+
2. For each item already resolved by a later session in this same chat (specifically: Volume
32+
Balance's FACT promotion, approved and applied as `DECISIONS.md` ADR-026 in
33+
`ai-sessions/0013_FEATURE_RESULT_2026_09_13.md`), update `0010`'s own record to reflect that,
34+
per `AI_SESSION_LOG_PROCEDURE.md` §4a.
35+
3. For each item genuinely still open, surface it to the maintainer as a compact, specific decision
36+
with a recommendation — per `AGENTS.md` §6/§15, this session may draft exact proposed text
37+
(a `DECISIONS.md` ADR update, a `PROTOCOL.md` edit) but must not commit either without the
38+
maintainer's explicit, in-conversation approval.
39+
4. Once the maintainer answers, apply exactly what was approved and update `ai-sessions/0010`'s and
40+
`ai-sessions/INDEX.md`'s status fields to match.
41+
42+
---
43+
https://github.com/tedsluis/opencontrolpixelbudspro2/blob/main/ai-sessions/0015_MAINTENANCE_PROMPT_2026_09_13.md - https://tedsluis.github.io/opencontrolpixelbudspro2/ai-sessions/0015_MAINTENANCE_PROMPT_2026_09_13

0 commit comments

Comments
 (0)