| Commit message (Expand) | Author | Age | Files | Lines |
| * | style: ruff's own fixes, mechanically applied | Christophe Besson | 6 days | 1 | -3/+2 |
| * | feat(hub): session lifetime is an admin setting, and a browser signs out when... | Christophe Besson | 11 days | 1 | -0/+25 |
| * | fix(hub): a per-account sign-in lockout, and a reviewed unauthenticated surface | Christophe Besson | 12 days | 1 | -9/+30 |
| * | feat(hub): the mail bounds are settings, with a panel to change them | Christophe Besson | 13 days | 1 | -4/+55 |
| * | fix(hub): an administrator can erase an account that owns groups | Christophe Besson | 2026-09-11 | 1 | -4/+34 |
| * | fix(hub): moderator can no longer grant admin or hard-revoke accounts | Christophe Besson | 2026-09-01 | 1 | -1/+20 |
| * | feat(hub): group names unique per owner, shown as name@owner | Christophe Besson | 2026-08-28 | 1 | -0/+6 |
| * | feat(hub): let a hub admin disable public groups instance-wide | Christophe Besson | 2026-08-28 | 1 | -0/+50 |
| * | fix: stop a stream on close, count only real users, record where a node is | Christophe Besson | 2026-08-15 | 1 | -6/+60 |
| * | feat(logs): keep the username on records the account no longer answers for | Christophe Besson | 2026-08-15 | 1 | -1/+4 |
| * | feat(account): a user can delete their own account, an admin can delete one | Christophe Besson | 2026-08-14 | 1 | -1/+32 |
| * | feat: Phase 12 — P2P crypto material, password split, node Ed25519 auth | Christophe Besson | 2026-08-13 | 1 | -3/+9 |
| * | feat(hub): Phase 10.5–10.8, 10.10 — notifications, settings, search, version | Christophe Besson | 2026-08-11 | 1 | -0/+16 |
| * | feat(hub): Phase 10.1–10.4 — Site overlay + admin/moderation UI | Christophe Besson | 2026-08-11 | 1 | -0/+273 |