Commit Graph
1726 Commits
Author SHA1 Message Date
evgeny ad7050ad2c Fix shared cipher linkage and transport type includes 2026-10-18 02:17:18 +02:00
evgeny 7cffb15c73 Add author request list with individual key approvals 2026-10-18 02:17:08 +02:00
evgeny 61d1561612 Bind encrypted manifests and request keys after verified download 2026-10-18 02:14:31 +02:00
evgeny 41696b7e0b Route encrypted group preparation through key owner 2026-10-18 02:14:26 +02:00
evgeny e5a1fc5a48 Start and stop attachment key owner with chat service 2026-10-18 02:13:54 +02:00
evgeny 60e040677b Declare attachment grant service and lifecycle state 2026-10-18 02:13:40 +02:00
evgeny 321ed8e747 Implement durable encrypted attachment grants and requests 2026-10-18 02:13:28 +02:00
evgeny e45401449e Share complete membership verification for private grants 2026-10-18 02:10:11 +02:00
evgeny 6a90d79d04 Add authenticated encrypted attachment container 2026-10-18 02:09:30 +02:00
evgeny b4ef4ec919 Switch message cipher consumers to shared media API 2026-10-18 02:08:52 +02:00
evgeny 9c22b04cb0 Use common file cipher primitives in direct messages 2026-10-18 02:08:45 +02:00
evgeny d6db3d18ce Extract shared CCM and streaming media cryptography 2026-10-18 02:08:29 +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 75d383f89d docs(nat): describe passive incoming connection evidence 2026-10-18 00:59:11 +02:00
evgeny a20a219063 fix(core): free pending ping payloads when destroying instance 2026-10-18 00:57:11 +02:00
evgeny df2f6ff300 feat(nat): confirm direct open profile from accepted public connections 2026-10-18 00:41:53 +02:00
evgeny 37e092672a fix(nat): retain cold ingress reservation after partial measurements 2026-10-17 23:53:09 +02:00
evgeny 305b61ccab fix(nat): advance after an unfinished pair uses its full retry budget 2026-10-17 23:43:21 +02:00
evgeny a72e514dc5 fix(nat): keep fresh ingress checks active during profile rechecks 2026-10-17 23:38:52 +02:00
evgeny 6ad3674904 fix(nat): continue helper traversal after partial mapping results 2026-10-17 23:37:10 +02:00
evgeny c69f8d8975 fix(nat): notify GUI and include profiles in Android socket snapshots 2026-10-17 22:07:58 +02:00
evgeny d2a8e6fda7 db: accept TCP IP-only addresses while preserving stored projections 2026-10-17 19:58:54 +02:00
evgeny 857092508a docs: explain TCP NAT presence and IP-only addresses 2026-10-17 19:53:34 +02:00
evgeny c42d75c2f5 nat: limit helper selection and topology retries to UDP 2026-10-17 19:49:42 +02:00
evgeny 5c0db6ce9e nat: remove TCP listener probes from endpoint detection 2026-10-17 19:47:37 +02:00
evgeny 6363c8b7ea nat: publish TCP external IPs with an unknown port 2026-10-17 19:46:33 +02:00
evgeny 5eb3526186 etcp: exchange observed IPs on established TCP links 2026-10-17 19:46:02 +02:00
evgeny 95f209d098 nat: determine TCP translation from one public IP observation 2026-10-17 19:45:29 +02:00
evgeny d7ad58b380 docs: clarify STUN result fields and API usage 2026-10-17 18:50:39 +02:00
evgeny dbe2640e74 nat: reject local STUN paths as Internet mapping evidence 2026-10-17 18:50:10 +02:00
evgeny f5d923a671 tests: cover tentative STUN mapping, expiry and native priority 2026-10-17 18:46:38 +02:00
evgeny 417b848b50 nat: publish observed working addresses with tentative STUN profiles 2026-10-17 18:45:20 +02:00
evgeny 88ac08333e nat: use same-interface STUN mapping as tentative EIM 2026-10-17 18:45:02 +02:00
evgeny aede36388f docs: define EIM? as matching mapping with unknown inbound access 2026-10-17 18:27:16 +02:00
evgeny 58755dd75e nat: distinguish EIM with unverified unsolicited ingress 2026-10-17 18:19:23 +02:00
evgeny bbb8cff4a6 nat: prefer fresh public helpers while retaining known mapping candidates 2026-10-17 18:10: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 5a8b05c50f nat: try known mapping peers before observer-only fallback 2026-10-17 17:57:15 +02:00
evgeny 78f71ddbb0 nat: distinguish public interface addresses from unknown NAT candidates 2026-10-17 17:53:20 +02:00
evgeny 37461bb938 nat: finish observer-only rounds and document unknown-type candidates 2026-10-17 17:50:28 +02:00
evgeny 79d8789410 nat: prioritize mapping candidates and label unknown NAT explicitly 2026-10-17 17:47:18 +02:00
evgeny 6037819269 nat: retain observed candidates and continue mapping after ingress failures 2026-10-17 17:45:24 +02:00
evgeny b96ae1a718 docs: introduce NAT detector results and basic usage 2026-10-17 17:18:07 +02:00
evgeny 6a2164717e docs: describe NAT detector state and public API arguments 2026-10-17 17:12:40 +02:00
evgeny 83efa229ed nat: reject local probe sources and preserve internet profiles on LAN 2026-10-17 16:54:07 +02:00
evgeny 308eb07742 docs: align endpoint and STUN contracts with the implemented detector 2026-10-17 16:32:08 +02:00
evgeny 4fab849917 nat: align probe timing and test receiver IP rejection and endpoint failover 2026-10-17 16:06:21 +02:00
evgeny 38447da5e8 nat: retry partial ingress measurements and keep known-IP anchor replies available 2026-10-17 16:02:01 +02:00
evgeny 26ab3b13b4 nat: separate routed mapping reports from unsolicited UDP ingress 2026-10-17 15:43:38 +02:00