Commit Graph
136 Commits
Author SHA1 Message Date
evgeny f1f113a5f2 Describe readiness recovery when a rejected restart retains the core 2026-10-29 13:56:57 +01:00
evgeny 132e222415 Resume retained core owners and observe unexpected service loss 2026-10-29 13:35:42 +01:00
evgeny da540627fc Keep accepted commands bound to their instance while restart readiness closes 2026-10-29 13:35:41 +01:00
evgeny f15ca995b7 Close frontend readiness while a restart is pending and retain failed core state 2026-10-29 13:35:41 +01:00
evgeny 72ee8f2586 Release detached voice and PM file payloads when queued work is cancelled 2026-10-29 13:35:41 +01:00
evgeny 57bfadb04c Retain media request ownership until execution or worker cancellation 2026-10-29 13:35:41 +01:00
evgeny 5a4ddca190 Protect lifecycle producers and leave fatal signals to the platform 2026-10-29 13:35:41 +01:00
evgeny 8c0c17270e Own frontend tasks through worker teardown and marshal synchronous reads 2026-10-29 13:35:41 +01:00
evgeny 3df64b6744 Use voice commit receipts for both conversation types and document ownership 2026-10-29 13:34:26 +01:00
evgeny 2dbc45e63d Transfer Android ordinary attachment caches to the shared media worker 2026-10-29 13:34:26 +01:00
evgeny 31e461dca2 Carry voice PM receipts and document shared media completion semantics 2026-10-29 13:34:26 +01:00
evgeny e943879c50 Carry Android photo and video request IDs through PM preparation 2026-10-29 13:34:26 +01:00
evgeny ba1c4cf160 Add cross-platform BLE transport and Bluetooth settings
Integrate shared C transport with desktop and Android frontends, add radio probes and detailed Windows diagnostics, and fix GUI build dependencies and early configuration startup errors.
2026-10-29 10:51:19 +01:00
evgeny 4f5e46e9a9 Keep cache sources alive while accepted legacy image copies are pending 2026-10-28 12:08:06 +01:00
evgeny e4af3907c2 Prepare Android JPEG and PNG attachments for fixed channel or PM targets 2026-10-28 12:08:06 +01:00
evgeny a9cc6785a9 Expose authorized server addition to Android JNI 2026-10-28 11:04:56 +01:00
evgeny f4ef949482 Guard Android radio configuration with worker-owned tasks 2026-10-27 22:41:30 +01:00
evgeny 067c1cd496 Own queued Android phone state data within the worker lifetime 2026-10-27 21:23:18 +01:00
evgeny 4bece684da Queue Android activity updates while holding the worker lifetime lock 2026-10-27 20:07:51 +01:00
evgeny aca5f806c1 Keep worker callbacks atomic and verify failed shutdown preserves owners 2026-10-27 19:16:30 +01:00
evgeny d83d58c874 Keep Android shutdown independent of a retiring service 2026-10-27 18:55:29 +01:00
evgeny 1c82432de9 Own Android worker threads until cleanup and join finish 2026-10-27 18:52:46 +01:00
evgeny 50ea132c15 Recreate the Android core when regenerating its identity 2026-10-27 18:05:06 +01:00
evgeny 2ff51d0016 Persist Android identities atomically before updating config 2026-10-27 17:51:41 +01:00
evgeny 7eaeb0e2f9 Preserve documentation audit and Android bridge fixes 2026-10-27 13:17:22 +01:00
evgeny e5ca2e174c Honor core stop before and after Android restart with lifecycle regressions 2026-10-26 22:07:39 +01:00
evgeny f521bb37f4 fix(call): align audio frontend ownership with core lifecycle
Keep the borrowed audio provider on UTUN_INSTANCE across chat service restarts.
Attach and detach Android voice from the core worker and reject DSP startup
after detach. Preserve TX owner epochs, pending slots and foreign-instance RX
isolation. Remove the unused cross-thread online API and keep its check local
to call.c.

Add eight lifecycle regressions with real cores and the Android host bridge.
Audit public call, DSP, clock, headless and desktop audio contracts and record
the findings and validation scope.

Validation: voice/desktop 38/38, four native call suites, native and both Android
ABI builds, full check 204/204 plus proxy/burst/load. JVM results remain Gradle
UP-TO-DATE (155 app and 15 router). No hardware runtime validation.
2026-10-26 20:22:46 +01:00
evgeny 8e74619501 Make chat joins atomic and test invitation lifecycle failures 2026-10-26 09:19:35 +01:00
evgeny 8b0002e489 Disable UTUN by default in chat frontends and retain core bootstrap transports 2026-10-25 22:10:06 +01:00
evgeny 0e17756e19 Show stream playback buffer chains on desktop and Android
Send coalesced per-hop telemetry every 200 ms ahead of video DATA using the shared ETCP transport. Measure pending frames before ETCP handoff, retain stale and unavailable node values, and display the worst path with playback tempo.

Bump stream wire protocol to v7. Validate with 187 core tests, 21 desktop player tests, two Android indicator tests, and an Android APK build.
2026-10-25 15:21:23 +01:00
evgeny 4a785c2598 Improve stream recovery, delivery diagnostics and buffer indicators
Preserve essential FEC parts under pressure, coordinate stale-data gaps and reopen source subflows in parallel after transport failures.

Add per-peer network and playback diagnostics, Android and desktop buffer indicators, and regression coverage for Wi-Fi switching and congestion.
2026-10-25 01:18:02 +02:00
evgeny abf342534f Encrypt P2P call media and validate service IDs
Require signed and encrypted call audio/video using static identity keys. Fix attachment service ID collisions and media download handle lifetime; isolate LAN tests and audit the shared service registry.
2026-10-21 15:06:27 +02:00
evgeny 9fb4823df0 Batch Android viewer records and wake readers on data or stop 2026-10-21 00:13:01 +02:00
evgeny 0d9c728efe Test bounded batches, track budgets, notifications and FIN 2026-10-20 23:34:57 +02:00
evgeny 57d28376b6 Use independent shared viewers in the Android native bridge 2026-10-20 16:58:25 +02:00
evgeny 4fa9d474ab Track live stream catalogues independently for each owner 2026-10-20 16:27:10 +02:00
evgeny be295f768c feat(chat): add local DM deletion and improve Android member list
Delete local conversations atomically, retain replay protection and sequence counters, and guard asynchronous media work by history generation. Add Android avatar menu and confirmation, persistent file cleanup, and regression coverage.

Fix unnamed member wire padding and compact Android member action spacing.

Validation: 158 core tests passed; targeted DM tests, desktop build, Android unit tests and debug APK build passed.
2026-10-18 02:04:05 +02:00
evgeny 25d27bfffe Add Android native control for source audio state 2026-10-16 01:51:37 +02:00
evgeny 57a59df983 Bind shared call video port to desktop and Android core lifetime 2026-10-14 22:36:03 +02:00
evgeny 97fea6e809 Use shared media opening in desktop and Android viewers 2026-10-14 16:30:38 +02:00
evgeny 5a3999fbdb Prepare one Android media response per player request 2026-10-14 13:36:38 +02:00
evgeny 125f740a5f Use the shared publisher in Android and desktop stream bridges 2026-10-14 02:34:16 +02:00
evgeny de67de33df Report codec capabilities and document the expanded Android media header 2026-10-14 01:45:50 +02:00
evgeny 5677e8ec5f Initialize the publication media format with the selected codec 2026-10-14 01:09:30 +02:00
evgeny 8b6c72b704 Publish bounded 100 ms send telemetry from the Android media actor 2026-10-14 01:08:20 +02:00
evgeny 98655284b2 Discard stale playback snapshots before reseeking a media cursor 2026-10-13 23:39:45 +02:00
evgeny e1abcb5d69 Observe actual silent device intervals when adapting playback history 2026-10-13 23:26:55 +02:00
evgeny 9781f138ed Switch Android media delivery to demand reads from the shared RS ring 2026-10-13 22:53:13 +02:00
evgeny f15c97d11a Size Android publisher buffers for the signed batch format 2026-10-13 20:09:14 +02:00
evgeny 22b62699ac Describe stereo Opus in live media blocks 2026-10-13 14:14:24 +02:00