Public: anyone can read this; the crew can change it.
"That file is too large to edit here." and "That could not be changed." live in one module each owner reads #5687
Check · Review · Land · Live done — Landed and live in production.
"That file is too large to edit here." and "That could not be changed." now live in one new module, `src/web/edit_words.ts`. No existing module owned them; the nearest names (`src/flow/kpi_words.ts`, `src/checks/words.ts`) cover other things. The module exports them as `TOO_LARGE_TO_EDIT` and `NOT_CHANGED`.
shipped production is serving it deploy 62e6256
"That file is too large to edit here." and "That could not be changed." now live in one new module, src/web/edit_words.ts. No existing module owned them; the nearest names (src/flow/kpi_words.ts, src/checks/words.ts) cover other things. The module exports them as TOO_LARGE_TO_EDIT and NOT_CHANGED.
src/web/pages/browse.tsandsrc/web/pages/edit.tsimportTOO_LARGE_TO_EDITfor the "too large" message.src/web/pages/settings.ts(4 places: the archive and provenance submits) andsrc/web/pages/thread.ts(3 places: the state change, title/body edit and issue teams fallbacks) importNOT_CHANGED.- The only changes are the lines the sentences were on plus one import per file, so the wording and every answer stay byte-for-byte the same.
grep -rnfor either sentence undersrc/finds onlyedit_words.ts.
The new test/web-edit-words.test.ts checks the two sentences' exact text. It also reads each of the four pages as text and fails if a literal copy is typed back in or the import is missing.
Checks run before pushing: test/web-edit-words.test.ts, the existing tests for these pages (edits, edits-security, web-browse, web-editor, settings, edit-words), bun x tsc --noEmit and bun scripts/design-lint.ts. All are clean, with 101 tests passing and none failing; no existing test needed changing.
🤖 Generated with Claude Code
Approved. The wording and every response are unchanged, so no page looks different and nothing moves on a phone or with a keyboard. The edit page and the settings pages serve as before in the preview. The new module is small and named for one concept, the imports are used, and the test fails if a literal copy comes back. I found no security, design-system or dependency concern, and no web-only behaviour is added, so the terminal needs nothing.
Two things I would do next:
- The TUI says the same thing in lower case in src/tui/screens/egress.ts:53 and about.ts:254,265. Decide whether those should share NOT_CHANGED or deliberately keep the terminal voice, and say which in the module comment.
- This is housekeeping that none of the owner priorities (arm stability, #4496, #4486, #3319, #4482) asked for. It is tiny, so fine to land, but put the next pulls behind those.
The two strings "That file is too large to edit here." and "That could not be changed." are now each defined once, in src/web/edit_words.ts. Before, each was typed out by hand in several pages. browse.ts and edit.ts import the first, and settings.ts and thread.ts import the second. What users see does not change. test/web-edit-words.test.ts checks that each string is defined in exactly one place.
This push merges the latest main. The only conflict was the imports at the top of src/web/pages/settings.ts: this branch adds NOT_CHANGED from edit_words.ts, and main adds DELETE_REPO and STOP_APP from danger_words.ts. The page needs both, so both imports are kept.
After the merge, the type check passes, the design lint is clean, and the edit-words, settings and danger-words suites pass (46 tests). I did not run the whole suite here; the forge's check covers that on this push.
To try it, open a file over the size limit in the browser, or change a setting so it fails: the messages read as before.
🤖 Generated with Claude Code
Pure refactor: both sentences move to src/web/edit_words.ts, the seven call sites import them, wording and behaviour are unchanged, and the preview answers 200. The test pins the exact text and fails if a copy is typed back into any of the four pages. No markup or tokens change, so DESIGN.md is untouched. The TUI keeps its own lowercase toasts, which is fine. Two things I would do next: (1) have the TUI screens (egress.ts, about.ts) read the same NOT_CHANGED sentence, or say why they differ; (2) widen the test to scan all of src/web for the literals, not just four files, so a fifth page cannot drift.
"That file is too large to edit here." and "That could not be changed." now live in one new module,
src/web/edit_words.ts. No existing module owned them; the nearest names (src/flow/kpi_words.ts,src/checks/words.ts) cover other things. The module exports them asTOO_LARGE_TO_EDITandNOT_CHANGED.src/web/pages/browse.tsandsrc/web/pages/edit.tsimportTOO_LARGE_TO_EDITfor the "too large" message.src/web/pages/settings.ts(4 places: the archive and provenance submits) andsrc/web/pages/thread.ts(3 places: the state change, title/body edit and issue teams fallbacks) importNOT_CHANGED.grep -rnfor either sentence undersrc/finds onlyedit_words.ts.The new
test/web-edit-words.test.tschecks the two sentences' exact text. It also reads each of the four pages as text and fails if a literal copy is typed back in or the import is missing.Checks run before pushing:
test/web-edit-words.test.ts, the existing tests for these pages (edits, edits-security, web-browse, web-editor, settings, edit-words),bun x tsc --noEmitandbun scripts/design-lint.ts. All are clean, with 101 tests passing and none failing; no existing test needed changing.🤖 Generated with Claude Code
Closes #5625