No description
- Rust 98.3%
- CSS 1.1%
- Dockerfile 0.3%
- JavaScript 0.2%
- Shell 0.1%
Cadastrar pela UI em produção devolvia sempre "Não foi possível concluir.
Tente novamente.", qualquer que fosse a causa — inclusive e-mail já
cadastrado, cujo braço `errors.email_taken` era código morto.
Causa: o servidor Keyrunes responde **400** para toda recusa de cadastro
("email already registered", "password too short", "organization not
found for namespace"), e o `handle_error` do SDK só traduz **401** em
`AuthenticationError`. Todo 400 vira `HttpError`, que o `signup_post`
mandava para o genérico.
Confirmado contra o SSO real (POST /api/register):
400 {"message":"email already registered"}
400 {"message":"password too short"}
400 {"message":"organization not found for namespace: ..."}
`signup_error_key` passa a ler o motivo de dentro do `HttpError` e
traduzir os dois casos acionáveis; o resto continua no genérico com o
motivo real indo para o log, não para a tela. O braço de
`AuthenticationError` fica, para o caso de o SDK passar a classificar o
duplicado como 401. O lugar durável dessa distinção é o SDK.
A suíte não pegava isso porque o `FakeApi` devolvia `AuthenticationError`
no duplicado — um contrato que o servidor real não tem. O fake agora
devolve o `HttpError` 400 que o Keyrunes de fato produz, então os testes
de duplicado que já existiam passaram a exercitar o caminho verdadeiro.
`.env.example`: documenta o namespace real (`monitor_account`) e que
`KEYRUNES_GROUP` é NOME, não id — a rota por id não existe no servidor.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DXncJNK9sNT3NsPfTN7EHM
|
||
|---|---|---|
| .agents | ||
| .cargo | ||
| .githooks | ||
| .sqlx | ||
| .woodpecker | ||
| assets | ||
| locales | ||
| migrations | ||
| scripts | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||