From c7a31c674ec2f851793483050f2dd6624a1c4b12 Mon Sep 17 00:00:00 2001 From: Siavash Sameni Date: Fri, 27 Mar 2026 08:41:57 +0400 Subject: [PATCH] Update DESIGN.md roadmap: Phase 1 done, add WebSocket as remaining item Phase 1 updated with all completed items (16 done, 1 remaining). WebSocket real-time push added as the last Phase 1 task. Phase 2 cleaned up (removed items already done in Phase 1). Co-Authored-By: Claude Opus 4.6 (1M context) --- DESIGN.md | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/DESIGN.md b/DESIGN.md index 63567a9..d735414 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -408,24 +408,30 @@ warzone.wasm # browser client (via wasm-pack) - [x] File upload ### Phase 1 — Identity & Crypto Foundation (Rust) -- [ ] Rust project scaffold (cargo workspace: server, client, protocol, mule) -- [ ] Seed-based identity (Ed25519 + X25519 from 32-byte seed) -- [ ] BIP39 mnemonic generation and recovery -- [ ] Seed encryption at rest (Argon2 + ChaCha20-Poly1305) -- [ ] Pre-key bundle generation and storage -- [ ] X3DH key exchange implementation -- [ ] Double Ratchet for 1:1 messaging -- [ ] Message signing (Ed25519) -- [ ] Basic server: accept connections, store-and-forward +- [x] Rust project scaffold (cargo workspace: server, client, protocol, mule, wasm) +- [x] Seed-based identity (Ed25519 + X25519 from 32-byte seed) +- [x] BIP39 mnemonic generation and recovery +- [x] Seed encryption at rest (Argon2 + ChaCha20-Poly1305, unlock once per session) +- [x] Pre-key bundle generation and storage +- [x] X3DH key exchange implementation +- [x] Double Ratchet for 1:1 messaging (forward secrecy, out-of-order) +- [x] Basic server: axum, sled DB, store-and-forward +- [x] CLI TUI client (ratatui, real-time chat) +- [x] Web client with WASM (same crypto as CLI, full interop) +- [x] Group chat (server fan-out, per-member encryption) +- [x] Aliases with TTL, recovery keys, reclamation +- [x] Server auth (challenge-response, bearer tokens) +- [x] OTP key replenishment +- [x] Fetch-and-delete delivery +- [x] 17 protocol tests +- [ ] **WebSocket real-time push** (replace HTTP polling with instant delivery) ### Phase 2 — Core Messaging -- [ ] 1:1 E2E encrypted messaging (full Signal protocol) -- [ ] Offline message queuing with TTL -- [ ] Multi-device support (device list signed by identity key) -- [ ] Sender Keys for group encryption -- [ ] Group management (create, invite, leave, kick) -- [ ] File transfer (chunked, encrypted) - [ ] Delivery receipts (sent, delivered, read) +- [ ] File transfer (chunked, encrypted) +- [ ] Multi-device support (device list signed by identity key) +- [ ] Sender Keys for group encryption (replace per-member fan-out) +- [ ] Group management (kick, leave, key rotation) - [ ] Message ordering and deduplication - [ ] TUI client (ratatui) - [ ] Web client (WASM)