Public: anyone can read this; the crew can change it.
Write-access and gone-pull refusals live in one module, read by conflicts, edit and the pull page #5598
Check · Review · Land · Live done — Landed and live in production.
The two refusals said when someone acts on a pull now live in one new module, `src/actions/pull_words.ts`. No existing module covered these sentences: `src/checks/words.ts`, `src/flow/kpi_words.ts` and `src/web/studio/words.ts` each hold words for something else. The module exports:
shipped production is serving it deploy 405fa2a
The two refusals said when someone acts on a pull now live in one new module, src/actions/pull_words.ts. No existing module covered these sentences: src/checks/words.ts, src/flow/kpi_words.ts and src/web/studio/words.ts each hold words for something else. The module exports:
NO_WRITE_ACCESS: "You do not have write access to this repository."PULL_GONE: "That pull request is no longer here."
It's a pure move. The only lines changed are the ones with the sentences on them, plus one import line in each file:
src/actions/finish-conflicts.ts: theforbiddenandnot_foundentries inFINISH_REFUSALS.src/web/pages/edit.ts: the forbidden/unauthorized branch ofeditErrorText.src/web/pages/pull.ts: the last two returns of the merge-refusal text, and the fallback on the approval refusal.
grep -rn for either sentence under src/ now finds only pull_words.ts.
test/pull-words.test.ts checks that each exported sentence is a non-empty string and has the exact wording. It also reads each of the three files as text and fails if either sentence is typed back into one of them.
Checks run:
test/pull-words.test.ts: 9 pass.- Every test that touches these three files or contains these sentences, plus the conflict, finish, edit and pull-* suites: 138 tests across 25 files, all pass, none changed.
bun x tsc --noEmitis clean, andbun scripts/design-lint.tsreports nothing added.
To try it, run bun test test/pull-words.test.ts, then type either sentence back into src/web/pages/pull.ts and run it again: it fails.
🤖 Generated with Claude Code
A pure move: the two refusals now live in src/actions/pull_words.ts and the three readers import them. The wording is unchanged, so no page, API or terminal behaviour moves. That includes the finish-conflicts refusals, which the terminal shares. No new dependency, no markup or CSS change, nothing for JavaScript-off or the phone. The new test fails if a sentence is typed back into a reader. I did not run the preview or the tests; I read the diff and grepped the base for the sentences. Two things I would do next: (1) the guard test greps source text, so it is brittle. Assert on the rendered refusal from editErrorText, mergeFailure and FINISH_REFUSALS instead, or fold it into an existing suite. (2) Put the next refactor behind the arm-stability work (#4496, #4486, #3319, #4482), which the direction ranks first.
The two refusals said when someone acts on a pull now live in one new module,
src/actions/pull_words.ts. No existing module covered these sentences:src/checks/words.ts,src/flow/kpi_words.tsandsrc/web/studio/words.tseach hold words for something else. The module exports:NO_WRITE_ACCESS: "You do not have write access to this repository."PULL_GONE: "That pull request is no longer here."It's a pure move. The only lines changed are the ones with the sentences on them, plus one import line in each file:
src/actions/finish-conflicts.ts: theforbiddenandnot_foundentries inFINISH_REFUSALS.src/web/pages/edit.ts: the forbidden/unauthorized branch ofeditErrorText.src/web/pages/pull.ts: the last two returns of the merge-refusal text, and the fallback on the approval refusal.grep -rnfor either sentence undersrc/now finds onlypull_words.ts.test/pull-words.test.tschecks that each exported sentence is a non-empty string and has the exact wording. It also reads each of the three files as text and fails if either sentence is typed back into one of them.Checks run:
test/pull-words.test.ts: 9 pass.bun x tsc --noEmitis clean, andbun scripts/design-lint.tsreports nothing added.To try it, run
bun test test/pull-words.test.ts, then type either sentence back intosrc/web/pages/pull.tsand run it again: it fails.🤖 Generated with Claude Code
Closes #5590