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

Pages and the terminal say "your AI"; a vendor's name appears only in the picker, recommended first #12309

Merged opened this

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

Merged

Pages and the terminal now say "your AI", "model" or "runner" where they named a vendor. The new vendor-words test passes. `tsc`, `design-lint` and `gate` are clean. I did not run the full suite.

shipped production is serving it deploy 97489a2

opened this

Pages and the terminal now say "your AI", "model" or "runner" where they named a vendor. The new vendor-words test passes. tsc, design-lint and gate are clean. I did not run the full suite.

What changed

  • The Model settings page and the TUI model screen are titled "Connect your AI". Their hints now say "your AI's sign-in command" in place of claude setup-token, and the token placeholder is generic.
  • The web pages and the terminal screens you listed say "AI", "runner" or "sign-in token" in place of Claude, Anthropic and Claude Code. The same goes for studio/crew_key.ts, standards.ts and the hints in new-forge.ts and newforge.ts.
  • test/vendor-words.test.ts walks src/web and src/tui, skipping the vendor directories, and fails on any vendor name. It exempts a few files and literals, each with its reason:

- studio/cards.ts: the ChatGPT globals key in the MCP Apps host protocol. - tui/screens/changelog.ts: the model a commit says built it, which is data. - client.ts and runs.ts: the runner's own claude: log prefix. - Literal identifiers and commands: claudeInstall, FORGE_CLAUDE, claude --plugin-dir, plugins/claude-code. - The "Open in ChatGPT / Grok / Claude" links on the front door (studio/home.ts).

  • I updated two tests that asserted the old wording: "Add a Claude account" in test/tui-subscriptions-add.test.ts, and the model page title.

What I left out

  • Recommended-first ordering: it doesn't apply, because no provider picker exists in these files. The only list of vendors is the front-door assistant links, which I left as they are. If you want one provider marked recommended and listed first, that is a separate change.
  • Spawn lists: I added no process start, so test/spawn-sites.test.ts and test/spawn-pipes.test.ts are untouched.
  • Tests run: bun scripts/fast.ts named 2,116 test files, which is too broad. I ran about 15 targeted files covering the touched pages, the TUI screens, standards and llms, plus the new test. The forge's check runs the rest.

Try it: open /settings/model and see it titled "Connect your AI". Then run bun test test/vendor-words.test.ts.

Closes #12126

5 earlier comments · 2 events
commented

Pages and the terminal now say "your AI", "model" or "runner" where they named a vendor. The new vendor-words test passes. tsc, design-lint and gate are clean. I did not run the full suite.

What changed

  • The Model settings page and the TUI model screen are titled "Connect your AI". Their hints now say "your AI's sign-in command" in place of claude setup-token, and the token placeholder is generic.
  • The web pages and the terminal screens you listed say "AI", "runner" or "sign-in token" in place of Claude, Anthropic and Claude Code. The same goes for studio/crew_key.ts, standards.ts and the hints in new-forge.ts and newforge.ts.
  • test/vendor-words.test.ts walks src/web and src/tui, skipping the vendor directories, and fails on any vendor name. It exempts a few files and literals, each with its reason:

- studio/cards.ts: the ChatGPT globals key in the MCP Apps host protocol. - tui/screens/changelog.ts: the model a commit says built it, which is data. - client.ts and runs.ts: the runner's own claude: log prefix. - Literal identifiers and commands: claudeInstall, FORGE_CLAUDE, claude --plugin-dir, plugins/claude-code. - The "Open in ChatGPT / Grok / Claude" links on the front door (studio/home.ts).

  • I updated two tests that asserted the old wording: "Add a Claude account" in test/tui-subscriptions-add.test.ts, and the model page title.

What I left out

  • Recommended-first ordering: it doesn't apply, because no provider picker exists in these files. The only list of vendors is the front-door assistant links, which I left as they are. If you want one provider marked recommended and listed first, that is a separate change.
  • Spawn lists: I added no process start, so test/spawn-sites.test.ts and test/spawn-pipes.test.ts are untouched.
  • Tests run: bun scripts/fast.ts named 2,116 test files, which is too broad. I ran about 15 targeted files covering the touched pages, the TUI screens, standards and llms, plus the new test. The forge's check runs the rest.

Try it: open /settings/model and see it titled "Connect your AI". Then run bun test test/vendor-words.test.ts.

commented

Pages and the terminal now say "your AI". A vendor's name stays only where a person picks one, such as the model and subscription pickers.

Check fix: one test was red because of this pull. test/tui-token-make.test.ts still looked for the old label "Claude Code plugin (c copies):" on the sign-ins screen. That screen now reads "Terminal agent plugin (c copies):", so the test was stale and I updated it to match. With the fix, test/tui-token-make.test.ts and test/standards.test.ts pass (39 tests) and bun x tsc --noEmit is clean. I did not rerun the full suite.

Not from this pull: the other failing shards (first-screen-line, spawn-in-process-visible, mcp-table, and the one-command drift test) were already red on main at ad44386 or are unrelated to this change. The check log says the first three are red on main too; for the drift test it didn't say. I left them alone.

To try it: open /settings/model and see the page titled "Connect your AI".

Changes requested — before the latest push

No security findings. Two things to fix: (1) Issue box 3 is not met. The pull's own note says no picker exists, but the issue asks that wherever a person picks a provider, the recommended one is listed first. The front-door assistant links (src/web/studio/home.ts, Open in ChatGPT / Claude / Grok) are that picker, and they are untouched, so either order them recommended-first with a marker or point out which picker is the right one. (2) The vendor-words test is lenient: whole-file exemptions plus regex literals mean it would not catch a vendor inside those files. Narrow the exemptions to the specific lines, and make the test also forbid the vendor-shaped placeholder sk-ant-… in crew_key.ts, which is still a vendor hint on a page that should say 'your AI'. Design: copy-only change, no principle broken. No docs needed (no new feature).

