Commit Graph
3439 Commits
Author SHA1 Message Date
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 97710b609f test(nat): require OPEN for public TCP listeners receiving connections 2026-10-18 01:02:08 +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 6075b4cd0f test(nat): verify public incoming profiles on isolated routed network 2026-10-18 00:55:37 +02:00
evgeny 49385ab91c test(nat): isolate active measurements from incoming transport evidence 2026-10-18 00:54:51 +02:00
evgeny 094a8bb499 test(nat): cover accepted UDP and TCP profiles and LAN exclusions 2026-10-18 00:42:35 +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 7bf877b7d6 test(nat): exercise full retry budget with high RTT and lost reports 2026-10-17 23:45:35 +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 1d1f5d081f test(nat): reserve fresh helper before publishing it during recheck 2026-10-17 23:41:51 +02:00
evgeny edc78cbf4a test(nat): cover helper rotation, preserved OPEN and budget resume 2026-10-17 23:39:17 +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 7c7b9646f3 test(android): distinguish untranslated and unmeasured interface addresses 2026-10-17 23:20:55 +02:00
evgeny 575a7bfe32 fix(android): show no NAT and inbound status instead of interface 2026-10-17 23:20:55 +02:00
evgeny cb8e654639 fix(android): preserve measured profiles in member address details 2026-10-17 23:20:55 +02:00
evgeny 3f7cfe1c86 fix(chatgui): distinguish untranslated addresses from unmeasured profiles 2026-10-17 23:19:25 +02:00
evgeny a485b10e63 fix(chatgui): show measured NAT profile in member addresses 2026-10-17 23:18:57 +02:00
evgeny 3e29a7ca1c test(android): expect distinct NAT? and EIM? address labels 2026-10-17 22:17:53 +02:00
evgeny 6cbcb860d6 fix(android): distinguish unmeasured NAT from NAT with unknown type 2026-10-17 22:07:59 +02:00
evgeny 86c08092af feat(android): show NAT profile and external address for own sockets 2026-10-17 22:07:58 +02:00
evgeny 1dfe349eb8 fix(android): consume local socket snapshots on core events 2026-10-17 22:07:58 +02:00
evgeny c69f8d8975 fix(nat): notify GUI and include profiles in Android socket snapshots 2026-10-17 22:07:58 +02:00
evgeny 60104ea093 fix(chatgui): label detected NAT with unknown type as NAT? 2026-10-17 22:02:36 +02:00
evgeny 2513e9ae81 tests: finish cold UDP detection before opening additional TCP links 2026-10-17 21:22:22 +02:00
evgeny d2a8e6fda7 db: accept TCP IP-only addresses while preserving stored projections 2026-10-17 19:58:54 +02:00
evgeny 2c7c3c9e8b tests: allow TCP IP observations from existing incoming links 2026-10-17 19:54:18 +02:00
evgeny 857092508a docs: explain TCP NAT presence and IP-only addresses 2026-10-17 19:53:34 +02:00
evgeny b588f8e9f4 tests: verify TCP IP-only detection across real NAT gateways 2026-10-17 19:52:39 +02:00
evgeny 62aee9f01c tests: cover TCP NAT presence and zero-port address publication 2026-10-17 19:50:33 +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 7a40ba536e tests: verify STUN estimates and ETCP promotion in isolated networks 2026-10-17 18:48:06 +02:00
evgeny 8983026625 docs: describe same-interface STUN estimates and working endpoint addresses 2026-10-17 18:47:41 +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 906f247588 tests: verify tentative EIM with known helper and unknown inbound access 2026-10-17 18:25:53 +02:00
evgeny fad9fbe6c3 android: label unverified EIM and observed unknown NAT addresses 2026-10-17 18:19:47 +02:00
evgeny b539a6f338 gui: display EIM? when unsolicited ingress remains unverified 2026-10-17 18:19:23 +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