Commit Graph
132 Commits
Author SHA1 Message Date
evgeny e5a1fc5a48 Start and stop attachment key owner with chat service 2026-10-18 02:13:54 +02:00
evgeny be295f768c feat(chat): add local DM deletion and improve Android member list
Delete local conversations atomically, retain replay protection and sequence counters, and guard asynchronous media work by history generation. Add Android avatar menu and confirmation, persistent file cleanup, and regression coverage.

Fix unnamed member wire padding and compact Android member action spacing.

Validation: 158 core tests passed; targeted DM tests, desktop build, Android unit tests and debug APK build passed.
2026-10-18 02:04:05 +02:00
evgeny 7f9eef8579 Add shared absolute video playout scheduler with bounded audio phase 2026-10-15 15:54:53 +02:00
evgeny 96e8f6c0ac Test real decoder fixtures and malformed video parameter sets 2026-10-14 23:13:25 +02:00
evgeny ce2560ef4b Wire shared video validator and log negotiated profiles 2026-10-14 23:08:46 +02:00
evgeny 57a59df983 Bind shared call video port to desktop and Android core lifetime 2026-10-14 22:36:03 +02:00
evgeny b466ec30e3 Acknowledge video capabilities before sending frame data 2026-10-14 20:48:58 +02:00
evgeny b00c6a2b6d Test call video negotiation and frame wire boundaries 2026-10-14 20:44:42 +02:00
evgeny 801050bacb Exercise video rate feedback with simulated channel changes 2026-10-14 18:41:33 +02:00
evgeny 859bb733af Build and test router delivery history boundaries 2026-10-14 18:33:05 +02:00
evgeny f5d112a712 Share bounded media publication and send telemetry across frontends 2026-10-14 02:32:14 +02:00
evgeny cd8a5392d5 Expose source codec selection and aggregate send telemetry through JNI 2026-10-14 01:09:30 +02:00
evgeny b6652c7c7f Record unique acknowledged packets at the instance transport boundary 2026-10-14 01:06:56 +02:00
evgeny f655f2c1d5 Keep playback audio compatible with the Android voice build 2026-10-13 22:46:02 +02:00
evgeny dc7cebaa65 Register indexed media reads and retain only two working blocks 2026-10-13 22:12:51 +02:00
evgeny 2fac28b7e9 Build and register the shared stream playback controller test 2026-10-13 22:04:16 +02:00
evgeny 5c23c10c04 Register audiovisual stream sources and regression target 2026-10-12 01:46:06 +02:00
evgeny ff69552a61 Measure owned endpoint mapping and inbound reachability separately 2026-10-12 00:01:40 +02:00
evgeny ef48fa2a37 Enable automatic upstream selection for subscriptions with lifecycle-safe cleanup 2026-10-12 00:01:39 +02:00
evgeny e90ad5acbd Account stream demand and confirm sustained queue pressure 2026-10-12 00:01:39 +02:00
evgeny c2179b3959 Implement NCD stream issuances, ring cursors and routed reverse 2026-10-12 00:01:39 +02:00
evgeny b31aa9f71d Retain stream block paths and locate gaps in ring delivery 2026-10-12 00:01:39 +02:00
evgeny 30106c8f93 Attach stream subscriptions to CHAT lifecycle and member profiles 2026-10-12 00:01:39 +02:00
evgeny ec82d95a03 Add signed FEC stream core and source buffering 2026-10-12 00:01:38 +02:00
evgeny 2c5deafe56 Add independent STUN NAT probes with RFC 5780 discovery 2026-10-11 23:35:47 +02:00
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 48d7f2b21b Build poll modules and adapt media insertion callbacks 2026-10-06 21:24:53 +02:00
evgeny 6437bf780b Include feedback source in the core library source list 2026-10-06 20:09:48 +02:00
evgeny 8121f93d2e Build feedback model and expose committed state events 2026-10-06 20:06:38 +02:00
evgeny 56897368b3 Own group avatar synchronization in the chat service lifecycle 2026-10-06 13:41:55 +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 20a1211e09 Add GPLv3 licensing and bundle third-party notices 2026-10-04 14:18:18 +02:00
evgeny 1b3794e9f9 Include common attachment preparation in both core targets 2026-10-01 17:50:46 +03:00
evgeny c7310e1fad Register shared voice encoding in core build targets 2026-10-01 17:43:10 +03:00
evgeny 72d1d3f582 Validate PM attachment metadata before committing messages 2026-10-01 17:41:19 +03:00
evgeny 55c9d79a01 Integrate atomic media registration and orderly transfer/worker shutdown 2026-10-01 15:53:53 +03:00
evgeny 3d0ab35efe Register file transfer and DM media services in the common core 2026-10-01 15:22:10 +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 3e25bcef02 Refactor Merkle sync into bounded bidirectional rounds with atomic member updates 2026-09-27 14:44:39 +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 d237dfec7c diag: кольцевой трейс вызовов teardown + дамп при SIGSEGV (размотка UAF link close) 2026-09-22 20:52:02 +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 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