fix(branding): replace remaining user-facing "Roo" strings with "Zoo"#343
fix(branding): replace remaining user-facing "Roo" strings with "Zoo"#343proyectoauraorg wants to merge 3 commits into
Conversation
Several user-visible strings still showed the upstream "Roo" brand instead of "Zoo": - the missing-tool-parameter retry notice (was hardcoded in Task.ts; now localized via tools:missingToolParameter / missingToolParameterWithPath across all 18 locales, matching the existing unknownToolError pattern) - the editor tab title and the webview <title> - the diff editor label and the integrated terminal name - the "no visible instances" output-channel line - the credit-balance and LM Studio context-length error notices - the router/cloud removal messages (common.json + routerRemoval.ts) Internal identifiers are intentionally left unchanged: the legacy provider id "roo", .roo* config file references, i18n key paths, OpenRouter X-Title attribution headers, MCP/checkpoint client names, and console logs.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughReplaces user-facing "Roo" branding with "Zoo" across UI strings, webview titles, diff/terminal labels, router removal messages, LM provider messages, and adds localized missing-parameter messages across locales; tests updated to match. ChangesBranding rename: Roo to Zoo
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
src/api/providers/vscode-lm.tsESLint skipped: missing config or dependency (missing-dependency). The ESLint configuration references a package that is not available in the sandbox. 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. Comment |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Exercises both relPath branches of the now-localized missing-tool-parameter error so the changed lines in Task.ts are covered (addresses the codecov patch-coverage gap on Zoo-Code-Org#343).
|
What do you think about it? Zoo-Code/src/api/providers/vscode-lm.ts Lines 396 to 400 in b91a0c1
|
edelauna
left a comment
There was a problem hiding this comment.
nice thanks for tackling there some feedback regarding legit Roo instances that should stay.
| expect(saySpy).toHaveBeenNthCalledWith(1, "error", expect.any(String)) | ||
| expect(saySpy).toHaveBeenNthCalledWith(2, "error", expect.any(String)) |
There was a problem hiding this comment.
Could these also check that the resolved string actually contains the tool name or param name? If t() returns the key (or falls back to an empty string) in the test env, expect.any(String) still passes — so a silent i18n regression would go undetected here.
| const ROUTER_REMOVAL_I18N_KEY = "common:errors.roo.routerRemoved" | ||
| const ROUTER_REMOVAL_DEFAULT_MESSAGE = | ||
| "Roo Code Router has been removed. Please select and configure a different provider." | ||
| "Zoo Code Router has been removed. Please select and configure a different provider." |
There was a problem hiding this comment.
this should stay as Roo - this whole file is referencing the old Roo router, but this should probably be i18n keyed, not sure why we'd need a default message.
| relPath | ||
| ? t("tools:missingToolParameterWithPath", { | ||
| toolName, | ||
| relPath: relPath.toPosix(), | ||
| paramName, | ||
| }) | ||
| : t("tools:missingToolParameter", { toolName, paramName }), |
There was a problem hiding this comment.
nice - what does this render as?
| type: "rooCreditBalance", | ||
| requestId, | ||
| values: { error: "Roo credit balance is no longer available." }, | ||
| values: { error: "Zoo credit balance is no longer available." }, |
There was a problem hiding this comment.
leave this as Roo - wonder if this should be i18n keyed though
| "authenticationRequired": "Roo provider requires cloud authentication. Please sign in to Roo Code Cloud.", | ||
| "routerRemoved": "Roo Code Router has been removed. Please select and configure a different provider." | ||
| "authenticationRequired": "Zoo provider requires cloud authentication. Please sign in to Zoo Code Cloud.", | ||
| "routerRemoved": "Zoo Code Router has been removed. Please select and configure a different provider." |
There was a problem hiding this comment.
router Removed should stay roo
| "mode_imported": "Mode imported successfully", | ||
| "roo": { | ||
| "signInUnavailable": "Roo Code Cloud sign-in is currently unavailable. Configure another provider to continue." | ||
| "signInUnavailable": "Zoo Code Cloud sign-in is currently unavailable. Configure another provider to continue." |
There was a problem hiding this comment.
same with this - this is an error message when trying to access roo as a provider
|
Good catch @rrewll! That's a leftover string in Let me push a fix now. |
Addresses review feedback from @rrewll on PR Zoo-Code-Org#343.

What & why
Several user-visible strings still showed the upstream "Roo" brand instead of "Zoo". The most visible one was the missing-tool-parameter retry notice in chat:
That message was hardcoded in
Task.ts(unlike its siblingsunknownToolError/invalidJsonArgument, which are already localized to "Zoo"). The editor tab and several other surfaces had the same leftover.Changes
Task.ts— the missing-parameter notice is now localized via new keystools:missingToolParameter/tools:missingToolParameterWithPath, added and translated across all 18 locales (mirroring the existingunknownToolErrorpattern).createWebviewPanel), the webview<title>, the diff editor label (DIFF_VIEW_LABEL_CHANGES), and the integrated terminal name.common.json(18 locales) and the fallback constants inrouterRemoval.ts.Tests updated to assert the new strings.
Intentionally not changed
To avoid breaking internals or rewriting history, these "Roo" occurrences are left as-is:
rooand.roo*config file references;errors.roo.*);X-Titleattribution headers and MCP/checkpoint client names (sent to external services, not shown in the VS Code UI);Verification
node scripts/find-missing-translations.js→ ✅ all locales completetsc --noEmiton the changed files → cleaneslint→ cleanviteston the affected specs → 131 passingSummary by CodeRabbit
New Features
Documentation
Tests