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