| Commit message (Expand) | Author | Age | Files | Lines |
| * | fix(hub): Argon2 runs off the event loop, on exactly one worker | Christophe Besson | 12 days | 1 | -0/+37 |
| * | fix(hub): MHP binds its audience, and the hub knows its own name | Christophe Besson | 13 days | 1 | -0/+20 |
| * | fix: tolerate clock skew when verifying JWTs (leeway 60s) | Christophe Besson | 2026-09-04 | 1 | -1/+3 |
| * | feat: email verification for registration, email change, and invitations | Christophe Besson | 2026-08-31 | 1 | -0/+15 |
| * | feat!: identity keys per node — C4's blast radius drops to one operator | Christophe Besson | 2026-08-14 | 1 | -2/+5 |
| * | feat: Phase 12 — P2P crypto material, password split, node Ed25519 auth | Christophe Besson | 2026-08-13 | 1 | -1/+5 |
| * | feat(hub): Phase 8 — Hub v2 security hardening + production readiness | Christophe Besson | 2026-08-10 | 1 | -12/+59 |
| * | feat: Phase 7 — Node v2 (multi-group, Sender Keys, 0-RTT, chat, denylist) | Christophe Besson | 2026-08-10 | 1 | -0/+3 |
| * | feat(hub): add production hub — config, auth, API routers, tests | Christophe Besson | 2026-08-09 | 1 | -0/+145 |