diff --git a/README.md b/README.md index 32e2f14..dadf5fe 100644 --- a/README.md +++ b/README.md @@ -124,15 +124,32 @@ Replaces WASTE's original Blowfish/PCBC (broken cipher mode) + RSA. > Peer IDs are 64-char lowercase hex (Ed25519 public key). Existing `identity.json` files > on disk are unaffected — only the over-the-wire representation changed from base64url. +## Testing + +A self-contained test script boots anchor + three peers, joins them to a named network, exchanges group messages and DMs, and verifies SQLite persistence: + +```bash +./test-network.sh +``` + +Data lands at `/tmp/waste-test` (wiped on each run). Inspect after a run: + +```bash +sqlite3 /tmp/waste-test/alice/messages.db +.headers on +SELECT room, from_peer, body, sent_at FROM messages; +SELECT peer_id, alias, last_seen FROM peers; +``` + ## Roadmap - [x] **Crypto layer** — hex peer IDs, `nacl/box` signaling, Ed25519→X25519 key derivation -- [x] **Proto additions** — `mid` field, signaling types, anchor wire types, `hello` message, `FileDone` -- [x] **Anchor server** (`cmd/anchor`) — WebSocket signaling server (replaces TCP relay) -- [x] **WebRTC peer connections** — pion/webrtc DataChannels replace raw TCP in `internal/mesh` -- [x] **Anchor client** (`internal/anchor`) — ICE offer/answer/candidate lifecycle, `nacl/box` sealing -- [x] **IPC updates** — `join_network`/`leave_network` replace `connect`; `session_ready` event added +- [x] **Proto additions** — `mid` dedup field, signaling types, anchor wire types, `hello` message +- [x] **Anchor server** (`cmd/anchor`) — WebSocket signaling server replacing TCP relay +- [x] **WebRTC peer connections** — pion/webrtc DataChannels; ICE hole-punching via STUN +- [x] **Anchor client** (`internal/anchor`) — offer/answer/candidate lifecycle, `nacl/box` sealing +- [x] **IPC updates** — `join_network`/`leave_network`; `session_ready` event; DMs via `to` field +- [x] **Message persistence** — SQLite (`internal/store`); messages and peer alias cache +- [ ] **TUI** — Bubble Tea terminal UI consuming the IPC port - [ ] **File transfer** — chunked binary DataChannel (`f:`) -- [ ] **Message persistence** — SQLite via `modernc.org/sqlite` -- [ ] **TUI** — Bubble Tea client consuming the IPC port - [ ] **Native UI** — web frontend with native packaging (Tauri-style)