Conversation
docs/09 has always stated it and always ended with "there is no onboarding page yet": an npub is a permanent pseudonym, everything written under it is linkable across relays, and for a team where npubs map to real names that is a public activity history. `PseudonymNotice` says it as a dialog on the first sign-in with a given npub — three sentences: what is signed stays linked to the npub forever, publishing cannot reliably be undone, and a private space restricts access rather than encrypting. A dismissible banner under the top bar was the cheaper option and is exactly what that paragraph rules out; a strip that can be scrolled past is the fine print. Acknowledgement is stored per npub, not per browser. A browser is not an identity: a second person on the same machine, or the same person starting a deliberately unlinked second pseudonym, has been told nothing. It also shows on a resumed session, not only on a fresh login() click — the question the storage answers is "has this npub been told", and anyone already signed in when this ships has not been. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…l goes inert The app has exactly one warning per npub to spend, and Escape was spending it. Escape is the trained reflex for making a dialog go away, so it now only defers the notice until the next load; only "I understand" records the npub as told. For the same reason the button no longer takes focus on open — one Enter on a focused button is as reflexive as one Escape. The dialog itself takes focus and is described by its body, so a screen reader reads the three sentences. While the dialog is up, everything behind it is `inert`. `aria-modal` without that is a claim the page does not honour, and concretely the top bar's Ctrl/Cmd+K would put the caret in a search field hidden under the backdrop. The state moved into `usePseudonymNotice` beside the storage, because both the dialog and the shell need it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes CON-13.
What an npub costs, said once, before the first revision is written under it.
What is in it
PseudonymNoticeis a dialog on the first sign-in with a given npub: everything signed stays linked to it forever, publishing cannot reliably be undone, and a private space restricts access rather than encrypting.login(): the question the storage answers is "has this npub been told".inert:aria-modalwithout that is a claim the page does not honour, and Ctrl/Cmd+K would otherwise put the caret in a search field hidden under the backdrop.How to test
Automated: typecheck, lint, tests and build are green.