Skip to content

Document the portable guest identity (GRYT-273) - #24

Merged
sivert-io merged 1 commit into
mainfrom
claude/GRYT-273-document-portable-guest-identity
Aug 14, 2026
Merged

Document the portable guest identity (GRYT-273)#24
sivert-io merged 1 commit into
mainfrom
claude/GRYT-273-document-portable-guest-identity

Conversation

@sivert-io

Copy link
Copy Markdown
Member

Pairs with Gryt-chat/client#148 and Gryt-chat/server#47. Merge this after those — it describes behaviour that doesn't exist yet.

What was wrong

The identity page described guest mode as it was: a key per device, dies with your site data, comes back only from a file. After #148 that's a backup of 24 words that every server's key is worked out from — so it covers servers joined after you saved it, and the second-device flow is pasting words rather than exporting and importing a file.

The comparison table had a row saying a local identity survives a lost device "only if the key was saved to a file". That's the row most likely to be read and believed.

What changed

  • Rewrote Not losing a local identity around the words.
  • Replaced Using a local identity on a second device with the question people actually arrive with — no account, want the same identity on my phone — as three steps.
  • Kept the file, demoted below the words. It still exists, it's password-protected now, and it's what Authorise this device reads.
  • New short section on servers that move, since an identity now follows the server rather than its address, and a server reachable two ways is one identity where it used to be two.

The config bit

GRYT_TRUSTED_CERT_ISSUERS was already documented — I was wrong when I said it wasn't. What's new is the ordering rule from GRYT-267: the first issuer in the list owns the plain ids, so putting one at the front, or reordering an existing list, silently turns every account identity on the server into a different user. Adding to the end is safe.

That's a footgun with no runtime guard, only a comment in the code, so it's stated where the variable is documented and where a self-hoster editing their env will actually be looking.

Verified

yarn build clean, 36+ pages prerendered.

Deliberately says nothing about federation. #47 makes it safe to trust a second CA, it doesn't make joining another operator's server possible, and documenting it as though it does would be worse than saying nothing.

🤖 Generated with Claude Code

The identity page described guest mode as a key per device that dies with
your site data and comes back only from a file. Gryt-chat/client#148
replaces that with one backup, shown as 24 words, that every server's key
is worked out from — so it covers servers joined after it was saved, and
moving to a second device is pasting the words rather than exporting and
importing.

Rewrote the two sections that were built around the file, and the row in
the comparison table that said an identity survives a lost device "only if
the key was saved to a file". The file is still there and still what
"Authorise this device" reads, so it keeps a section — a shorter one,
below the thing most people want.

Added the phone case as its own three steps, because that is the question
people actually arrive with, and a note that an identity now follows the
server rather than the address it answers on.

Also documented the ordering rule GRYT-267 introduces on
GRYT_TRUSTED_CERT_ISSUERS. The first issuer in the list owns the plain
ids, so adding one to the front — or reordering an existing list — turns
every account identity on the server into a different user. Adding to the
end is safe and changes nothing. Written where the variable is documented
rather than only in the code.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@sivert-io
sivert-io merged commit 018ebaf into main Aug 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant