feat: guest passage — slip through as a wanderer

POST /auth/guest mints a real user row (wanderer-<4 hex>, collision
retry, unusable random password) and issues the normal session cookie,
per-IP rate limited at 5/hour. EnterPage gains the guest action;
the séance shows a dismissible claim-a-name note for wanderer- users.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Indiana
2026-07-28 17:18:16 +00:00
parent 2e2c64d36b
commit f5320fcdec
10 changed files with 275 additions and 7 deletions

View File

@@ -79,7 +79,8 @@
"switchToRegister": "no name in the registry? first contact →",
"switchToLogin": "already carved your name? reconnect →",
"failed": "the veil rejected you: {{message}}",
"smallPrint": "your medium handle is only ever stored on this server"
"smallPrint": "your medium handle is only ever stored on this server",
"guest": "slip through as a wanderer"
},
"seance": {
"modes": {
@@ -272,6 +273,11 @@
"entity": "entity",
"jitter": "jitter"
}
},
"wanderer": {
"note": "your contacts fade with the mist —",
"claim": "claim a name to keep your codex",
"dismiss": "let the mist take it"
}
},
"codex": {

View File

@@ -79,7 +79,8 @@
"switchToRegister": "¿sin nombre en el registro? primer contacto →",
"switchToLogin": "¿ya grabaste tu nombre? reconectar →",
"failed": "el velo te rechazó: {{message}}",
"smallPrint": "tu nombre de médium solo se guarda en este servidor"
"smallPrint": "tu nombre de médium solo se guarda en este servidor",
"guest": "escabúllete como errante"
},
"seance": {
"modes": {
@@ -272,6 +273,11 @@
"entity": "entidad",
"jitter": "fluctuación"
}
},
"wanderer": {
"note": "tus contactos se desvanecen con la niebla —",
"claim": "reclama un nombre para conservar tu códice",
"dismiss": "deja que la niebla se lo lleve"
}
},
"codex": {