evgeny
bdcf8b5634
Сохрани накопленные исправления аудио, async и диагностики
2 days ago
evgeny
b1e3193899
Document typed PM media, shared preparation and completed validation
3 days ago
evgeny
142eefaf86
Record completed PM media integration and validation results
3 days ago
evgeny
7e780bb6a7
Document PM file custody, worker ownership and client integration
3 days ago
evgeny
6c86e380a8
Record DM stage validation and pending media delivery work
3 days ago
evgeny
bd550159f0
Verify DM queues drain beyond one delivery batch after restart
3 days ago
evgeny
43c89ca1ed
Document implemented DM guarantees and remaining media integration
3 days ago
evgeny
ce5f5bb7d0
Improve Android onboarding, member UI and PTT permissions
3 days ago
evgeny
577bfb4e6f
Record independent audio startup checks and phone updates
3 days ago
evgeny
fbf50b093d
Document independent call audio startup and delivery reserve
3 days ago
evgeny
bc797550d9
docs: record SM startup timings after phone update
3 days ago
evgeny
5ebab7072c
docs: record call startup validation results
3 days ago
evgeny
9ff4e68246
docs: describe call audio startup and loss tone gating
3 days ago
evgeny
a3f6b6e86e
docs: outline simple Android call startup improvements
3 days ago
evgeny
6f66df61f7
docs: record false audio loss tone during call startup
3 days ago
evgeny
72b5a9887f
chatgui: measure duplex audio stalls and record SM call evidence
3 days ago
evgeny
076cc3c617
docs: record full recovery checks and root socket test
3 days ago
evgeny
91a69b939c
docs: record conn_mgr recovery validation and check timeout limitation
3 days ago
evgeny
111432aa64
conn_mgr: race connection probes and report call path with correct RTT
3 days ago
evgeny
9e3a417059
Synchronize standby transitions and immediate keepalive phase announcements
4 days ago
evgeny
3c5c9604b3
Keep Android calls active independently of screen and UI
4 days ago
evgeny
2d21c53b4b
Improve call buffering, CM handle lifecycle and radio PTT controls
4 days ago
evgeny
0d44ada922
Improve Android radio capture lifecycle, VAD and PTT controls
4 days ago
evgeny
f12f61d7ee
call: add SpeexDSP AEC (acoustic echo cancellation) for desktop + Android
5 days ago
evgeny
1176411b79
radio: Silero VAD + auto-PTT; chatgui/android: app icon and background
5 days ago
evgeny
74ca98b38f
proxy: rename pcb guard, dedupe abort; tasks: FIN_WAIT_2 leak
5 days ago
evgeny
e1946b208d
Preserve proxy TCP streams across connect, backpressure and FIN
5 days ago
evgeny
72fee9e245
Separate core, UTUN and chat lifecycles with owned asynchronous work
6 days ago
evgeny
bce17d9cfc
Route UTUN configuration and group ownership through NCD
7 days ago
evgeny
26e6c05313
Apply fresh BGP addresses to shared NCD connections
7 days ago
evgeny
ec51b2d61f
Version signed node snapshots with persistent timestamps
7 days ago
evgeny
10d3ecfda4
Record final root transport and full suite validation
7 days ago
evgeny
03f71fd94e
Bound ETCP receive window and fix timestamp and allocator UB
7 days ago
evgeny
3131dcbb7c
Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing
1 week ago
evgeny
cc269e810c
Звонки: надёжность отмены (INVITE-кодограмма + watchdog) и вибрация входящего по ringer-режиму
1 week ago
evgeny
b90dc752d2
call: две фазы исходящего вызова — индикация + разные гудки (desktop/Android)
2 weeks ago
evgeny
6d3ad965ee
topo: remember REQUEST_TABLE for not-yet-created groups, fulfill on create
...
При REQUEST_TABLE для ещё не созданной группы (CHAT-канал не загружен) пир
дропал запрос, и проситель навсегда не узнавал таблицу — односторонняя
видимость (звонок android→linux падал «peer offline»). Теперь запрос
запоминается в pending_table_reqs[32] и выполняется при создании группы
(topo_group_fulfill_table_reqs → handle_request_table).
Попутно: test_chat_join_e2e — критерий успеха через CHAT_EVT_CONNECT_RESULT
(JOIN_READY) вместо senders_list; doxygen-комментарии в etcp_api.h.
2 weeks ago
evgeny
51d6d22a27
sock_match: классификация сокета по адресу, а не по type из конфига (fix Q8/Android→LAN)
...
ip_is_public() вынесен в lib/platform_compat (единый классификатор IPv4 с ntohl).
auto_socket_reconcile_config: тип сокета выставляется по фактическому адресу.
sock_collect_views: has_priv/has_inet/is_eim — по классификации адреса и NAT-детекции.
is_local_subnet упрощён до !ip_is_public(). Тест test_sock_match обновлён.
3 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
3 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
3 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: сопутствующие изменения
3 weeks ago
evgeny
75e39d2fee
chat_join: модуль join-протокола, invite-ссылки v2, синхронизация мемберов
3 weeks ago
evgeny
5b8c725c01
etcp_router: round-robin send + контроль заполненности send_q через waiter на send_input_q
4 weeks ago
evgeny
fbea9c3869
socks_proxy: fix client stall + non-blocking DNS via async_dns
...
- fix HTTP_STATE_RELAY == SOCKS_STATE_CONNECTING enum collision (relay data dropped)
- fix wrong waiter cancel (etcp_router_waiter_cancel -> etcp_router_cancel_send_ready)
- add backpressure retry timer, restore lost queue_resume_callback, defer FIN on pending tx_buf
- async_dns: /etc/hosts fast-path + hosts loading (avoid 4s DNS timeout for localhost)
1 month ago
evgeny
f47ad7d87f
tcp_proxy: fix throughput (tx_queue backpressure) + connect timeout + integration test
...
- Router: unified service delivery format [svc_id][src][dst][payload] (end-to-end src/dst from SVC_ROUTE header)
- tcp_proxy_client: replace single tx_buf drop-on-backpressure with bounded tx_queue + send_q waiter + retry timer (no data loss, bulk window reopen — removes 62.5ms delayed-ACK stall)
- tcp_io: configurable connect timeout (tcp_conn_set_connect_timeout)
- tcp_proxy_server: connect_timeout config option (ms, default 2000, 0=off)
- check.sh: run tcp_proxy_full integration test with sudo (skip if passwordless sudo unavailable)
- test_tcp_io: connect timeout unit test; docs (lwip_nuances.md)
1 month ago
evgeny
3d59e5f322
chat: headless invite_to command + invite-flow integration test
...
- chat_headless_control.c: новая команда invite_to (inviter-side invite по адресам)
- chat_client.py / chatcli: клиентский метод и CLI-команда invite_to
- tools/chat_invite_test.py: headless-тест инвайтера-side (CHANNEL_INVITE → autojoin → member_sync)
- topo: guard node_id=0 в cm_open/process_nodeinfo + детализация send_nodeinfo warn
- cleanup: удалить устаревшие doc/*.txt, *.md заметки
2 months ago
evgeny
38c9f229bc
stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test
...
- u_async.c: process immediate_queue BEFORE epoll_wait in uasync_poll
- stcp_link.c: defensive NULL etcp_conn/etcp_link in stcp_link_close
- utun_instance.c: move stcp_server_list_destroy_all to Phase J (before ETCP),
add deferred drain in both Phase J and L
- stcp.h/c: STCP_HS_ENC_CLIENT 6→38, STCP_HS_ENC_SERVER 7→39,
exchange ed25519_pubkey in both handshake directions
- etcp_connections.c: copy peer_ed25519 from STCP to ETCP_CONN in
etcp_link_enter_ready_tcp; guard link->etcp in tcp_link_close_cb
- chat_sync.c: fix lk->conn NULL dereference for TCP links
- test_stcp.c: update stcp_server_create/stcp_client_connect callsites
- tools/chat_tcp_test: change transport udp→tcp
2 months ago
evgeny
d773f1724a
refactor: STCP connections as ETCP links (is_tcp)
...
- Add is_tcp, tcp_link, tcp_reconnect_* fields to ETCP_LINK
- Remove transport_link from ETCP_CONN, add tcp_link_count
- stcp_link: replace embedded etcp_conn with pointer; add etcp_link backpointer
- stcp_link: link_rx_cb routes ETCP data to etcp_conn_input
- stcp_link: call on_close_cb in close
- New TCP functions: etcp_link_enter_ready_tcp, etcp_tcp_link_start_connect,
etcp_tcp_link_start_reconnect, tcp_link_close_cb, etcp_tcp_send
- etcp_link_new: handle NULL conn for TCP links; skip enter_init for TCP
- etcp_link_close: close stcp_link for TCP
- etcp_encrypt_send: redirect TCP to etcp_tcp_send (skips AES-CCM)
- tcp_server_on_link: create ETCP_LINK(is_tcp=1) + enter_ready_tcp
- etcp_connect: TCP addrs -> etcp_tcp_link_start_connect
- Remove ctx->tcp_link/tcp_ready
- test_stcp_traffic: find stcp_link via links->is_tcp instead of transport_link
- 66/68 tests pass; 2 STCP tests expected to fail (integration not complete)
2 months ago
Evgeny
bb425c6722
db_sync v2: positional sync per-peer (synced_pos), datahash instead of chain_hash, no cascade on PUSH, single cascade after SEND_DATA batch, startup chain verification. PRAGMA synchronous=NORMAL + wal_autocheckpoint=10000 for performance.
3 months ago
Evgeny
c0935aba6c
docs: update AGENTS.md and etcp_arch.md
3 months ago