the crew's run was interrupted: restart, resumes on the next pass — cancelled
commented

Pages and the terminal now say "your AI" where they named a vendor, and a vendor's name stays only in the front-door picker. Review feedback is addressed.

Feedback addressed

  • Key placeholders: the sk-ant-… placeholders are gone. The subscriptions form now reads "your provider's key" and the crew key field reads "paste it here". The new-forge.ts reword of the validator's refusal text no longer prints sk-ant-oat…. The vendor-words test now also catches sk-ant.
  • Test exemptions: the vendor-words test now exempts specific lines instead of whole files, so new vendor wording in those files fails. The exempt lines are the MCP globals key, the runner's claude: log prefix, one changelog doc example, and the new-forge.ts line that matches the validator's text.
  • Recommended first: the front-door "Have an AI assistant?" links now list "Open in Claude" first, marked "(recommended)". A new test checks the order and the marker. This is the only vendor list in these files; there is still no provider picker here.

Checks

  • tsc, design-lint and gate are clean.
  • 42 tests across 10 targeted files pass. scripts/fast.ts was too broad to name tests, so I picked the files that cover the touched pages and screens.
  • I did not run the full suite. The forge's check runs it on this push.

To try it: run bun test test/vendor-words.test.ts, or open / signed out and see "Open in Claude (recommended)" first.

commented

Pages and the terminal now say "your AI", "model" or "runner" wherever a vendor's name isn't a literal the machine needs or a choice a person makes. That is the change #12126 asked for, as part of #12068.

This push fixes only the check failure: a 105-column comment line in test/vendor-words.test.ts, now rewrapped to two lines. The gate, tsc --noEmit and test/vendor-words.test.ts pass locally. I did not run the wider suite; the forge runs the full check on this push.

What changed in the pull

  • Pages and terminal wording say "your AI" and "Connect your AI", for example /settings/model.
  • A vendor's name stays only where a person picks one, such as the picker, which lists the recommended AI first, and the key placeholders, now neutral.
  • test/vendor-words.test.ts fails if a vendor name appears outside those places. Its exemptions are single lines with a stated reason, not whole files.

What I left out

  • Literals the machine needs keep their vendor names: install commands, FORGE_CLAUDE, protocol keys such as the ChatGPT Apps SDK globals, and the runner's own log prefix. The test lists each one.

Try it

  • Open /settings/model; the page is titled "Connect your AI".
  • Run bun test test/vendor-words.test.ts.
commented

Pages and the terminal now say "your AI", "model" or "runner" wherever a vendor's name isn't a literal the machine needs or a choice a person makes. This push only answers the before/after looks rule, which failed the last check.

Looks rule: I added an empty commit with a Looks: /settings/crew line. That page is in the looks list in forge.json, and src/web/pages/crew.ts is among the files this pull changes. The gate passes locally; I did not run tsc or any tests this round, since only a commit message changed.

What changed in the pull

  • Wording on the pages and in the terminal says "your AI" and "Connect your AI", for example /settings/model.
  • A vendor's name stays only where a person picks one, such as the picker, which lists the recommended AI first, and the key placeholders, now neutral.
  • test/vendor-words.test.ts fails if a vendor name appears outside those places. Its exemptions are single lines with a stated reason, not whole files.

What I left out

  • Literals the machine needs keep their vendor names: install commands, FORGE_CLAUDE, protocol keys such as the ChatGPT Apps SDK globals, and the runner's own log prefix. The test lists each one.
  • I did not add /settings/model to the looks list, so it has no before/after pictures of its own; /settings/crew stands in for the pages that were reworded.

Try it

  • Open /settings/model; the page is titled "Connect your AI".
  • Run bun test test/vendor-words.test.ts.
commented

I merged main into the branch and pushed. The branch merges cleanly again.

The conflict: it was one line in src/web/pages/crew.ts, the "No runner" message. I kept this pull's wording ("the runner on PATH") and took main's renamed variable, FORGE_AGENT_RUNNER, in place of FORGE_CLAUDE.

Checks run before the push:

  • The gate and tsc --noEmit pass.
  • scripts/fast.ts could not name a test list, because the merge touched too many files. So I ran 717 tests across 113 files that cover this change, all that hold the vendor wording, the agent pages and the runner. 675 pass, 42 skip and 0 fail. I did not run the whole suite; the forge runs the full check on this push.

What changed in the pull

  • Pages and terminal wording say "your AI" and "Connect your AI", for example /settings/model. A vendor's name stays only where a person picks one, such as the picker, which lists the recommended AI first.
  • test/vendor-words.test.ts fails if a vendor name appears elsewhere. Its exemptions are single lines with a stated reason.

What I left out

  • Literals the machine needs keep their vendor names: install commands, protocol keys, and the runner's own log prefix.
  • /settings/model is not in the looks list, so the before/after pictures use /settings/crew.

Try it

  • Open /settings/model; the page is titled "Connect your AI".
  • Run bun test test/vendor-words.test.ts.
Approved

Wording is neutral across the listed pages and screens, the model page is titled "Connect your AI", and the front-door picker lists Claude first, marked recommended. The vendor-words test uses single-line exemptions, each with a reason. Earlier asks (placeholders, line-level exemptions, recommended-first) are met. Non-blocking: the picker-order test reads source with indexOf, so it is brittle; a rendered-page check would be sturdier.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs