Commit Graph
191 Commits
Author SHA1 Message Date
evgeny 05ab3b8054 Return complete channel snapshots and distinguish database errors from empty history 2026-10-29 13:35:41 +01:00
evgeny 2f4cded218 Preserve event callback lifetime and contain JNI delivery exceptions 2026-10-29 13:35:41 +01:00
evgeny 86f0ac7625 Route remaining JNI producers through the core task owner 2026-10-29 13:35:41 +01:00
evgeny 95f0e89567 Read JNI database and live network snapshots in the core worker 2026-10-29 13:35:41 +01:00
evgeny 8614ba5428 Use ordinary UTF-8 across JNI strings and test cancelled media ownership 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 f731ac340d Serialize bridge command publication and report rejected lifecycle requests 2026-10-29 13:35:41 +01:00
evgeny 8374c60b0e Publish message requests through the worker lifetime owner 2026-10-29 13:35:41 +01:00
evgeny 3ae8d12434 Keep submission IDs unique across ViewModels and document native cache transfer 2026-10-29 13:34:26 +01:00
evgeny ce80fbcd10 Expose committed PM file results through Android JNI 2026-10-29 13:34:26 +01:00
evgeny 1600f5710c Return explicit queue results for call signalling commands 2026-10-29 13:34:25 +01:00
evgeny d5a1e4b962 Request DM persistence acknowledgement and send canonical UTF-8 2026-10-29 13:34:25 +01:00
evgeny 98cd5bf81c Describe call video JNI buffers, return values and playout handle ownership 2026-10-29 13:34:24 +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 e32e4be28b Document JNI log encoding and failure containment contracts 2026-10-28 12:28:28 +01:00
evgeny 1c705e64ca Verify repeated JNI delivery and log subscription changes 2026-10-28 12:28:28 +01:00
evgeny a77fc553e7 Contain JNI logging failures and preserve UTF-8 payloads 2026-10-28 12:28:28 +01:00
evgeny 233a3f78d1 Pass image MIME and private conversation generation through Android JNI 2026-10-28 12:08:06 +01:00
evgeny d969b277e1 Assign a registered event ID to Android group avatar snapshots 2026-10-28 11:36:13 +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 4859d03f29 Return Android phone state queue acceptance through JNI 2026-10-27 21:25:51 +01:00
evgeny 067c1cd496 Own queued Android phone state data within the worker lifetime 2026-10-27 21:23:18 +01:00
evgeny 9e679462d4 Expose Android phone state posting through the C bridge API 2026-10-27 21:18:29 +01:00
evgeny ed1f4d8ea8 Preserve pending CoreActivity intent when the native queue rejects a request 2026-10-27 20:39:19 +01:00
evgeny 61266986e5 Route bridge activity requests through the worker owner 2026-10-27 20:10:00 +01:00
evgeny 1ed110d47c Validate CoreActivity ownership before mutations and cache completed JNI requests 2026-10-27 20:02:55 +01:00
evgeny 64c1019a52 Verify cancelled Android workers retain callbacks and keep SQLite owned by the core 2026-10-27 19:30:29 +01:00
evgeny 823bae076f Run Android service shutdown off the main thread and await it before startup 2026-10-27 19:07:05 +01:00
evgeny d6ea893f16 Preserve bridge callbacks until native worker shutdown succeeds 2026-10-27 18:57:36 +01:00
evgeny 50ea132c15 Recreate the Android core when regenerating its identity 2026-10-27 18:05:06 +01:00
evgeny 3b42547740 Report native Android database cleanup failures accurately 2026-10-27 17:18:13 +01:00
evgeny 3e96e429eb Preserve unsigned node IDs in Android invite previews
Encode JNI node IDs as decimal strings and decode both uint64 fields without floating point or signed parsing. Compare all invitation fields and binary contents. Cover boundary IDs, malformed JSON types, and model equality with nine JVM tests. Native build, invite codec/build tests, and both debug APK ABIs passed.
2026-10-27 14:22:32 +01:00
evgeny 7eaeb0e2f9 Preserve documentation audit and Android bridge fixes 2026-10-27 13:17:22 +01:00
evgeny fdb0381f5c fix(gui): retain sound preference keys until the queued request is copied 2026-10-27 07:25:26 +01:00
evgeny c8e1d120ba fix(android): include the owner block size contract for role parsing 2026-10-27 07:16:37 +01:00
evgeny e3ea2ef78f fix(chat): preserve unedited GUI tags and read complete role histories 2026-10-27 07:08:33 +01:00
evgeny 93057c9eb7 Adapt signed history regression fixtures to canonical revision envelopes 2026-10-26 22:41:56 +01:00
evgeny f83033d3a1 Guard Android PM history and pending deletion across asynchronous sends 2026-10-26 22:11: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 bdaff406be Forward Android frame mute through the native capture bridge 2026-10-26 17:14:18 +01:00
evgeny 8e74619501 Make chat joins atomic and test invitation lifecycle failures 2026-10-26 09:19:35 +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 5b5221189c Buffer stream PCM before playback and recover underruns without resets 2026-10-25 12:51:19 +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 fcb0768052 Protect SoundTouch lookahead when catching up live stream audio 2026-10-21 01:38:50 +02:00
evgeny 4fa3b18cc2 Feed Android stream mixer from prepared PCM without holding DSP lock 2026-10-21 01:18:56 +02:00
evgeny a538f99bf0 Expose viewer wake signals and complete audio independently on Android 2026-10-21 00:13:01 +02:00
evgeny 75806249bd Run Android players concurrently and fall back between decoders 2026-10-20 16:58:41 +02:00
evgeny 4a759115c9 Probe Android video codecs at 30, 50 and 60 fps 2026-10-20 00:09:56 +02:00