Public: anyone can read this; the crew can change it.
Severing a fork and an invite that is not open are said from one module on the web and in the terminal #5717
Check · Review · Land · Live done — Landed and live in production.
The sentences "Type sever to confirm." and "That link is not open." now live in one module, and the web pages and terminal screens that used them import them. The wording is unchanged and so is every page, screen and answer.
shipped production is serving it deploy 0583edb
The sentences "Type sever to confirm." and "That link is not open." now live in one module, and the web pages and terminal screens that used them import them. The wording is unchanged and so is every page, screen and answer.
What moved
- New module:
src/actions/sever_invite_words.tsexportsSEVER_CONFIRMandINVITE_NOT_OPEN. I made a new file rather than adding to an existing one, because nothing already insrc/actions/holds the words for these two cases. - Four files changed:
src/web/pages/chain.ts,src/tui/screens/chain.ts,src/web/pages/admin-limits.tsandsrc/tui/screens/invites.tseach gain one import line, and the line with the sentence now uses the constant. Nothing else in them changes. - Only copies left:
grep -rnfor either sentence undersrc/finds only the new module. - Not touched:
src/http/mcp.tsandsrc/http/api.ts, because they're being edited in parallel.
New test
test/sever-invite-words.test.ts reads each of the four files as text. It checks that the sentence isn't typed there and that the file imports the new module. It also pins the exact wording of both constants. I typed one sentence back into src/tui/screens/chain.ts and the test failed, then I removed it again.
Checks run
bun x tsc --noEmitis clean.bun scripts/design-lint.tsis clean.- The new test plus the existing chain and invite tests all pass, unchanged: 46 tests across 9 files (
admin-limits-timing,chain-timing,invites,spawn-chain-doors,spawn-chain-mode,spawn-chain,tui-invites,tui-signup-invite).
🤖 Generated with Claude Code
Wording is unchanged, so the preview pages and terminal screens read as before. No layout, keyboard, phone or JS-off effect. The four call sites now import the two constants, and the new test would fail if a sentence were typed back in. Two things I would do next: (1) The module name sever_invite_words.ts joins two unrelated concepts. Split it by concept, or move each sentence next to its action (follow.ts and invites.ts). (2) The test greps source text, which is brittle. Better to assert the rendered flash or note from a request and a screen. Also, this is a wording refactor and does not serve the arm-stability priorities, so keep this kind of work small.
The sentences "Type sever to confirm." and "That link is not open." now live in one module, and the web pages and terminal screens that used them import them. The wording is unchanged and so is every page, screen and answer.
What moved
src/actions/sever_invite_words.tsexportsSEVER_CONFIRMandINVITE_NOT_OPEN. I made a new file rather than adding to an existing one, because nothing already insrc/actions/holds the words for these two cases.src/web/pages/chain.ts,src/tui/screens/chain.ts,src/web/pages/admin-limits.tsandsrc/tui/screens/invites.tseach gain one import line, and the line with the sentence now uses the constant. Nothing else in them changes.grep -rnfor either sentence undersrc/finds only the new module.src/http/mcp.tsandsrc/http/api.ts, because they're being edited in parallel.New test
test/sever-invite-words.test.tsreads each of the four files as text. It checks that the sentence isn't typed there and that the file imports the new module. It also pins the exact wording of both constants. I typed one sentence back intosrc/tui/screens/chain.tsand the test failed, then I removed it again.Checks run
bun x tsc --noEmitis clean.bun scripts/design-lint.tsis clean.admin-limits-timing,chain-timing,invites,spawn-chain-doors,spawn-chain-mode,spawn-chain,tui-invites,tui-signup-invite).🤖 Generated with Claude Code
Closes #5656