AI: Use plain agent names and help text #914

Open
opened 2026-10-02 17:39:56 +00:00 by kayg · 2 comments
Owner

Rule: the 2026-10-02 owner rule says not to name third-party products in the UI. Use plain words. The current AI commands, labels and setup text expose vendor names and infrastructure details.

Findings and proposed copy:

  • apps/web/src/lib/ai/mention.ts:21: Claude, Codex → use calternal-owned names such as Agent 1 and Agent 2.
  • :76-77: Mention @claude or @codex to choose an agent. / Mention one agent only: @claude or @codex. → Choose one agent before you send. / Choose one agent at a time.
  • :110: Claude Code, with your Claude subscription / Codex, with your ChatGPT or OpenAI account → Uses the account connected for this agent.
  • apps/web/src/routes/settings/ai/AiSection.svelte:44-49: Claude Code token, Codex access token, and both setup instructions name vendor commands and accounts. Use Agent sign-in and tell the User to paste the sign-in code for that agent.
  • :135-136: Ask @claude or @codex..., isolated container, a key that ends with the turn, and read-only → explain how to choose an agent and what it can do in plain words. For example: Choose an agent from Search, a note or Files. It can use only the data you can access. Its access ends when its work is done. You can undo its changes. Ask uses your data to answer and does not change it.
  • apps/web/src/lib/ai/commands.ts:53-55: Ask @{provider}… and Give {provider} a task in your agent container → Ask an agent… and Give this agent a task.
  • apps/web/src/lib/ai/api.ts:127,130: the request error names both vendor commands, uses 48 KB, and says provider and credential. Say Choose one agent and send a shorter question or less context. and Connect this agent in Settings → AI.
  • apps/web/src/lib/components/search-dialog.svelte:713,885: the screen-reader help and empty state say Claude or Codex. Say Choose an agent and Choose an agent to get an answer with links to its sources.
  • apps/web/src/routes/settings/ai/TurnHistory.svelte:32: the empty state tells the User to type both vendor command names. Say No turns yet. Open Search, choose Ask, and send a question. Keep the explanation that agent changes can be undone and Ask does not change data.
  • apps/web/src/lib/notes/NoteView.svelte:507-508,583-584: Ask @claude about… and Ask @codex about… → Ask an agent about….
  • apps/web/src/lib/files/FilesBrowser.svelte:1179-1180: Ask @claude… and Ask @codex… → Ask an agent… and let the User choose the agent in the next step.

Expected: the UI uses calternal-owned agent names and a visible choice. Keep the existing actions and permissions. Do not show vendor names, vendor commands, container names, or token limits in ordinary help text.

Test idea: open Ask, Settings → AI, Turn History, a note action menu and a Files action menu. Check visible and screen-reader copy. Choose each agent and confirm that the right agent still starts and that its access rules do not change.

Rule: the 2026-10-02 owner rule says not to name third-party products in the UI. Use plain words. The current AI commands, labels and setup text expose vendor names and infrastructure details. Findings and proposed copy: - `apps/web/src/lib/ai/mention.ts:21`: `Claude`, `Codex` → use calternal-owned names such as `Agent 1` and `Agent 2`. - `:76-77`: `Mention @claude or @codex to choose an agent.` / `Mention one agent only: @claude or @codex.` → `Choose one agent before you send.` / `Choose one agent at a time.` - `:110`: `Claude Code, with your Claude subscription` / `Codex, with your ChatGPT or OpenAI account` → `Uses the account connected for this agent.` - `apps/web/src/routes/settings/ai/AiSection.svelte:44-49`: `Claude Code token`, `Codex access token`, and both setup instructions name vendor commands and accounts. Use `Agent sign-in` and tell the User to paste the sign-in code for that agent. - `:135-136`: `Ask @claude or @codex...`, `isolated container`, `a key that ends with the turn`, and `read-only` → explain how to choose an agent and what it can do in plain words. For example: `Choose an agent from Search, a note or Files. It can use only the data you can access. Its access ends when its work is done. You can undo its changes. Ask uses your data to answer and does not change it.` - `apps/web/src/lib/ai/commands.ts:53-55`: `Ask @{provider}…` and `Give {provider} a task in your agent container` → `Ask an agent…` and `Give this agent a task`. - `apps/web/src/lib/ai/api.ts:127,130`: the request error names both vendor commands, uses `48 KB`, and says `provider` and `credential`. Say `Choose one agent and send a shorter question or less context.` and `Connect this agent in Settings → AI.` - `apps/web/src/lib/components/search-dialog.svelte:713,885`: the screen-reader help and empty state say `Claude or Codex`. Say `Choose an agent` and `Choose an agent to get an answer with links to its sources.` - `apps/web/src/routes/settings/ai/TurnHistory.svelte:32`: the empty state tells the User to type both vendor command names. Say `No turns yet. Open Search, choose Ask, and send a question.` Keep the explanation that agent changes can be undone and Ask does not change data. - `apps/web/src/lib/notes/NoteView.svelte:507-508,583-584`: `Ask @claude about…` and `Ask @codex about…` → `Ask an agent about…`. - `apps/web/src/lib/files/FilesBrowser.svelte:1179-1180`: `Ask @claude…` and `Ask @codex…` → `Ask an agent…` and let the User choose the agent in the next step. Expected: the UI uses calternal-owned agent names and a visible choice. Keep the existing actions and permissions. Do not show vendor names, vendor commands, container names, or token limits in ordinary help text. Test idea: open Ask, Settings → AI, Turn History, a note action menu and a Files action menu. Check visible and screen-reader copy. Choose each agent and confirm that the right agent still starts and that its access rules do not change.
Author
Owner

One more screen-reader label in the Ask window

apps/web/src/lib/components/search-dialog.svelte:839 sets the list label to Answer providers. Use Answer choices so the screen-reader name matches the plain agent choice labels in this issue.

One more screen-reader label in the Ask window `apps/web/src/lib/components/search-dialog.svelte:839` sets the list label to `Answer providers`. Use `Answer choices` so the screen-reader name matches the plain agent choice labels in this issue.
Author
Owner

Repair on job/copyfix (not pushed). The branch over-applied the product-name rule.

Clarified rule (owner, 2026-10-02): do not name competing apps (other notes, calendar, mail or photo apps) in UI, code or comments. Platform, OS, browser, protocol and client names that state technical facts stay. AI providers that the User connects and chooses (Claude, Codex) stay in the UI, because the User must tell them apart.

  • 5e2efaed9 fix(ai): restore Claude and Codex names and @provider commands. PROVIDER_LABEL is Claude/Codex again. > ask @claude / > ask @codex work as before (the Agent 1/Agent 2 alias parser is removed). The per-agent note and Files actions, the token setup help and the stream-format comments are back. Plain copy is kept for the start-failure errors, the Agents intro, the 503 messages and Title Case group names.
  • dd1f5195a fix(web): restore browser, platform, font and photo source facts. Passkey help and default passkey names name Safari, Chrome, Edge and Firefox again. Files paste toasts name Finder, Safari and Firefox again. Push setup names iPhone, iPad, Safari and iOS 16.4 again. The codec comment is back. "Google Sans" is the font name. Unsplash keeps its name, because the Unsplash API terms require the "Photo by X on Unsplash" credit.
  • Kept: Plugins → Features (#921), "turned off" copy, calm denied-permission copy (#925, #927), Title Case card names.

Gates: bun run check: 0 errors, 0 warnings. Focused Vitest (src/lib/ai, passkeys, recorder, push, fontsGroup, search access, settings sections): 11 files, 59 tests passed.

Repair on `job/copyfix` (not pushed). The branch over-applied the product-name rule. Clarified rule (owner, 2026-10-02): do not name competing apps (other notes, calendar, mail or photo apps) in UI, code or comments. Platform, OS, browser, protocol and client names that state technical facts stay. AI providers that the User connects and chooses (Claude, Codex) stay in the UI, because the User must tell them apart. - `5e2efaed9` fix(ai): restore Claude and Codex names and @provider commands. PROVIDER_LABEL is Claude/Codex again. `> ask @claude` / `> ask @codex` work as before (the Agent 1/Agent 2 alias parser is removed). The per-agent note and Files actions, the token setup help and the stream-format comments are back. Plain copy is kept for the start-failure errors, the Agents intro, the 503 messages and Title Case group names. - `dd1f5195a` fix(web): restore browser, platform, font and photo source facts. Passkey help and default passkey names name Safari, Chrome, Edge and Firefox again. Files paste toasts name Finder, Safari and Firefox again. Push setup names iPhone, iPad, Safari and iOS 16.4 again. The codec comment is back. "Google Sans" is the font name. Unsplash keeps its name, because the Unsplash API terms require the "Photo by X on Unsplash" credit. - Kept: Plugins → Features (#921), "turned off" copy, calm denied-permission copy (#925, #927), Title Case card names. Gates: `bun run check`: 0 errors, 0 warnings. Focused Vitest (`src/lib/ai`, passkeys, recorder, push, fontsGroup, search access, settings sections): 11 files, 59 tests passed.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#914
No description provided.