Multi-member ring management — real 1-of-N anonymity, shipped
Shipped the feature that makes gitghost actually meaningful: dashboard-native ring management where anyone can create a ring, add members by GitHub username, and start signing commits as 1-of-N. The privacy story is end-to-end now — your private key lives in the browser, the server never sees it, and you decide per ring whether to put it in the public index or keep it private. Verifiers see "someone in the ring signed" — not who.
- ›Create rings from /dashboard/rings — name, description, category, public/private toggle
- ›Add members by GitHub username — ghost key pubkeys auto-derived, no manual key paste
- ›Privacy by default: rings start private, opt-in to discovery in /rings public index
- ›Per-ring visibility toggle in ring detail page (blue 'public' / gray 'private' badge)
- ›Zero-knowledge keypairs: secp256k1 generated in browser, stored in localStorage, never sent to server
- ›/dashboard/settings: view truncated pubkey, download backup, restore from JSON backup, regenerate
- ›/join flow: invited users land on onboarding page, login, auto-generate ghost key, ready to be added
- ›/rings index merged: seed rings + public user rings, live stats (rings / members / verifiable)
- ›Ring detail at /rings/[slug]: members + pubkey + ring root + CLI snippet + canonical ring.json