evgeny
9e3a417059
Synchronize standby transitions and immediate keepalive phase announcements
22 hours ago
evgeny
e914a1bdc1
Improve Android member details contrast
23 hours ago
evgeny
b36c685cfa
Show ongoing Android calls on the lock screen
23 hours ago
evgeny
3c5c9604b3
Keep Android calls active independently of screen and UI
24 hours ago
evgeny
2d21c53b4b
Improve call buffering, CM handle lifecycle and radio PTT controls
1 day ago
evgeny
752c1f140c
Add unified Android dark theme and improve UI contrast
1 day ago
evgeny
db3cacd33e
Rename Android app to vibechat
1 day ago
evgeny
0d44ada922
Improve Android radio capture lifecycle, VAD and PTT controls
1 day ago
evgeny
745ec3dbd2
android radio: preserve output route on reconfigure, link input/output settings
2 days ago
evgeny
15958a078e
android: self-managed Telecom ConnectionService for call audio routing
2 days ago
evgeny
61bf235ef4
radio: PTT double-tap latch + single-tap off (in-chat & overlay); compressor initial gain = mid-range
2 days ago
evgeny
556b0bc7b7
call/radio: mic AGC compressor + selectable input device; proximity lock
2 days ago
evgeny
f12f61d7ee
call: add SpeexDSP AEC (acoustic echo cancellation) for desktop + Android
2 days ago
evgeny
1176411b79
radio: Silero VAD + auto-PTT; chatgui/android: app icon and background
2 days ago
evgeny
fdec5b65c5
Add independent radio compressor and Android audio controls
3 days 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)
3 days ago
evgeny
331970a121
Radio: Opus mode/bitrate + mic source + PTT release tail; drop online status from member JSON
3 days ago
evgeny
904a9fbda1
docs: refresh development guides for current architecture
3 days ago
evgeny
72fee9e245
Separate core, UTUN and chat lifecycles with owned asynchronous work
3 days ago
evgeny
3131dcbb7c
Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing
5 days ago
evgeny
018c8e795d
android: фикс UAF AudioTrack при переключении группы рации (start → releaseLocked)
5 days ago
evgeny
0209bcf5d3
android: рация — единый режим per-канал, не гаснет при выходе/заходе в группу
5 days ago
evgeny
3f7b4351cd
stcp: фикс UAF log_dump, дренаж очередей при закрытии, защита pre-closed серверной ветки, логирование тихих сбросов rx
6 days ago
evgeny
ceaf466b1c
chatgui-android: входящий звонок поверх блокировки (inline-оверлей) + вибрация всегда кроме silent
1 week ago
evgeny
cc269e810c
Звонки: надёжность отмены (INVITE-кодограмма + watchdog) и вибрация входящего по ringer-режиму
1 week ago
evgeny
b90dc752d2
call: две фазы исходящего вызова — индикация + разные гудки (desktop/Android)
1 week ago
evgeny
0e625da109
call: ретрансмит INVITE каждые 2с + fail-fast при отсутствии маршрута (6с)
1 week ago
evgeny
cc0dcb071e
chat: UI настройки звука канала (Android toggle + JNI, desktop через C API) + trampoline
1 week ago
evgeny
5628138d16
etcp: keepalive sleep-протокол на флагах (KA_FLAG_SLEEP + sleep_time, announce-retry, ack/echo)
1 week ago
evgeny
2f3001458f
android: standby keepalive sync + rx logging during sleep
1 week ago
evgeny
9793733cd5
chatgui: диагностика воспроизведения голосовых сообщений (Windows)
...
- sound_manager: ma_engine_init/playRawPcm логируют через DEBUG_* (qWarning/qDebug терялись в GUI-приложении без консоли); детальный результат старта PCM (rc/is_playing/cursor)
- main: ранняя инициализация лога в GUI-потоке до SoundManager::init, чтобы диагностика инициализации попала в файл
- messagedelegate: лог клика по Play/timeline (filePath/dlState/существует ли файл)
- voiceplayback: лог заголовка opus (sr/ch/frameSamples)
Попутные правки:
- u_async: фикс двойного close wakeup_pipe (eventfd/Windows)
- chat_core: NULL-guard в get_db/is_initialized
- android: sqlite открывается в utun_instance_init, cleanup stale-потока без утечки fd
- android SettingsScreen: компактная раскладка имени интерфейса
1 week ago
evgeny
01987a75d0
chatgui: verify FFmpeg DLL deployment + fix dependency resolution order
1 week ago
evgeny
a7a3666d85
radio: AGC release-rate (без кликов), jitter dead-zone, TX/RX-статистика, FGS-гонка и кэш настроек
2 weeks ago
evgeny
ba1c2d85d3
reality_relay: async DNS вместо getaddrinfo + AGC-компрессор по умолчанию (-12 dBFS)
2 weeks ago
evgeny
6b92964794
radio/android: PTT FGS microphone permission + детект потери микрофона
...
- FOREGROUND_SERVICE_MICROPHONE запрос + foregroundServiceType microphone|specialUse (Android 14+)
- RadioOverlayService.start: не стартовать без mic-разрешения, ServiceCompat.startForeground с TYPE_MICROPHONE
- RadioAudioEngine: micDead-флаг и лог при обрыве captureLoop/read
- radio.c: лог первого кадра burst на транзитных узлах
- SettingsScreen: категория radio в списке debug-категорий
2 weeks ago
evgeny
5e955168d2
chatgui-android: PTT-оверлей — talking flow, цвет idle/talking, drag-lock
...
- RadioAudioEngine: StateFlow talking для реактивной подсветки кнопки
- RadioOverlayService: градиент idle/talking, drag-lock, сброс isShown при destroy
- ChatScreen: скрывать PTT-кнопку при активном оверлее, подсветка по talking
2 weeks ago
evgeny
4a785772be
chatgui-android: PTT по volume-кнопкам (вверх/вниз) + синхронизация оверлея
...
- volume up/down обе держат PTT (holdCount), настройка radio_volume_ptt
- syncRadioOverlay при включении/выключении рации
2 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).
2 weeks ago
evgeny
1de1409699
conn_mgr: handle-based API (conn_mgr_open/close), фазы DIRECT/REVERSE/INDIRECT, тесты phases+handles
2 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.
2 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
2 weeks ago
evgeny
e4557b0473
dm: маршрутизация через общую группу (group_id), JSON-эскейпинг; звонки: иконки/UI в desktop и android
2 weeks ago
evgeny
b483335c06
bgp/ncd: владение conn через NCD-handle в senders_list; call audio route persist + incoming call sound
2 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
2 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: сопутствующие изменения
2 weeks ago
evgeny
761f64cf76
chatgui-android: отображение REALITY-линков (TCP+REALITY) в статусе узлов и сокетов
2 weeks ago
evgeny
481872d5db
chat: invite-ссылки с несколькими адресами + ncd-адреса узлов (join)
2 weeks ago
evgeny
75e39d2fee
chat_join: модуль join-протокола, invite-ссылки v2, синхронизация мемберов
2 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.
2 weeks ago
evgeny
369b253bdb
chatgui-android: автоскролл чата вниз при открытии клавиатуры и своих сообщениях
2 weeks ago