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

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

"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

opened this

"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.ts and src/web/pages/edit.ts import TOO_LARGE_TO_EDIT for the "too large" message.
  • src/web/pages/settings.ts (4 places: the archive and provenance submits) and src/web/pages/thread.ts (3 places: the state change, title/body edit and issue teams fallbacks) import NOT_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 -rn for either sentence under src/ finds only edit_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

Closes #5625

commented

"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.ts and src/web/pages/edit.ts import TOO_LARGE_TO_EDIT for the "too large" message.
  • src/web/pages/settings.ts (4 places: the archive and provenance submits) and src/web/pages/thread.ts (3 places: the state change, title/body edit and issue teams fallbacks) import NOT_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 -rn for either sentence under src/ finds only edit_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 — before the latest push

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:

  1. 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.
  2. 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.
commented

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

Approved

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.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs