kb/ is its own wiki root: 34 pages across 7 categories, index.md catalog, log.md, AGENTS.md schema layer, and raw/ holding copies of README, the spec, the 13-task plan, the design master and the SDD ledger. Every page cross-references 3 to 6 others and all 107 wikilinks resolve except two [["list"]] artefacts inside JSON snippets in the copied plan. Kept separate from the repository root on purpose: its generated graph lands in kb/.ua/ instead of overwriting the code graph. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
14 lines
642 B
Markdown
14 lines
642 B
Markdown
# Decision: email collision check
|
|
|
|
Changing your email in settings wrote straight to a UNIQUE column. A collision surfaced as a raw constraint error
|
|
inside a server action — the form looked like it did nothing.
|
|
|
|
`changeEmail` in `lib/auth.ts` now validates the address, compares it case-insensitively after trimming, and
|
|
returns "That email already has an account." when another user owns it. It returns ok when the address is already
|
|
yours.
|
|
|
|
A deferred neighbour: sessions are not revoked when the password changes, so a 30-day token survives a password
|
|
rotation.
|
|
|
|
Related: [[First-run gate]], [[Session cookie rules]], [[SQLite schema]].
|