Switch terminonology from "handle" to "username" #65
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/Ponente#65
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Also open an issue on ATProto.NET. We want to canonicalize this.
🤖 On it — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
Pushed. Here's the summary.
Switched every string a member reads from handle to username (German: Benutzername), and left the protocol's word everywhere it isn't copy. Branch:
claude/issue-65.The split I drew, mirroring the app's existing Atmosphere / AT Protocol convention one layer down: "handle" is a word the protocol taught, and the field it names is the one every other site calls a username — a first-time visitor has to learn our vocabulary before the sign-in form makes sense, and learns nothing usable once they have. So the copy changes and nothing under it does.
Member.Handle,HandleResolver,HandleExamples, thehandleform field and query string, the#atproto-handle/#signup-handle/#request-handleids and the SDK'sHandleLabelparameter all keep the protocol's word — renaming them would put a second name on the wire and break step withATProtoNetfor nothing.What changed
LocaleService— every affected string in both locales: sign-in (label, intro, hint, all three error messages, subtitle), signup (label, missing-field and taken/invalid errors),/request(label + hint), the existing-account note, admin members (add, placeholder, table column, lookup errors) and the admin request-resolution error.login.username.hint,signup.error.username.taken,admin.members.usernameand the rest — because a key is read beside the string it names. All Razor call sites updated; I verified by extraction that every literalL.Tkey in the tree still resolves against the table.Mailer— the admin notification'sHandle:column is nowUsername:(padding kept in step with the other labels).README.mdfor the two sentences describing what a person types; the PDS/DNS sections keepPDS_HANDLE_DOMAINand "handle domain" as configuration and protocol names.CLAUDE.mdrecords the rule and the boundary, so the next change knows which side it's on.A guard against drift, since the issue asks to canonicalize:
TranslationTests.No_copy_calls_an_account_name_a_handlefails the build on\bhandles?\bin any translation in either locale. The word boundaries are load-bearing — they keep English "unhandled" and German "Behandle" (incal.subscribe.secret) out of it.Upstream: filed as ATProto.NET#80, the counterpart to #32.
LoginForm0.5.0 still defaults to the label "Handle" and the hint "Your Atmosphere account handle" — which is whyLogin.razorpassesHandleLabelat all. The issue asks for the defaults only and explicitly rules out renamingHandleLabel, thehandlequery parameter or anything else on the wire.Verified:
dotnet build Ponente.slnclean (one pre-existing nullability warning inCalendar.razor, untouched) anddotnet test Ponente.slngreen at 154/154 — including en/de key parity, which is what proves the key renames landed in both locales. I also confirmed the new guard actually bites by temporarily setting the login label back to "Handle" and watching it fail withCopy still says "handle": en/login.username.label, then reverting. I could not run the Playwright suite: this CI container has no podman or docker, so there's no stack to test against. The only e2e change needed wasi18n.spec.js's German sign-in error assertion (now "Das sieht nicht nach einem Benutzernamen aus"); I grepped the rest oftests/e2e/and no other spec asserts on this copy — the ids and class names they use (#request-handle,.board-user-handle) are deliberately unchanged.One follow-up I couldn't do here: the Lunacy canvas still shows "Handle" on the Login and Admin → Members frames, and the MCP tools aren't available in CI.
⏱ 8m 33s · 96 turns · tokens: 119.1k in / 32.8k out (+6396.4k cache-read)
📜 Full session transcript
→ Opened PR: #66