| Commit message (Expand) | Author | Age | Files | Lines |
| * | fix(hub): the password verifier is Argon2id 64 MiB, and a hash's version name... | Christophe Besson | 8 days | 1 | -4/+52 |
| * | feat(hub): usernames are at least 8 characters at registration | Christophe Besson | 11 days | 1 | -42/+42 |
| * | fix(hub): a node that hosts nothing is not a free target, and a private group... | Christophe Besson | 12 days | 1 | -0/+12 |
| * | fix: bound what one member can cost the others | Christophe Besson | 13 days | 1 | -4/+8 |
| * | fix(hub): serve the SPA under a fingerprint of what it is | Christophe Besson | 2026-08-16 | 1 | -6/+13 |
| * | feat(hub): leaving a group, a cap on public ones, and hosting as a precondition | Christophe Besson | 2026-08-16 | 1 | -1/+9 |
| * | feat!: identity keys per node — C4's blast radius drops to one operator | Christophe Besson | 2026-08-14 | 1 | -5/+16 |
| * | fix(hub): require proof of possession on node announce — closes M8 | Christophe Besson | 2026-08-13 | 1 | -11/+34 |
| * | feat: Phase 12 — P2P crypto material, password split, node Ed25519 auth | Christophe Besson | 2026-08-13 | 1 | -53/+226 |
| * | feat: Phase 9 — Web client SPA with WebRTC P2P transport | Christophe Besson | 2026-08-11 | 1 | -0/+144 |
| * | feat: Phase 9.1–9.5 — WebRTC DataChannel transport for browser P2P | Christophe Besson | 2026-08-10 | 1 | -0/+70 |
| * | feat(hub): Phase 8 — Hub v2 security hardening + production readiness | Christophe Besson | 2026-08-10 | 1 | -0/+197 |
| * | feat: Phase 7 — Node v2 (multi-group, Sender Keys, 0-RTT, chat, denylist) | Christophe Besson | 2026-08-10 | 1 | -0/+50 |
| * | feat(hub): add production hub — config, auth, API routers, tests | Christophe Besson | 2026-08-09 | 1 | -0/+263 |