You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Heart-rate ("heartbeat") monitoring working in the Rust Linux client (linux-rust/, branch linux/rust), verified on the driving dev's AirPods Pro 3, ending in a PR against librepods-org/librepods plus a write-up of the BlueZ-vs-Bumble L2CAP findings for the maintainer.
Notes
Execution override: this map carries execution tickets (implement, verify, upstream) — the destination is a working, upstreamable change, not just a spec.
Glossary (disambiguation): "heartbeat" here = heart-rate (HR) monitoring from AirPods Pro 3 / Powerbeats Pro 2 sensors over Apple's proprietary AAP/AACP protocol (L2CAP PSM 0x1001) — not a protocol keep-alive; no keep-alive opcode exists in AAP. Full glossary: CONTEXT.md in the working clone.
Key repo facts: Android HR implementation exists in upstream PR Add experimental AirPods heart-rate monitoring and RSSI librepods-org/librepods#702 (fetched locally as branch pr-702); Rust AACP layer lives at linux-rust/src/bluetooth/aacp.rs on origin/linux/rust; feature work branches off origin/linux/rust; upstream PR targets the linux/rust branch.
Known risk (maintainer, Discussion Heart Rate librepods-org/librepods#233, Jan 2026): the HR packets are confirmed to work under Google Bumble but not under BlueZ or Fluoride — suspected L2CAP channel-mode/flow-control issue in the kernel socket path. The probe ticket exists to pin this down.
Hardware: driving dev has AirPods Pro 3 at the Linux machine. Apple DID spoofing (DeviceID = bluetooth:004C:0000:0000 in /etc/bluetooth/main.conf) is assumed required.
Decisions so far
Not yet specified
Activity/workout gating — Apple positions HR as workout-only (Fitness app context). Whether the buds stream HR on an idle link, and what minimal context (in-ear + audio? workout simulation?) is needed, is unknown until the probe runs. May graduate into simulation tickets.
BlueZ L2CAP deep-dive — if the probe reproduces the Bumble-works/BlueZ-fails behavior, a deeper investigation (L2CAP socket options, ERTM, Experimental/KernelExperimental flags, exact failure capture) graduates into tickets.
Powerbeats Pro 2 variance — different optical sensor, possibly different packet format. No hardware available; sharpens only if a PBP2 owner appears.
Destination
Heart-rate ("heartbeat") monitoring working in the Rust Linux client (
linux-rust/, branchlinux/rust), verified on the driving dev's AirPods Pro 3, ending in a PR againstlibrepods-org/librepodsplus a write-up of the BlueZ-vs-Bumble L2CAP findings for the maintainer.Notes
/researchsubagents; prototype tickets →/prototype; grilling tickets →/grilling+/domain-modeling.CONTEXT.mdin the working clone.pr-702); Rust AACP layer lives atlinux-rust/src/bluetooth/aacp.rsonorigin/linux/rust; feature work branches offorigin/linux/rust; upstream PR targets thelinux/rustbranch.DeviceID = bluetooth:004C:0000:0000in/etc/bluetooth/main.conf) is assumed required.Decisions so far
Not yet specified
Experimental/KernelExperimentalflags, exact failure capture) graduates into tickets.Out of scope