Skip to content

fix(branding): replace remaining user-facing "Roo" strings with "Zoo"#971

Open
rrewll wants to merge 5 commits into
Zoo-Code-Org:mainfrom
rrewll:fix/rename-roo-to-zoo-user-strings
Open

fix(branding): replace remaining user-facing "Roo" strings with "Zoo"#971
rrewll wants to merge 5 commits into
Zoo-Code-Org:mainfrom
rrewll:fix/rename-roo-to-zoo-user-strings

Conversation

@rrewll

@rrewll rrewll commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Related GitHub Issue

Closes: #551

Description

Replace user-facing product references from "Roo" to "Zoo":

  • Webview panel and editor tab titles
  • Integrated terminal names
  • Diff view labels
  • VS Code LM authorization justification
  • LM Studio context-length error messages
  • Output channel "no visible instances" message
  • Missing-parameter tool error (now i18n-keyed via tools:missingToolParameter[WithPath] across all 16 locales)
  • Webview-ui localization strings (chat, settings, prompts across all locales)

Add test coverage for sayAndCreateMissingParamError to ensure the localized error messages correctly interpolate tool names and parameter names, preventing silent i18n regressions. Also add test coverage for openClineInNewTab to ensure the new editor tab title names as "Zoo Code" instead of "Roo Code".

Per review feedback, references to the external Roo provider/router remain untouched: the routerRemoval messages, errors.roo/info.roo i18n keys, Roo credit-balance notices, and other internal identifiers that reference the legacy Roo provider rather than our brand.

Test Procedure

  • pnpm test - 414 test files and 6794 tests passed
  • pnpm lint - all checks are successful
  • pnpm check-types - all checks are successful
  • node scripts/find-missing-translations.js - all translations are complete across all checked areas

Pre-Submission Checklist

  • Issue Linked: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
  • Scope: My changes are focused on the linked issue (one major feature/fix per PR).
  • Self-Review: I have performed a thorough self-review of my code.
  • Testing: New and/or updated tests have been added to cover my changes (if applicable).
  • Documentation Impact: I have considered if my changes require documentation updates (see "Documentation Updates" section below).
  • Contribution Guidelines: I have read and agree to the Contributor Guidelines.

Documentation Updates

No documentation updates are required

Additional Notes

This PR is the continuation of #343. Unfortunately, I couldn't get hold of the author of this PR, so this is the "fork" of the PR above.

Summary by CodeRabbit

  • New Features

    • Added localized retry messages when a required tool parameter is missing, including an optional relative-path variant, across supported languages.
    • Opening the assistant in a new tab now shows the “Zoo Code” title.
  • Bug Fixes

    • Updated user-facing UI, webview titles, and provider/error messaging to consistently use “Zoo Code” branding instead of the previous name.
  • Tests

    • Expanded coverage for the new-tab webview creation and for missing-parameter error notice generation.

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: bf576412-c23f-49d8-9ae7-006c9e0e88b4

📥 Commits

Reviewing files that changed from the base of the PR and between 120254b and 9a00a58.

📒 Files selected for processing (2)
  • src/api/providers/vscode-lm.ts
  • src/api/transform/vscode-lm-format.ts

📝 Walkthrough

Walkthrough

The changes replace remaining Roo branding with Zoo across runtime messages and webview locales, add localized missing-tool-parameter retry messages in supported languages, and add tests for tab-panel creation and both task error-message branches.

Changes

Branding and localization updates

