evgeny
3c395dfe5d
Share durable encrypted file publication with direct messages
2026-10-18 10:39:03 +02:00
evgeny
4844253f12
Size storage-role query for complete signed-role predicate
2026-10-18 10:37:19 +02:00
evgeny
01e1772615
Use signed storage role and reject revoked key recipients
2026-10-18 10:37:12 +02:00
evgeny
6c8e2763e5
Expose manual download API and distinguish storage replication in test
2026-10-18 02:19:45 +02:00
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