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

The Subscriptions page's refusal words live in one module both doors read, and the page is unchanged #5466

shipped production is serving it opened this has it
opened this

For: the page and the MCP tools (#5418, #5430, #5431, and the add and delete tools in this plan) say the same words. Today the add, headroom and delete sentences are inline in src/web/pages/subscriptions.ts.

Done:

  • [ ] The sentences for invalid_name, name_taken, invalid_token, invalid_api_base, the headroom range and "No such subscription." move to an exported map in src/core/subscriptions.ts (or a small subscriptions_words.ts beside it). The page reads them from there.
  • [ ] Every page answer is byte-for-byte the same: the existing subscriptions tests pass unchanged, and a new test/subscriptions-words.test.ts asserts each key is a non-empty sentence ending in a full stop.

Files: src/web/pages/subscriptions.ts, src/core/subscriptions.ts (or the new module), test/subscriptions-words.test.ts. Risk: no behaviour change. If the MCP add tool lands first, it may inline the words; whichever lands second moves them.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs