chore(identity): one name — Cato - #894
Open
catomean wants to merge 3 commits into
Open
Conversation
The retired name and a personal contact address were still in the repo, including in the documents where a name is load-bearing. - "Mao Nakamoto" -> "Cato" across 18 files: README, CLAUDE.md, two blog posts, config, support page, tests, and legal/ (PRIVACY_POLICY, TERMS_OF_SERVICE, IP_ASSIGNMENT_MEMO plus the legal-content.ts that renders them). - mao@orangecat.ch -> hello@orangecat.ch in 12 files. The old address is the GDPR Data Controller contact and the ToS operator contact, so it could not simply be deleted; hello@ is already published on the public FAQ, which makes it a route known to work rather than a guess. A role address is also the better answer here than any personal one. - Test fixtures using a real first name -> Cato. **Deliberately NOT swept: the legacy handles `butaeff` and `georgy.butaev`.** A first pass replaced them and had to be reverted. They are production data, not name mentions: `.mailmap` uses them to map historical commits onto the canonical identity, and the mention/lnurl tests carry comments stating those handles are real rows. Renaming the references does not rename the rows — it points code at handles that do not exist and turns true comments into false ones. Retiring them is a data migration, not a find-and-replace. Also reverted from that first pass: an edit to an applied migration's comment. Migrations are immutable once applied, and rewriting a bug report to name a handle that was never involved would have falsified the record. The example in username-history.ts is now a neutral `legacy+handle` instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G2LBioUzJP4oBL9LeH9qAe
… name
Missed by the sweep in the previous commit, which globbed *.md/*.mdx/*.ts/*.tsx
— and .mailmap has no extension.
The effect was worse than a stale file. The raw commit author was already
correct after the git config fix, and the mailmap converted it back on display:
raw: Cato <41178744+catomean@users.noreply.github.com>
mailmapped: Mao Nakamoto <41178744+catomean@users.noreply.github.com>
Every new commit would have kept arriving as Cato and kept being shown as the
old name, which is the least debuggable version of this problem — the config is
right, the commit is right, and the output is wrong.
Canonical name is now Cato, and a name+email rule was added for commits
authored as "G": those carry the canonical email already, so the email-only
rules cannot reach them.
Verified over the last 400 commits: 322 Cato, 78 dependabot, nothing else.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2LBioUzJP4oBL9LeH9qAe
CI caught the sweep breaking a correct test, in exactly the way the butaeff
handles would have been broken had they not been reverted.
services/cat/handlers/context.ts builds the notice as
`…and ${oldUsername}@orangecat.ch still reaches you.`
The address is derived from the handle the user is renaming AWAY from — that is
the whole point of the sentence, which promises their old Lightning address
keeps working. The sweep rewrote the test's expectation to hello@ and left the
source producing the old-handle address, so a correct implementation began
failing a now-incorrect assertion.
Fixed by neutralising the fixture rather than the assertion: the old handle is
now 'oldhandle', so the test asserts oldhandle@orangecat.ch and no retired name
appears. The behaviour under test is unchanged.
The rule this keeps proving: a literal that REFERS to the old identity is data,
not a stale reference, and a find-and-replace cannot tell the two apart.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2LBioUzJP4oBL9LeH9qAe
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.
The retired name and a personal contact address were still in the repo, including in the documents where a name is load-bearing.
Swept
Mao Nakamoto→Catolegal/(Privacy Policy, ToS, IP Assignment Memo + thelegal-content.tsthat renders them)mao@orangecat.ch→hello@orangecat.chCatoThe old address is the GDPR Data Controller contact and the ToS operator contact, so it couldn't just be deleted.
hello@orangecat.chis already published on the public FAQ, making it a route known to work rather than a guess — and a role address is the better answer here than any personal one.Deliberately NOT swept:
butaeff/georgy.butaevA first pass replaced these and had to be reverted. They are production data, not name mentions:
.mailmapuses them to map historical commits onto the canonical identity — rewriting the right-hand side would have broken that mappingRenaming the references does not rename the rows. It points code at handles that don't exist and turns true comments into false ones. Retiring them is a data migration, not a find-and-replace — worth doing, separately, deliberately.
Also reverted from that pass: an edit to an applied migration's comment. Migrations are immutable once applied, and rewriting a bug report to name a handle that was never involved would have falsified the record. The example in
username-history.tsis now a neutrallegacy+handle.🤖 Generated with Claude Code