For: Asking for an email verification link reads the same from every door, because every door reads it from one place. Today each sentence below is typed out separately in src/http/api.ts (POST /api/v1/user/email/verify) and src/http/mcp.ts (email_verify), so the next edit to one door makes them drift. This is the fix pull #5504's reviewer asked for, applied to these words.
Done:
[ ] A new src/actions/verify_words.ts exports these sentences (a const object or small functions, plain data):
- "a link was sent a moment ago; check your inbox, or try again in a few minutes"
- "the link could not be sent; try again"
- "this forge sends no mail yet; ask its owner to verify you"
[ ] Each door (src/http/api.ts (POST /api/v1/user/email/verify) and src/http/mcp.ts (email_verify)) imports them, and none of these sentences is typed out anywhere else under src/ (grep -rn for each finds only the module).
[ ] Answers are byte-for-byte unchanged: every existing test passes as it is.
[ ] A new test/verify-words.test.ts triggers one of the refusals through each door and asserts each answers the module's sentence. It fails if a door retypes the words.
[ ] Before pushing, run test/verify-words.test.ts, the tests of each door you touched and bun x tsc --noEmit. A red test elsewhere that main also has is named in the pull, not a reason to stop.
Files: src/actions/verify_words.ts (new), the doors named, test/verify-words.test.ts.
Risk: a pure move; change no wording. Other MCP work edits src/http/mcp.ts in parallel, so keep each edit to the literal's own line.
For: Asking for an email verification link reads the same from every door, because every door reads it from one place. Today each sentence below is typed out separately in src/http/api.ts (POST /api/v1/user/email/verify) and src/http/mcp.ts (
email_verify), so the next edit to one door makes them drift. This is the fix pull #5504's reviewer asked for, applied to these words.Done:
- "a link was sent a moment ago; check your inbox, or try again in a few minutes" - "the link could not be sent; try again" - "this forge sends no mail yet; ask its owner to verify you"
email_verify)) imports them, and none of these sentences is typed out anywhere else under src/ (grep -rnfor each finds only the module).bun x tsc --noEmit. A red test elsewhere that main also has is named in the pull, not a reason to stop.Files: src/actions/verify_words.ts (new), the doors named, test/verify-words.test.ts. Risk: a pure move; change no wording. Other MCP work edits src/http/mcp.ts in parallel, so keep each edit to the literal's own line.