evgeny
b4553db769
Reset selected GUI state during teardown and keep CHAT read watermarks separate from PM sequences
2026-10-28 00:59:00 +01:00
evgeny
6adfe5cf13
Centralize owned attachment downloads and key auto-play by channel and row
2026-10-28 00:59:00 +01:00
evgeny
f87ee63a1d
Preserve failed composer drafts and cancel PM submissions with a result
2026-10-28 00:59:00 +01:00
evgeny
707938d503
Bind remaining desktop commands atomically and cancel owned attachments
2026-10-28 00:59:00 +01:00
evgeny
0f36248d1e
Own and bind desktop radio call commands inside the bridge
2026-10-28 00:59:00 +01:00
evgeny
4b4f48963e
Own desktop call commands and bind them atomically to the core
2026-10-28 00:58:59 +01:00
evgeny
59cd456386
Allow cancellation of an empty file operation as a no-op
2026-10-28 00:58:59 +01:00
evgeny
7d789f68d4
Own desktop file commands and report cancellation through Qt
2026-10-28 00:58:59 +01:00
evgeny
4d18a7015d
Report cancelled composer submissions before releasing their owned requests
2026-10-28 00:58:59 +01:00
evgeny
bc5e6aa5a5
Document cancellation acknowledgments for member edit commands
2026-10-28 00:58:59 +01:00
evgeny
7e412d950a
Bind owned admin transfer requests to the selected database
2026-10-28 00:58:59 +01:00
evgeny
096e721faa
Return correlated member save and cancellation results to live GUI contexts
2026-10-28 00:58:59 +01:00
evgeny
f1f5d33788
Centralize owned settings and name requests in the GUI bridge
2026-10-27 17:27:04 +01:00
evgeny
1b695fe247
Own and cancel desktop bridge commands before core teardown
2026-10-27 02:25:05 +01:00
evgeny
8523448c3a
Reserve desktop edit dispatch and reject malformed update events
2026-10-26 22:49:45 +01:00
evgeny
20350338b8
Deliver committed edits to desktop without message notifications
2026-10-26 22:38:17 +01:00
evgeny
8e3c536cbb
Bridge desktop DM deletion requests and results
2026-10-26 22:11:39 +01:00
evgeny
962a2df3f8
Add local channel deletion to desktop channel settings
2026-10-26 10:47:39 +01:00
evgeny
8e74619501
Make chat joins atomic and test invitation lifecycle failures
2026-10-26 09:19:35 +01:00
evgeny
539f09004c
Use channel member snapshots for desktop participant details
2026-10-25 20:04:59 +01:00
evgeny
b68116eedf
Expose phone busy event to desktop call interface
2026-10-19 14:54:01 +02:00
evgeny
310d997af3
Deliver radio invitation events to desktop UI
2026-10-19 13:57:29 +02:00
evgeny
044a20d4a0
Clean desktop stream lifecycle and event bridge logging
2026-10-18 15:09:24 +02:00
evgeny
28826e050c
Add local UDP discovery and invitation delivery for chat clients
2026-10-18 14:46:04 +02:00
evgeny
9f813424bb
Deliver attachment key state changes to desktop UI
2026-10-18 02:15:25 +02:00
evgeny
0a5b9b50f1
Connect desktop stream bridge to core lifecycle and events
2026-10-12 22:09:39 +02:00
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.
2026-10-10 12:31:13 +02:00
evgeny
49e898b6f3
Deliver channel submission acknowledgements to the desktop composer
2026-10-08 00:24:35 +02:00
evgeny
33c98a014f
Notify about live incoming channel and direct messages
2026-10-07 15:54:25 +02:00
evgeny
e5d8c34514
Fix desktop uasync readiness for radio member mute requests
2026-10-07 13:49:06 +02:00
evgeny
7e19cbaf3a
Add local per-member radio mute controls on desktop and Android
2026-10-07 13:35:25 +02:00
evgeny
c1048686d1
Route feedback state and command results to the desktop thread
2026-10-06 21:34:38 +02:00
evgeny
8e3ff6fd81
Deliver group avatar publication results through the GUI bridge
2026-10-06 13:44:49 +02:00
evgeny
78bed5efe4
Route avatar events alongside file browser events in ChatGUI
2026-10-06 12:32:02 +02:00
evgeny
aca10e8268
Trace file bridge callbacks and use scoped VAD test logs
2026-10-05 21:34:39 +02:00
evgeny
b771e95997
Clear legacy GUI bridge and list messages from debug
2026-10-05 21:28:45 +02:00
evgeny
78a655bb05
Add asynchronous member file storage and desktop browser
2026-10-05 18:44:58 +02:00
evgeny
fb68e66ca4
Dispatch PM invitation results to desktop UI
2026-10-04 14:53:58 +02:00
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.
2026-10-02 17:18:24 +03:00
evgeny
225e11265f
Connect Qt preparation notifications to the conversation view
2026-10-01 18:39:31 +03:00
evgeny
55b21fdcda
Forward pinned attachment preparation events to Qt
2026-10-01 18:37:49 +03:00
evgeny
111432aa64
conn_mgr: race connection probes and report call path with correct RTT
2026-10-01 00:42:47 +03:00
evgeny
2d21c53b4b
Improve call buffering, CM handle lifecycle and radio PTT controls
2026-09-30 17:31:53 +03:00
evgeny
3131dcbb7c
Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing
2026-09-27 02:51:47 +03:00
evgeny
b90dc752d2
call: две фазы исходящего вызова — индикация + разные гудки (desktop/Android)
2026-09-23 19:16:53 +03:00
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).
2026-09-19 17:09:00 +03:00
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
2026-09-16 20:26:55 +03:00
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
2026-09-16 10:17:57 +03:00
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: сопутствующие изменения
2026-09-15 21:09:17 +03:00
evgeny
1345f44e10
chat: invite-ссылки с выбором достижимого узла + tcp_io фикс half-close FIN
...
- Общий модуль invite_build: сборка utun://-ссылок, авто-выбор лучшего
достижимого узла, список кандидатов (вынесено из android jni_bridge)
- chatgui: диалог invite с выбором узла (комбобокс), события INVITE_CANDIDATES /
INVITE_LINK_READY через gui_bridge
- headless/chatcli: invite <ch_id> [node_id], команда invite_nodes
- tcp_io: error_cb отличает грациозный EPOLLHUP (SO_ERROR==0) от реальной ошибки —
при приостановленном чтении FIN не роняет недослейные данные (фикс flaky half-close)
- run_test.sh: half-close echo на выделенном порту 19190 + отдельный DNAT (был недостижим)
2026-09-07 13:59:15 +03:00