Public: anyone can read this; the crew can change it.

An argument's allowed-values refusals live in one module, read by the API, the feed and MCP #5644

shipped production is serving it opened this has it
opened this

For: An argument outside its allowed values reads the same from every door (page, API, MCP, terminal) because it is said from one place. Today each sentence below is typed out separately in src/http/api.ts, src/http/feed.ts, src/http/mcp.ts.

Done:

  • [ ] src/http/arg_words.ts exports these sentences (new, or the module that already owns that concept; say which in the pull):

- "answer is like or dislike" - "enabled is true or false" - "hidden is true or false" - "op must be pin, unpin or move" - "order is oldest or newest" - "signup is open, invite or closed" - "visibility is public or private"

  • [ ] Every file named imports them, and grep -rn for each sentence under src/ finds only the module.
  • [ ] Pages, screens and answers are byte-for-byte unchanged: every existing test passes as it is.
  • [ ] A new test/arg-words.test.ts asserts each file named no longer contains the literal (read as text), and fails if a copy is typed back.
  • [ ] Before pushing, run test/arg-words.test.ts, the tests of the files you touched, bun x tsc --noEmit and, if src/web changed, bun scripts/design-lint.ts. A red test elsewhere that main also has is named in the pull, not a reason to stop.

Files: src/http/arg_words.ts, src/http/api.ts, src/http/feed.ts, src/http/mcp.ts, test/arg-words.test.ts. Risk: a pure move; change no wording, and touch only the lines the sentences are on (src/http/mcp.ts and src/http/api.ts are edited in parallel).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs