Commit Graph
97 Commits
Author SHA1 Message Date
evgeny bd175ac87f Keep per-record fallback distinct from membership revocation 2026-11-04 00:29:59 +01:00
evgeny b0c762aea7 Introduce per-exchange member versions in the existing peers table 2026-11-04 00:28:54 +01:00
evgeny 5f2eb2ef70 Enforce authenticated service admission in the router 2026-11-03 18:53:50 +01:00
evgeny 8f85ed9d17 Implement separate transport and group membership admission checks 2026-11-03 16:29:22 +01:00
evgeny 6a1ef52c67 Expose policy preview and preservation through headless control 2026-11-03 16:04:26 +01:00
evgeny d89a8e127c Prepare policy response before commit and remove policy with channel 2026-11-03 15:57:07 +01:00
evgeny 94ae8231aa Store group policy and derived member admission 2026-11-03 15:47:36 +01:00
evgeny 03fea5eb74 Refine device pairing flow and invalidate outdated node snapshots 2026-11-02 19:52:18 +01:00
evgeny d7006aecb5 Add signed device groups and compact NODEINFO packing 2026-11-02 18:47:58 +01:00
evgeny 2d054591d5 Validate peer keys against full active group member records 2026-10-30 22:38:36 +01:00
evgeny c73090759f fix(chat): commit global names with signed node and member profiles 2026-10-27 11:48:09 +01:00
evgeny ecb589c670 test(chat): exercise atomic profile updates, no-ops, and callback deletion 2026-10-27 06:42:32 +01:00
evgeny 20c095f2f3 fix(chat): preserve member transaction boundaries when rollback fails 2026-10-27 06:15:20 +01:00
evgeny e0598ccc22 fix(chat): commit avatar updates before notification and validate SQL reads 2026-10-27 05:08:31 +01:00
evgeny 60942e542b Propagate all member block binding and finalization failures before index publication 2026-10-27 04:36:09 +01:00
evgeny 6a6ad5c612 Store channel metadata and peer schema atomically with checked SQL operations 2026-10-27 04:19:14 +01:00
evgeny c3ac2059f4 Check complete Merkle cleanup before committing channel deletion 2026-10-27 01:55:03 +01:00
evgeny 6a6f8db208 Preserve channel files until checked metadata deletion commits 2026-10-27 01:50:03 +01:00
evgeny 76527de44f Store admin keys atomically and reject invalid transfer context 2026-10-26 20:44:42 +01:00
evgeny 1f3f1d9a34 Separate missing member verification keys from SQLite failures 2026-10-26 14:42:59 +01:00
evgeny 94a76e569e Respect SOCKS policy and report LAN lookup failures precisely 2026-10-25 17:55:34 +01:00
evgeny e8713e7a2c Load known node identities for verified LAN candidates 2026-10-25 17:43:21 +01:00
evgeny f1b62f9112 Require active complete membership for CHAT group admission 2026-10-24 16:46:01 +02:00
evgeny 19c3cc0434 Reject interrupted membership channel queries 2026-10-24 14:10:28 +02:00
evgeny 81e2a9aa4a Return peer lists atomically after successful SQL iteration 2026-10-24 14:09:36 +02:00
evgeny 575a3788e3 Roll back failed channel deletion and node classification 2026-10-24 14:07:28 +02:00
evgeny 26b5da6835 Release partial SQL bootstrap records on allocation failures 2026-10-24 14:03:48 +02:00
evgeny 99608de811 Reject failed topology writes and malformed stored signatures 2026-10-24 14:01:37 +02:00
evgeny 14c5ddf864 Propagate failures when storing verified node identities 2026-10-24 13:57:05 +02:00
evgeny 9b4974f02d Unify media source and relay transmission with owned buffers 2026-10-22 19:11:26 +02:00
evgeny d2a8e6fda7 db: accept TCP IP-only addresses while preserving stored projections 2026-10-17 19:58:54 +02:00
evgeny 6363c8b7ea nat: publish TCP external IPs with an unknown port 2026-10-17 19:46:33 +02:00
evgeny 58755dd75e nat: distinguish EIM with unverified unsolicited ingress 2026-10-17 18:19:23 +02:00
evgeny eb09a675c7 nat: preserve the NAT address kind when mapping is unknown 2026-10-17 18:01:09 +02:00
evgeny 4284233e6f nat: keep unchanged public addresses distinct from unknown NAT 2026-10-17 17:59:22 +02:00
evgeny 78f71ddbb0 nat: distinguish public interface addresses from unknown NAT candidates 2026-10-17 17:53:20 +02:00
evgeny db8a5ee2df Retain stable NAT results and compact the address database 2026-10-12 17:04:59 +02:00
evgeny 01b0992c39 Select interface STUN fallback only when ETCP lacks independent observers 2026-10-12 00:57:54 +02:00
evgeny ff69552a61 Measure owned endpoint mapping and inbound reachability separately 2026-10-12 00:01:40 +02:00
evgeny 1bb885fd11 logging: explain failed probes and RTT persistence errors 2026-10-07 21:15:39 +02:00
evgeny 7e19cbaf3a Add local per-member radio mute controls on desktop and Android 2026-10-07 13:35:25 +02:00
evgeny 982e5a06ab Integrate feedback tables with channel and sync lifecycle 2026-10-06 20:06:39 +02:00
evgeny 894b24698e Update Merkle integration tests and channel index cleanup 2026-10-06 19:57:25 +02:00
evgeny e3745f279e Store signed group avatars without replacing channel keys 2026-10-06 13:37:18 +02:00
evgeny 1c499dc230 Classify chat supernodes independently of address type 2026-10-02 11:37:09 +03:00
evgeny bce17d9cfc Route UTUN configuration and group ownership through NCD 2026-09-27 21:59:32 +03:00
evgeny ec51b2d61f Version signed node snapshots with persistent timestamps 2026-09-27 19:11:11 +03:00
evgeny 7374d1648c Support 8 KiB member owner tags without signature or serialization truncation 2026-09-27 17:12:13 +03:00
evgeny ba1c2d85d3 reality_relay: async DNS вместо getaddrinfo + AGC-компрессор по умолчанию (-12 dBFS) 2026-09-20 15:28:46 +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