Commit Graph
915 Commits
Author SHA1 Message Date
evgeny 083495986e Document HCI queue delays and explain incompatible GATT properties 2026-10-29 19:10:13 +01:00
evgeny c5711b5974 Preserve Android BLE failure status and callback diagnostics 2026-10-29 19:00:11 +01:00
evgeny 3def3f5af2 Use unacknowledged BLE DATA and request faster connections 2026-10-29 18:28:05 +01:00
evgeny 5152b17114 Fix BLE link display and remove obsolete tool projects 2026-10-29 17:10:39 +01:00
evgeny f84622966e Add BLE ETCP links and GATT invitations for desktop and Android
Attach packet drivers to initially empty ETCP connections. Share BLE neighbor
tracking and group fallback between desktop and Android in cgathui_common.

Deliver join links through a dedicated Write/Indicate characteristic with
independent fragmentation queues, application acknowledgements, deduplication
and bounded retries. Merge LAN/BLE discovery and add a separate Bluetooth
invitation reception setting to both clients.

Validation: 230 core tests, BLE transport/BlueZ/UI tests, ASAN/UBSAN,
Linux GUI and Android builds, and Windows backend cross-compilation.
Physical Android/Linux invitation exchange passed with either GATT initiator.
The Android-initiated run also verified all 32 ETCP packets of 1500 bytes;
the desktop-initiated load run reached 7/32 within its 45-second time limit.
2026-10-29 16:41:04 +01:00
evgeny ef6a5673bd Preserve member connection state when its refresh fails 2026-10-29 14:02:25 +01:00
evgeny 05ea602a3a Distinguish failed member-link snapshots from confirmed disconnection 2026-10-29 14:02:25 +01:00
evgeny a4c7899ffb Keep native member query failures distinct from valid empty snapshots 2026-10-29 14:02:25 +01:00
evgeny 0878947e13 Describe Android view-model snapshots and application-owned configuration 2026-10-29 14:00:16 +01:00
evgeny 2460e810d6 Document asynchronous BLE detach and report probe cleanup failures 2026-10-29 13:59:14 +01:00
evgeny f1f113a5f2 Describe readiness recovery when a rejected restart retains the core 2026-10-29 13:56:57 +01:00
evgeny 0800fd61a7 Retry failed BLE SDK releases and propagate radio command rejection 2026-10-29 13:54:52 +01:00
evgeny 5410c4c6c6 Retain BLE cleanup ownership until each Android release succeeds 2026-10-29 13:53:22 +01:00
evgeny 6c7f5b7032 Apply Bluetooth flag changes atomically without replacing concurrent selections 2026-10-29 13:53:22 +01:00
evgeny 8dc10bb54f Keep Bluetooth settings writes alive and contain Android launch failures 2026-10-29 13:51:59 +01:00
evgeny ae4f524448 Observe confirmed Bluetooth preferences from the application owner 2026-10-29 13:51:58 +01:00
evgeny 1651d1b870 Document native ownership and reject media creation during core cleanup 2026-10-29 13:50:21 +01:00
evgeny 4a5a8cf057 Keep malformed events and deleted database state out of Android UI 2026-10-29 13:49:57 +01:00
evgeny c5879042fb Validate complete channel event frames before publishing state 2026-10-29 13:49:00 +01:00
evgeny d636a03928 Test restart readiness recovery and explicit UTF-8 database cleanup 2026-10-29 13:39:58 +01:00
evgeny 132e222415 Resume retained core owners and observe unexpected service loss 2026-10-29 13:35:42 +01:00
evgeny 791ff42547 Keep database reset atomic and owned beyond the activity lifecycle 2026-10-29 13:35:42 +01:00
evgeny 665137314a Serialize native lifecycle mutations and renew readiness across restart 2026-10-29 13:35:42 +01:00
evgeny 0568d263e0 Reject fresh radio and publisher owners during core cleanup 2026-10-29 13:35:42 +01:00
evgeny 044ff034a6 Await radio and shared audio release before native core teardown 2026-10-29 13:35:42 +01:00
evgeny ea67b491f9 Show private conversation start failures and test stale confirmation isolation 2026-10-29 13:35:41 +01:00
evgeny 321a2c3ed7 Match private conversation confirmations before opening the requested peer 2026-10-29 13:35:41 +01:00
evgeny 69ae8b57cb Bind private conversation start requests to the worker conversation ID 2026-10-29 13:35:41 +01:00
evgeny c1ad35e152 Persist channel mute consistently and own panel preference changes 2026-10-29 13:35:41 +01:00
evgeny 3aecc095ff Return queue rejection for invite and private conversation requests 2026-10-29 13:35:41 +01:00
evgeny 17f79b16cd Run checked JVM string tests with the Android verification tasks 2026-10-29 13:35:41 +01:00
evgeny d20e112933 Isolate activity cleanup and document startup event ownership 2026-10-29 13:35:41 +01:00
evgeny b8ccd515dd Load startup preferences asynchronously and contain service launch errors 2026-10-29 13:35:41 +01:00
evgeny 013ff93406 Load audio and network settings on IO and document persistent change ownership 2026-10-29 13:35:41 +01:00
evgeny 30648086b4 Contain remaining settings loader failures and remove retired UI scopes 2026-10-29 13:35:41 +01:00
evgeny 828b36f290 Keep failed settings teardown retryable and preserve UI until database stop succeeds 2026-10-29 13:35:41 +01:00
evgeny c5c4d0e588 Load confirmed settings after pending changes and guard invalid audio preferences 2026-10-29 13:35:41 +01:00
evgeny 48564e8ab3 Respect microphone permission callback ownership and test settings disposal 2026-10-29 13:35:19 +01:00
evgeny b086750cf3 Persist audio settings before runtime updates and release hidden microphone tests 2026-10-29 13:35:19 +01:00
evgeny eb837206c3 Own radio settings changes and preserve observed state after IO failures 2026-10-29 13:35:19 +01:00
evgeny 61bdf4a6df Retain observed settings through read failures and retry without default resets 2026-10-29 13:35:19 +01:00
evgeny e8aeaaf365 Apply developer settings only after accepted persistence completes 2026-10-29 13:35:19 +01:00
evgeny a9495de90f Keep settings persistence alive after navigation and guard initial preference loading 2026-10-29 13:35:19 +01:00
evgeny a95245e272 Own ordered settings changes independently of the Compose screen 2026-10-29 13:35:19 +01:00
evgeny 299518e866 Preserve confirmed settings and manual socket choices after failures 2026-10-29 13:35:19 +01:00
evgeny de907c697b Match temporary IPv6 flags using canonical address bytes 2026-10-29 13:35:19 +01:00
evgeny d0d63c1d4b Keep voice cleanup independent of caller cancellation and stop playback promptly 2026-10-29 13:35:19 +01:00
evgeny 48a20cda8c Reject new capture while an IO teardown holds its lifecycle lock 2026-10-29 13:35:19 +01:00
evgeny 5ee87c535b Avoid capture-lock acquisition while rolling back a playback worker launch 2026-10-29 13:35:19 +01:00
evgeny 41ea2afaaa Verify explicit native cancellation failure and document independent audio ownership 2026-10-29 13:35:19 +01:00