Layer / File(s) Summary
Runtime branding and coverage tests
src/activate/..., src/api/providers/..., src/api/transform/..., src/core/webview/ClineProvider.ts, src/activate/__tests__/*
Runtime panel titles, webview HTML titles, provider messages, transformation logs, and activation tests now use “Zoo”.
Localized missing-parameter errors
src/core/task/Task.ts, src/core/task/__tests__/Task.spec.ts, src/i18n/locales/*/tools.json
Missing required tool parameters use generic or path-aware translation keys, with localized entries and tests covering both branches.
Webview UI branding
webview-ui/src/i18n/locales/*/{chat,prompts,settings}.json
User-facing chat, prompt, and settings translations replace “Roo” references with “Zoo” across supported locales.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested reviewers: navedmerchant, taltas, edelauna

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR covers many branding strings, but several linked-issue items like MCP OAuth, checkpoints, router/cloud text, and common.json remain unchanged. Update the remaining user-visible Roo references called out in #551, including MCP OAuth/client names, router/cloud text, checkpoints, and common locale strings.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title concisely states the main branding rename and matches the changeset.
Description check ✅ Passed The PR description matches the template and includes issue link, summary, tests, checklist, and docs note.
Out of Scope Changes check ✅ Passed All changed files align with branding, i18n, or test coverage for the Roo-to-Zoo rename; no unrelated code paths appear added.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 24.32432% with 28 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/api/providers/vscode-lm.ts 21.21% 26 Missing ⚠️
src/api/transform/vscode-lm-format.ts 0.00% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

@rrewll
rrewll force-pushed the fix/rename-roo-to-zoo-user-strings branch 2 times, most recently from 59622cd to fb30376 Compare July 21, 2026 13:26
@rrewll
rrewll marked this pull request as ready for review July 21, 2026 13:47
Replace user-facing product references from "Roo" to "Zoo":
- Webview panel and editor tab titles
- Integrated terminal names
- Diff view labels
- VS Code LM authorization justification
- LM Studio context-length error messages
- Missing-parameter tool error (now i18n-keyed via tools:missingToolParameter[WithPath] across all 16 locales)
- Webview-ui localization strings (chat, settings, prompts across all locales)

Per review feedback, references to the external Roo provider/router remain
untouched: the routerRemoval messages, errors.roo/info.roo i18n keys, Roo
credit-balance notices, and other internal identifiers that reference the
legacy Roo provider rather than our brand.
@rrewll
rrewll force-pushed the fix/rename-roo-to-zoo-user-strings branch from fb30376 to 1d47890 Compare July 21, 2026 13:51

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.changeset/branding-roo-to-zoo-user-strings.md (1)

1-8: 📐 Maintainability & Code Quality | 🔴 Critical | ⚡ Quick win

Remove the changeset file.

As per path instructions, do NOT create .changeset files for each commit or code change. Changesets are managed separately by maintainers and should not be generated by agents during normal development.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/branding-roo-to-zoo-user-strings.md around lines 1 - 8, Remove
the changeset file described by the diff; do not add or modify any other
changeset files.

Source: Path instructions

🧹 Nitpick comments (1)
src/core/task/__tests__/Task.spec.ts (1)

442-450: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Assert that relPath is present in the output.

The test validates that toolName and paramName make it through the i18n interpolation, but it misses asserting that the relPath (src/foo.ts) is also properly injected in the withPathNotice. Asserting this will prevent future regressions in the interpolation logic.

♻️ Proposed refactor
 			const [withoutPathChannel, withoutPathNotice] = saySpy.mock.calls[1]
 			expect(withPathChannel).toBe("error")
 			expect(withoutPathChannel).toBe("error")
 			expect(withPathNotice).toEqual(expect.stringContaining("read_file"))
 			expect(withPathNotice).toEqual(expect.stringContaining("path"))
+			expect(withPathNotice).toEqual(expect.stringContaining("src/foo.ts"))
 			expect(withoutPathNotice).toEqual(expect.stringContaining("execute_command"))
 			expect(withoutPathNotice).toEqual(expect.stringContaining("command"))
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/core/task/__tests__/Task.spec.ts` around lines 442 - 450, Update the test
assertions for withPathNotice in the saySpy call checks to also require the
expected relPath value, “src/foo.ts”, while preserving the existing toolName and
paramName assertions.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/api/providers/vscode-lm.ts`:
- Line 398: Complete the branding migration in the VS Code LM provider by
replacing remaining user-facing “Roo Code <Language Model API>” references in
the handler’s errors and diagnostics with the consistent “Zoo Code” branding.
Update the messages near the authorization justification and the referenced
error/diagnostic paths while preserving their existing behavior and details.

In `@webview-ui/src/i18n/locales/ko/settings.json`:
- Line 801: Update the Korean settings description string at the terminal
description entry to remove the corrupted replacement characters and restore the
intended Korean text, preserving the existing meaning, formatting, and embedded
<0>자세히 알아보기</0> link.

---

Outside diff comments:
In @.changeset/branding-roo-to-zoo-user-strings.md:
- Around line 1-8: Remove the changeset file described by the diff; do not add
or modify any other changeset files.

---

Nitpick comments:
In `@src/core/task/__tests__/Task.spec.ts`:
- Around line 442-450: Update the test assertions for withPathNotice in the
saySpy call checks to also require the expected relPath value, “src/foo.ts”,
while preserving the existing toolName and paramName assertions.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b657f42e-2d6a-4ce7-b26a-0a6a4981f609

📥 Commits

Reviewing files that changed from the base of the PR and between f2bdcb6 and fb30376.

📒 Files selected for processing (63)
  • .changeset/branding-roo-to-zoo-user-strings.md
  • src/activate/__tests__/registerCommands.spec.ts
  • src/activate/registerCommands.ts
  • src/api/providers/lm-studio.ts
  • src/api/providers/vscode-lm.ts
  • src/core/task/Task.ts
  • src/core/task/__tests__/Task.spec.ts
  • src/core/webview/ClineProvider.ts
  • src/i18n/locales/ca/tools.json
  • src/i18n/locales/de/tools.json
  • src/i18n/locales/en/tools.json
  • src/i18n/locales/es/tools.json
  • src/i18n/locales/fr/tools.json
  • src/i18n/locales/hi/tools.json
  • src/i18n/locales/id/tools.json
  • src/i18n/locales/it/tools.json
  • src/i18n/locales/ja/tools.json
  • src/i18n/locales/ko/tools.json
  • src/i18n/locales/nl/tools.json
  • src/i18n/locales/pl/tools.json
  • src/i18n/locales/pt-BR/tools.json
  • src/i18n/locales/ru/tools.json
  • src/i18n/locales/tr/tools.json
  • src/i18n/locales/vi/tools.json
  • src/i18n/locales/zh-CN/tools.json
  • src/i18n/locales/zh-TW/tools.json
  • webview-ui/src/i18n/locales/ca/chat.json
  • webview-ui/src/i18n/locales/ca/settings.json
  • webview-ui/src/i18n/locales/de/chat.json
  • webview-ui/src/i18n/locales/de/prompts.json
  • webview-ui/src/i18n/locales/de/settings.json
  • webview-ui/src/i18n/locales/es/chat.json
  • webview-ui/src/i18n/locales/es/settings.json
  • webview-ui/src/i18n/locales/fr/chat.json
  • webview-ui/src/i18n/locales/fr/settings.json
  • webview-ui/src/i18n/locales/hi/chat.json
  • webview-ui/src/i18n/locales/hi/settings.json
  • webview-ui/src/i18n/locales/id/chat.json
  • webview-ui/src/i18n/locales/id/settings.json
  • webview-ui/src/i18n/locales/it/chat.json
  • webview-ui/src/i18n/locales/it/settings.json
  • webview-ui/src/i18n/locales/ja/chat.json
  • webview-ui/src/i18n/locales/ja/prompts.json
  • webview-ui/src/i18n/locales/ja/settings.json
  • webview-ui/src/i18n/locales/ko/chat.json
  • webview-ui/src/i18n/locales/ko/prompts.json
  • webview-ui/src/i18n/locales/ko/settings.json
  • webview-ui/src/i18n/locales/nl/chat.json
  • webview-ui/src/i18n/locales/nl/settings.json
  • webview-ui/src/i18n/locales/pl/chat.json
  • webview-ui/src/i18n/locales/pl/settings.json
  • webview-ui/src/i18n/locales/pt-BR/chat.json
  • webview-ui/src/i18n/locales/pt-BR/settings.json
  • webview-ui/src/i18n/locales/ru/chat.json
  • webview-ui/src/i18n/locales/ru/settings.json
  • webview-ui/src/i18n/locales/tr/chat.json
  • webview-ui/src/i18n/locales/tr/settings.json
  • webview-ui/src/i18n/locales/vi/chat.json
  • webview-ui/src/i18n/locales/vi/settings.json
  • webview-ui/src/i18n/locales/zh-CN/chat.json
  • webview-ui/src/i18n/locales/zh-CN/prompts.json
  • webview-ui/src/i18n/locales/zh-CN/settings.json
  • webview-ui/src/i18n/locales/zh-TW/chat.json

Comment thread src/api/providers/vscode-lm.ts
Comment thread webview-ui/src/i18n/locales/ko/settings.json Outdated
@navedmerchant

Copy link
Copy Markdown
Contributor

Thanks for this, can you please fix the CodeRabbit comment?

@rrewll

rrewll commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for this, can you please fix the CodeRabbit comment?

Ok, one short question: should I fix all non user-facing "Roo" mentions in this PR like console.warn or errors in the whole project or in @src/api/providers/vscode-lm.ts only?

Ok, I have fixed it

@github-actions github-actions Bot added the awaiting-review PR changes are ready and waiting for maintainer re-review label Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-review PR changes are ready and waiting for maintainer re-review

Projects

None yet

2 participants