evgeny
5a9e61164b
Measure uasync CPU load and display it in desktop and Android GUIs
...
Sample thread CPU usage without waking idle loops, expose a one-second moving average, and refresh compact GUI indicators at 3 Hz while visible on Android. Add load and bridge regression coverage, streaming notes, and task list cleanup.
2 days ago
evgeny
e97885eb22
Expose member file commands through Android JNI
2 days ago
evgeny
7f3247bfcc
radio: add activation controls, live VAD meters and signal diagnostics
2 days ago
evgeny
fddbba217d
android: add level-triggered radio and inline activation settings
3 days ago
evgeny
44af542f61
chatgui: add radio activation by signal level with hysteresis
3 days ago
evgeny
a1e8bfe80a
android: keep radio VAD blocked until AudioTrack plays the receive tail
4 days ago
evgeny
368f629948
android: expose reply submission and anchored history in bridge
4 days ago
evgeny
7e19cbaf3a
Add local per-member radio mute controls on desktop and Android
5 days ago
evgeny
8dc7595e46
Preserve Android feedback state and supplementary Unicode characters
5 days ago
evgeny
2c31e3fe03
Expose UTF-8 feedback commands and full message identities on Android
5 days ago
evgeny
6e9a50f2ec
Bridge Android avatar catalogs and per-object transfer limits
5 days ago
evgeny
eae3ef5c32
android: parse decimal channel IDs for avatar requests and group keys
5 days ago
evgeny
b3c0a2fa7b
android: harden avatar cache reads and refresh current download sources
5 days ago
evgeny
15d0772a20
android: preserve avatar references in JSON refresh and live member snapshots
5 days ago
evgeny
8efe075679
android: add asynchronous avatar JNI operations and wire models
5 days ago
evgeny
93c0c5bdfc
Show channel member inviter in Android details
1 week ago
evgeny
658c248867
Request Android member snapshots on the core thread
1 week ago
evgeny
81f8f6d4d0
Use asynchronous post API for invitation requests
1 week ago
evgeny
9bdfb93b50
Expose PM invitation operations and membership checks through JNI
1 week ago
evgeny
123b47c612
Improve Android VAD lifecycle, audio settings and diagnostics
1 week ago
evgeny
a97e8bcc1f
docs: update file inventory and module header contracts
...
Refresh both AGENTS guides and clarify module purpose, usage, ownership, threading, return values and wire formats in headers. Remove the unused timeout_heap freed_count field and unimplemented getter.
1 week ago
evgeny
23368a5bbe
Add Android boot startup, lazy settings, emoji and DM calls
...
Add battery optimization controls and configurable boot startup. Keep message sounds in the application and render general settings lazily to avoid ANRs. Add animated emoji controls and live BGP availability for direct-message calls on Android and desktop.
1 week ago
evgeny
bdcf8b5634
Сохрани накопленные исправления аудио, async и диагностики
1 week ago
evgeny
c863b80917
Validate Android voice streams and keep playback cancellation off UI waits
1 week ago
evgeny
fe9441d63b
Acknowledge Android PM file ownership only after native enqueue
1 week ago
evgeny
72233d2365
Quiesce Android capture before detaching PCM and consume PM cache files
1 week ago
evgeny
c58b92ecd7
Render typed PM media using shared Qt message roles
1 week ago
evgeny
8403697013
Post Android PM reads and file sends to the core event loop
2 weeks ago
evgeny
9e3a417059
Synchronize standby transitions and immediate keepalive phase announcements
2 weeks ago
evgeny
0d44ada922
Improve Android radio capture lifecycle, VAD and PTT controls
2 weeks ago
evgeny
f12f61d7ee
call: add SpeexDSP AEC (acoustic echo cancellation) for desktop + Android
2 weeks ago
evgeny
1176411b79
radio: Silero VAD + auto-PTT; chatgui/android: app icon and background
2 weeks ago
evgeny
ce1f23fe46
Radio: stereo capture/playback with mono fallback; CAMCORDER source; bump RADIO_MAX_OPUS
...
- stereo capture: Android AudioRecord stereo (CAMCORDER source for stereo,
voice sources fall back to CAMCORDER) + desktop separate miniaudio
capture/playback devices (no asymmetric duplex)
- Opus stereo encode/decode, voice_jitter stereo (per-channel frame_size,
slot-based SoundTouch)
- radio_audio_start takes explicit capture_channels (stereo->mono fallback)
- RADIO_MAX_OPUS 256->512 (128kbps stereo frames up to 320B)
- radio_capture_stereo setting + desktop radio settings UI (opus mode/bitrate,
capture stereo)
- radio_send_to send stats logging (etcp_send ok/fail per second)
2 weeks ago
evgeny
331970a121
Radio: Opus mode/bitrate + mic source + PTT release tail; drop online status from member JSON
2 weeks ago
evgeny
3131dcbb7c
Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing
2 weeks ago
evgeny
cc0dcb071e
chat: UI настройки звука канала (Android toggle + JNI, desktop через C API) + trampoline
3 weeks ago
evgeny
b96ed8bd00
radio: PTT-радио в каналах (src/radio + chatgui + chatgui-android)
...
Новый модуль src/radio (radio/radio_audio/radio_headless) — push-to-talk
радио поверх topo-групп, доставка аудио в канал, headless-режим и тесты.
Интеграция в chatgui (ptt_hotkey_manager, radio_audio_engine, радионастройки,
вызовы) и chatgui-android (RadioAudioEngine, RadioOverlayService, UI).
3 weeks ago
evgeny
5293fdd3a9
call(android): звать call_audio_init перед start; логировать feed_pcm без instance
...
Без call_audio_init(inst) g_inst оставался NULL и call_set_audio_ops не
регистрировался: TX (feed_pcm) падал на !ua, RX (audio_ops->on_media) не
вызывался — тишина и спам 'callAudioFeed returned false'. Зеркалим desktop:
utun_bridge_call_audio_start теперь делает call_audio_init + call_audio_start.
4 weeks ago
evgeny
2de554f8b9
call: единый голосовой стек (libutun_voice) + SoundTouch на Android
...
- voice_jitter (кодированные Opus-кадры + decode-on-pull + SoundTouch time-stretch)
вместо PCM-буфера audio_jitter; излишек держится до декодирования
- call_audio.c/.h — единая реализация для desktop/Android/headless (C-интерфейс)
- libutun_voice (voice_sources.cmake): SoundTouch + voice_jitter + call_audio + call_tones
- Android: pull-модель (nativeCallAudioPull), убран Kotlin FIFO, ANDROID_STL=c++_static
- headless audio-сокет: PCM-протокол (decode-only, без тактирования), daemon остаётся C-only
- CALL_STATS расширен dropped/underruns; удалены audio_jitter.cpp и libutun_lite/call_audio.c
- тест test_voice_jitter (ёмкость/догон/стационар), test_call_headless переведён на PCM
4 weeks ago
evgeny
e4557b0473
dm: маршрутизация через общую группу (group_id), JSON-эскейпинг; звонки: иконки/UI в desktop и android
4 weeks ago
evgeny
b11e77e4c0
call: P2P аудиозвонки — сигналинг, релей медиа, аудио-контур, headless/desktop/android
...
- src/call/: сигналинг (call.c, call_proto.h, ETCP_RT_ID_CALL 0x36) + релей медиа
+ headless аудио-сокет (call_headless.c, call_audio_bind) + Opus/jitter/тоны
- chat: события CHAT_EVT_CALL_* (34–40), CHAT_EVT_DM_MESSAGES (41), DM-трамплины
- chatgui: call window, miniaudio I/O, audio_frame_ring, test_audio_jitter
- chatgui-android: CallScreen/IncomingCallDialog, аудио-роутинг, JNI, рингтон
- tests: test_call, test_call_headless
4 weeks ago
evgeny
73fe99b33f
dm: прямой обмен сообщениями (DM) + soundtouch + архитектура звонков
...
- src/dm/: dm_core/dm_crypto/dm_mailbox — прямой обмен сообщениями (DM)
- lib/soundtouch-master/: vendored SoundTouch (изменение темпа/высоты аудио)
- doc/dm_arch.md, doc/chat_call_arch.md: архитектура DM и звонков
- tests: test_dm.c, test_dm_e2e.c
- chat: рефакторинг chat_* модулей, member_sync, invite_build
- chatgui/chatgui-android: синхронизация с новым API чата
- lib/u_async, debug_config, utun_instance: сопутствующие изменения
4 weeks ago
evgeny
761f64cf76
chatgui-android: отображение REALITY-линков (TCP+REALITY) в статусе узлов и сокетов
4 weeks ago
evgeny
75e39d2fee
chat_join: модуль join-протокола, invite-ссылки v2, синхронизация мемберов
4 weeks ago
evgeny
9ee61dce6c
fix: ncd handle UAF in topo_recovery and topo_group_invite callbacks
...
topo_recovery_callback: detach cb on UP handoff and close handle on
DOWN/TIMEOUT so no handle with cb_arg==ctx outlives ctx (ASAN
heap-buffer-overflow in topo_recovery_callback).
tgi_to_channel_cb: force_close handle on NCD_EVENT_TIMEOUT so a late UP
cannot fire into the freed tgi_conn_ctx.
Also: android chatgui reverseLayout scroll + msg order/stable pagination.
4 weeks ago
evgeny
7c8d65db78
chat: локальное удаление канала (Android) + db_sync инстансы в куче
4 weeks ago
evgeny
ff53c735dd
chat: превью медиасообщений в списке каналов (Android + desktop)
4 weeks ago
evgeny
7bba39ddcb
nodeinfo: 2 адреса на сокет (до/после NAT) + типы адресов local/public/nat/nat_eim/nat_strict
...
- topo_node: сокет рекламирует INTERFACE (до NAT) + NAT (после NAT, EIM);
strict/direct отдельным адресом не передаются
- topo_node_sqlite: addr_type_classify различает NAT_VERIFIED_*; добавлен
ADDR_TYPE_NAT (тип неизвестен), fallback больше не даёт DIRECT по IP
- chat_member: бейдж NAT-типа по приоритету (public>nat_eim>nat>nat_strict>local)
вместо MIN(addr_type)
- GUI (desktop+android): адреса мембера с socket_id и ролью (local/public/nat/nat_eim/nat_strict)
4 weeks ago
evgeny
d7bb58c6fb
chat: автоподключение к узлам группы (вкл/выкл) + ручной connect к узлу (desktop+android); фикс reinit при QR-join
1 month ago
evgeny
5b31a765c2
chatgui-android: auto_sockets=android — сокеты из конфига, лёгкое обновление без полного рестарта
...
- auto_sockets три-режимный: off/system/android; android берёт сокеты из [server] конфига
- auto_socket_reload_config: reconcile сокетов (remove→create) по имени+addr:port, сохранение портов
- etcp_create_server_socket вынесен из init_sockets; stcp_server_list_find_by_sock
- instance_lite_update_sockets + JNI nativeUpdateSockets + NativeLib.updateSockets
- NetworkChangeMonitor: updateSockets вместо restart; порты сохраняются при смене сети
1 month ago