Goal
Create a real minimal Android companion that associates, connects and runs the shared protocol durably.
Scope
Modern Gradle/Kotlin project, Companion Device Manager association, appropriate CompanionDeviceService/presence lifecycle, permissions, GATT client, protocol transport, durable queue/cursors, minimal status/config/diagnostic UI and Kotlin golden vectors.
Non-goals
Large UI, fixed periodic scanning, broad notification mirror, cloud account framework or simulated-only companion.
Dependencies
Depends on #31 and #32.
Acceptance criteria
- Clean Android build and JVM tests succeed with the pinned local toolchain.
- Kotlin agrees with all C++ golden vectors.
- Association, reconnect and process restart state machines are explicit.
- Permissions and background behavior follow supported Android APIs.
- Durable state is persisted before ACK ownership is reported.
Automated evidence
JVM unit tests cover codec, queue, lifecycle state, duplicate and reconnect. Instrumentation tests run where an Android target permits.
Hardware evidence
A real Android device must pair, reconnect, survive process/background scenarios and exchange durable state before closure.
Closure condition
Keep open until both automated evidence and available real-device evidence are attached.
Goal
Create a real minimal Android companion that associates, connects and runs the shared protocol durably.
Scope
Modern Gradle/Kotlin project, Companion Device Manager association, appropriate CompanionDeviceService/presence lifecycle, permissions, GATT client, protocol transport, durable queue/cursors, minimal status/config/diagnostic UI and Kotlin golden vectors.
Non-goals
Large UI, fixed periodic scanning, broad notification mirror, cloud account framework or simulated-only companion.
Dependencies
Depends on #31 and #32.
Acceptance criteria
Automated evidence
JVM unit tests cover codec, queue, lifecycle state, duplicate and reconnect. Instrumentation tests run where an Android target permits.
Hardware evidence
A real Android device must pair, reconnect, survive process/background scenarios and exchange durable state before closure.
Closure condition
Keep open until both automated evidence and available real-device evidence are attached.