evgeny
a069d11ef9
Protect REALITY STCP traffic with authenticated TLS-like records
2026-10-07 12:30:45 +02:00
evgeny
a49cf5434e
Add randomized ETCP padding and isolate STCP CTR streams per connection
2026-10-07 10:45:42 +02:00
evgeny
a014d518bf
Test atomic history schema repair and preserved message data
2026-10-07 00:26:59 +02:00
evgeny
e86de44259
Test poll synchronization through three nodes and chat restart
2026-10-06 22:30:52 +02:00
evgeny
e068fe5d3a
Test poll codecs, voting rules and delayed source messages
2026-10-06 21:31:20 +02:00
evgeny
4f4e63bb0b
Test feedback signatures, versions, cancellation and atomic pages
2026-10-06 20:08:53 +02:00
evgeny
46f4ce7091
Test real group avatar block delivery, permissions and recovery
2026-10-06 13:48:14 +02:00
evgeny
5d1b8d26e7
Daemonize before creating core workers
2026-10-05 21:19:19 +02:00
evgeny
78a655bb05
Add asynchronous member file storage and desktop browser
2026-10-05 18:44:58 +02:00
evgeny
ba7146f90a
Fix HTTP proxy framing, keep-alive and stream lifecycle
2026-10-05 09:27:23 +02:00
evgeny
b9af72e71d
Test PM invitation cancellation, commit errors and joining another group
2026-10-04 15:12:26 +02:00
evgeny
c9131fff39
Ship deterministic speech fixture for VAD regressions
2026-10-03 01:48:37 +03:00
evgeny
7ec5f931bb
Defer automatic retries until Android standby wakes
2026-10-02 11:56:44 +03:00
evgeny
f4b273d0be
Cover UP-based chat peer selection and fallback transitions
2026-10-02 11:50:28 +03:00
evgeny
bdcf8b5634
Сохрани накопленные исправления аудио, async и диагностики
2026-10-02 01:49:32 +03:00
evgeny
418329962d
Test pinned preparation targets, worker ownership and typed offline media
2026-10-01 18:55:34 +03:00
evgeny
14935378bb
Check queued worker completion cancellation and attachment codec tests
2026-10-01 18:00:02 +03:00
evgeny
a90274f24c
Test event-loop heartbeat during sustained PM file encryption
2026-10-01 16:31:51 +03:00
evgeny
76497481f7
Test direct and offline DM media with separate supernode and storage nodes
2026-10-01 16:04:35 +03:00
evgeny
9e3a417059
Synchronize standby transitions and immediate keepalive phase announcements
2026-09-30 20:42:40 +03:00
evgeny
f12f61d7ee
call: add SpeexDSP AEC (acoustic echo cancellation) for desktop + Android
2026-09-29 17:01:30 +03:00
evgeny
1176411b79
radio: Silero VAD + auto-PTT; chatgui/android: app icon and background
2026-09-29 16:19:25 +03:00
evgeny
e1946b208d
Preserve proxy TCP streams across connect, backpressure and FIN
2026-09-29 04:00:34 +03:00
evgeny
7a41fcf512
Notify TCP writers when the final synchronous send drains
2026-09-29 03:57:15 +03:00
evgeny
518df33b0e
Fix UDP and ICMP packet construction at the TUN boundary
2026-09-29 03:56:55 +03:00
evgeny
b76e6553bc
Reconcile BGP paths and advertise selected routes per neighbor
2026-09-28 14:37:44 +03:00
evgeny
72fee9e245
Separate core, UTUN and chat lifecycles with owned asynchronous work
2026-09-28 11:39:08 +03:00
evgeny
52ef7a4b3c
Own recovery attempts in group sessions and require restored routes
2026-09-27 23:06:48 +03:00
evgeny
66c59501fc
Track topology exchange readiness per group and peer
2026-09-27 22:14:03 +03:00
evgeny
bce17d9cfc
Route UTUN configuration and group ownership through NCD
2026-09-27 21:59:32 +03:00
evgeny
1a8072e9b2
Release group NCD ownership when destroying peers
2026-09-27 20:08:17 +03:00
evgeny
ec51b2d61f
Version signed node snapshots with persistent timestamps
2026-09-27 19:11:11 +03:00
evgeny
3e25bcef02
Refactor Merkle sync into bounded bidirectional rounds with atomic member updates
2026-09-27 14:44:39 +03:00
evgeny
1b92b4885b
Restrict dynamic auto socket test to Linux
2026-09-27 12:48:40 +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
265421eb96
tun proxy: фикс TCP-суммы (нечётный pbuf), FIN до дренажа to_lwip, tcp_bind/rexmit_fast/active_pcbs_changed + нагрузочный burst-тест
2026-09-25 23:36:45 +03:00
evgeny
8a9184675a
radio: дедупликация дублей в mesh + фикс OOB в hop_list
...
- radio_recv: кэш (src,stream,seq) с TTL 2с гасит кадры, пришедшие по второму пути (diamond/mesh)
- фикс записи за границу new_hops[hop_count] при hop_count==RADIO_MAX_HOPS
- счётчик c_dup_dropped + radio_dup_dropped() для диагностики
- тест test_radio_mesh (4 узла, diamond): C получает ровно N кадров, dup>0
2026-09-19 18:16:42 +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
1de1409699
conn_mgr: handle-based API (conn_mgr_open/close), фазы DIRECT/REVERSE/INDIRECT, тесты phases+handles
2026-09-19 09:31:08 +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
75e39d2fee
chat_join: модуль join-протокола, invite-ссылки v2, синхронизация мемберов
2026-09-14 19:57:27 +03:00
evgeny
d0dfa97a47
transport: SOCKS5-прокси для ETCP-линков (CONNECT + UDP ASSOCIATE + пинги)
2026-09-14 00:24:11 +03:00
evgeny
ddfffad1ed
conn: сопоставление сокетов по ролям (direct/nat/local) + hairpin; NTP-детект оффлайна
...
- sock_match: единая классификация сокетов (DIRECT/NAT/LOCAL) и адресов (PUB/PRIV/UNREACH)
- eim приравнен к direct; на приватный адрес — только с приватного интерфейса;
оба EIM за одним NAT (одинаковый публичный IP) — только через LAN
- topo_node: LOCAL-сокеты рекламируются (INTERFACE), private скрыт,
NAT-адрес не рекламируется для strict и при оффлайне
- ntp: флаг reachable по циклам + пере-анонс nodeinfo при смене доступности
- cm_direct_add_links / ncd_create_links / conn_match_candidate_sockets на sock_match
- test_sock_match: unit-тесты классификации и сопоставления
2026-09-13 16:48:00 +03:00
evgeny
6c9a47b201
media_delivery: диагностика маршрутизации md_send/md_dl_send/router_deliver (conn, subcmd, no-route) + тест test_media_delivery_chat
2026-09-11 23:48:31 +03:00
evgeny
d886a2ff84
Диагностика коллизии линков + детектор дубликата node_id + reality-конфиг autogen
2026-09-10 14:40:45 +03:00
evgeny
898a0a4a66
reality: реклама reality-параметров сокетов через BGP и применение к исходящим TCP-линкам
2026-09-10 11:24:17 +03:00
evgeny
edb3bb36e1
reality: TLS-камуфляж для STCP (ClientHello/ServerHello + релей на реальный сайт)
2026-09-10 01:11:26 +03:00
evgeny
f28d3e91f7
media: рефакторинг загрузки блоков — конечный автомат, фейловер, watchdog простоя
...
- media_download: состояние блока (IDLE/CONN/REQ/RECV/WAIT/DONE/FAILED),
кандидаты-держатели (MD_MAX_HOLDERS_PER_BLOCK), фейловер + ретраи (MEDIA_DL_MAX_ATTEMPTS),
watchdog простоя (MEDIA_DL_STALL_TIMEOUT_TB) вместо фейкового времени
- media_delivery: настраиваемые dl_stall_timeout_tb / dl_max_attempts
- chat_msg: пометка ошибки скачивания в local_attrs ("st":"er") для UI
- tests: новый test_media_download_timeout (watchdog/фейловер), рефакторинг
test_media_delivery_download/full
- chatgui-android: состояние 'error' у вложений/видео (иконка + tap to retry)
2026-09-08 06:53:48 +03:00