From f56da5adbf537884b10fc0411129854f73efecfa Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 3 Aug 2026 23:08:54 +0000 Subject: [PATCH] docs: drop the npub line, restore exception removal in the AUTH proposal Two corrections to the mockups. The npub under the prompt title is gone. It replaced the cut boilerplate sentence in the same slot, which repeated the mistake one layer down: truncated it can't be verified by eye, the handle already names the account, and it cost a line on every state. Exceptions rows regain an explicit removal path. The copy deck claimed "clearing both segments removes the row", but a two-segment control has no neutral position, so there was no way back to being asked again. Today's Forget action is kept and retitled "Remove exception", with an undo snackbar naming the fallback. It is unambiguous now that the list holds only real overrides: it no longer neighbours a red chip that reads as a block, and the usage history it used to wipe has its own list. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01USYujXpjNrQdEyK39Q48Z1 --- .../2026-08-03-auth-permissions-redesign.html | 49 +++++++++++++------ .../2026-08-03-auth-permissions-redesign.md | 20 +++++--- 2 files changed, 45 insertions(+), 24 deletions(-) diff --git a/amethyst/plans/2026-08-03-auth-permissions-redesign.html b/amethyst/plans/2026-08-03-auth-permissions-redesign.html index 9b6d804089..a48d2f037f 100644 --- a/amethyst/plans/2026-08-03-auth-permissions-redesign.html +++ b/amethyst/plans/2026-08-03-auth-permissions-redesign.html @@ -280,10 +280,6 @@ td.k { font-family: var(--f-code); font-size: 11.5px; color: var(--ink-2); } .dlg-title { font-size: 1.32rem; line-height: 1.25; font-weight: 500; margin: 0; letter-spacing: -.01em; text-wrap: balance; } .dlg-title.center { text-align: center; } .dlg-body { font-size: .875rem; line-height: 1.45; color: var(--on-s-var); margin: 0; } -.npub { - font-family: var(--f-code); font-size: .72rem; letter-spacing: .01em; - color: var(--on-s-var); margin-top: -10px; -} .dlg-err { font-size: .875rem; line-height: 1.45; color: var(--err); margin: 0; } .relaychip { align-self: flex-start; background: var(--s-var); color: var(--on-s); @@ -388,6 +384,14 @@ td.k { font-family: var(--f-code); font-size: 11.5px; color: var(--ink-2); } .relayrow .url { font-size: .95rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .relayrow .sub { font-size: .76rem; color: var(--on-s-var); margin-top: 2px; } .emptycard { background: var(--s-c-low); border-radius: 20px; padding: 16px; font-size: .84rem; color: var(--on-s-var); line-height: 1.45; } +.snackbar { + display: flex; align-items: center; gap: 14px; + background: var(--on-s); color: var(--s); + border-radius: 12px; padding: 12px 14px; margin-top: 10px; + font-size: .82rem; line-height: 1.35; +} +.snackbar .undo { color: var(--pri); font-weight: 700; flex: none; } +.screen.light .snackbar .undo { color: #D0BCFF; } .purposechips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; } .pchip { font-size: .68rem; padding: 2px 8px; border-radius: 100px; background: var(--s-var); color: var(--on-s-var); } .icon { color: var(--on-s-var); flex: none; } @@ -832,8 +836,8 @@ td.k { font-family: var(--f-code); font-size: 11.5px; color: var(--ink-2); }
The shape

Relay identity (icon + host, the thing being trusted) · - "Log in as @you?" + the npub beneath it (the disclosure, named for the first - time — no sentence explaining what logging in means, because the verb already says it) · + "Log in as @you?" (the disclosure, named for the first time — and nothing + else, because the verb already says what logging in does) · one reason sentence (varies by state) · Remember for this relay (a switch, not a third button) · Not now / Log in · @@ -851,9 +855,9 @@ td.k { font-family: var(--f-code); font-size: 11.5px; color: var(--ink-2); }

1 2 - 3 - 4 - 5 + 3 + 4 + 5
nw @@ -863,7 +867,6 @@ td.k { font-family: var(--f-code); font-size: 11.5px; color: var(--ink-2); }

Log in as @vitor?

-
npub1vp3k9qz…q8x4k

It won't accept your message for ANAlice Nakamoto @@ -897,7 +900,7 @@ td.k { font-family: var(--f-code); font-size: 11.5px; color: var(--ink-2); }

@@ -1385,14 +1394,14 @@ td.k { font-family: var(--f-code); font-size: 11.5px; color: var(--ink-2); }
relay_auth_prompt_title
Confirm it's you to this relay?
-
Log in as %1$s? — now constant across all states; %1$s is the account, with its npub rendered beneath
+
Log in as %1$s? — now constant across all states; %1$s is the account handle
relay_auth_prompt_message
This relay wants to confirm it's really you first. Its operator will see which account you are.
-
"log in" already means "identify yourself" — the npub under the title shows what is handed over, which is more concrete than a sentence about it and doesn't have to be re-read on every prompt
+
"log in" already means "identify yourself", and the title names the account. Nothing replaces it — an npub under the title was tried and dropped: truncated, it can't be verified by eye, so it is decoration on every single prompt
@@ -1538,8 +1547,16 @@ td.k { font-family: var(--f-code); font-size: 11.5px; color: var(--ink-2); }
Nothing here yet — your global policy applies to every relay.
No exceptions yet. Every relay follows the rules above.
-
relay_auth_decision_allow
relay_auth_decision_deny
relay_auth_forget
-
Allow · Deny · Forget
Always · Never — a segmented control; clearing both removes the row, so "forget" disappears as a separate action
+
relay_auth_decision_allow
relay_auth_decision_deny
+
Allow · Deny
Always · Never — a two-way segmented control, so "allowed by policy" is no longer drawn as an explicit allow
+
+
+
relay_auth_forget
+
Forget
Remove exception — kept, retitled for what it does; clears the override only, and the relay asks again next time
+
+
+
relay_auth_exception_removed
new
+
Exception removed. %1$s follows your rules again. — undo snackbar
relay_auth_last_used
diff --git a/amethyst/plans/2026-08-03-auth-permissions-redesign.md b/amethyst/plans/2026-08-03-auth-permissions-redesign.md index 1ba03c79d1..87ec23b428 100644 --- a/amethyst/plans/2026-08-03-auth-permissions-redesign.md +++ b/amethyst/plans/2026-08-03-auth-permissions-redesign.md @@ -125,7 +125,6 @@ Further problems: asks who you are Log in as @vitor? (constant title; names the account — new) -npub1vp3k9qz…q8x4k (the concrete thing handed over) It won't accept your message for ⬤Alice Nakamoto from someone it can't identify. (the ONE variable line; avatar inline) @@ -140,11 +139,12 @@ The one reason sentence replaces the old title + purpose label + avatar row + consequence line. Four buttons become two plus a switch. Nothing in the dialog writes a global setting; the link navigates to the settings screen instead. -`relay_auth_prompt_message` is **cut, not shortened**. "Log in" already means -"identify yourself", so a sentence explaining that is boilerplate on every state — -the same duplication this proposal is removing everywhere else. The npub under the -title does the job better: it is the concrete value handed over rather than a -description of it, and it doesn't have to be re-read on the fifth prompt. +`relay_auth_prompt_message` is **cut, not shortened**, and nothing replaces it. +"Log in" already means "identify yourself" and the title names the account, so a +sentence explaining the disclosure is boilerplate on every state — the same +duplication this proposal removes everywhere else. An npub under the title was +tried and dropped for the same reason: truncated, it can't be verified by eye, so +it is decoration that costs a line on every single prompt. Reason sentence per state (P1′–P12′, incl. the two new kinds and the never-reachable `MY_OWN_RELAY`) — see the copy deck in the HTML. @@ -162,8 +162,12 @@ fixed height and the buttons never leave the fold. - Toggle group header carries the grammar — "Log in without asking when…" — so each row is a three-to-four-word completion with no description. - The single mislabelled list splits into what it actually contains: - **Exceptions** (explicit overrides only, two-way segmented `Always`/`Never`; - clearing both removes the row, so "Forget" disappears as a separate action), + **Exceptions** (explicit overrides only, two-way segmented `Always`/`Never`, + plus **✕ Remove exception** — today's `Forget`, kept and retitled: it clears the + override so the relay drops back to your rules and asks again next time, + confirmed by an undo snackbar. It is unambiguous now in a way it wasn't: it no + longer sits beside a red chip that also reads as "block", and it no longer wipes + the usage history, which has its own list), **Blocked by your block list** (locked, kind 10006 — previously invisible), **Recent logins** (the log, with `SubPurpose` chips — "your inbox", "a conversation", "reading 4 follows" — instead of an unlabelled facepile).