Without this the refusal is indistinguishable from a broken password. An unverified
account arrives as a bare 403; RelayAuth logs "minting failed" and falls back to Basic,
which the e2e routes refuse. The person sees calls that do not work and an inbox that does
nothing — and nothing says the remedy is a code in their inbox.
The status alone is not enough. 403 is also "that device belongs to another
account". Telling somebody to check their email for that sends them looking for a message
that was never sent — so the relay's code decides, not the number. A 403 with no code, an
unparseable body, and the same code on a 500 all stay generic; three tests hold that.
RelayAccounts.verifyEmail spends the code, unauthenticated on purpose — the code IS the
proof, and requiring a session would mean somebody kept out because they are unverified
could never get in.
Kotlin nests block comments. A slash-star inside a KDoc opened a comment that never
closed and produced 90 unrelated errors, none near the real line. Note left in the file.
Tests: 5 new, proven able to fail — removing the code check turns 3 red. All three
suites pass. Not merged, not deployed.
Android client half of flamenet-relay!13.
**Without this the refusal is indistinguishable from a broken password.** An unverified
account arrives as a bare 403; `RelayAuth` logs "minting failed" and falls back to Basic,
which the e2e routes refuse. The person sees calls that do not work and an inbox that does
nothing — and nothing says the remedy is a code in their inbox.
**The status alone is not enough.** 403 is also "that device belongs to another
account". Telling somebody to check their email for *that* sends them looking for a message
that was never sent — so the relay's `code` decides, not the number. A 403 with no code, an
unparseable body, and the same code on a 500 all stay generic; three tests hold that.
`RelayAccounts.verifyEmail` spends the code, unauthenticated on purpose — the code IS the
proof, and requiring a session would mean somebody kept out *because* they are unverified
could never get in.
**Kotlin nests block comments.** A slash-star inside a KDoc opened a comment that never
closed and produced 90 unrelated errors, none near the real line. Note left in the file.
**Tests:** 5 new, proven able to fail — removing the code check turns 3 red. All three
suites pass. Not merged, not deployed.
added 3 commits
<ul><li>1ad47193...7958ebd8 - 2 commits from branch <code>main</code></li><li>90850aa6 - Tell somebody their address needs confirming, and let them do it</li></ul>
[Compare with previous version](/paulhitt/flamenet-messenger-android/-/merge_requests/10/diffs?diff_id=2000732593&start_sha=1ad4719337a3d46961e047fe508063dfeb1805d2)
paulhitt
(Migrated from gitlab.com)
merged commit 0271c15ab3 into main2026-09-02 19:47:20 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Android client half of flamenet-relay!13.
Without this the refusal is indistinguishable from a broken password. An unverified
account arrives as a bare 403;
RelayAuthlogs "minting failed" and falls back to Basic,which the e2e routes refuse. The person sees calls that do not work and an inbox that does
nothing — and nothing says the remedy is a code in their inbox.
The status alone is not enough. 403 is also "that device belongs to another
account". Telling somebody to check their email for that sends them looking for a message
that was never sent — so the relay's
codedecides, not the number. A 403 with no code, anunparseable body, and the same code on a 500 all stay generic; three tests hold that.
RelayAccounts.verifyEmailspends the code, unauthenticated on purpose — the code IS theproof, and requiring a session would mean somebody kept out because they are unverified
could never get in.
Kotlin nests block comments. A slash-star inside a KDoc opened a comment that never
closed and produced 90 unrelated errors, none near the real line. Note left in the file.
Tests: 5 new, proven able to fail — removing the code check turns 3 red. All three
suites pass. Not merged, not deployed.
added 3 commits
main90850aa6- Tell somebody their address needs confirming, and let them do itCompare with previous version
mentioned in commit
0271c15ab3changed the description