-
Notifications
You must be signed in to change notification settings - Fork 2.9k
refactor: remove browser use functionality entirely #11392
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Generated with ❤️ by ellipsis.dev |
All previously flagged issues remain resolved. The latest commit (4a24523) adds a type assertion to
Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues. |
46828a3 to
18c5e5e
Compare
4e4b63d to
ced265e
Compare
Remove all Puppeteer-based browser automation (browser_action tool, BrowserSession, BrowserSessionPanelManager, browser settings, browser panel) from the codebase. - Delete src/services/browser/ (BrowserSession, UrlContentFetcher, browserDiscovery) - Delete BrowserActionTool and browser_action prompt template - Delete BrowserSessionPanelManager and browser panel webview - Delete BrowserSettings, BrowserActionRow, BrowserSessionRow UI components - Remove browser from packages/types (tool groups, message types, state, settings) - Remove browser from CLI agent and tool display - Remove puppeteer-core and puppeteer-chromium-resolver dependencies - Remove browser-related i18n keys across all 18 locales - Update all test files to remove browser fixtures and assertions 165 files changed, 84 insertions(+), 8256 deletions(-)
… residuals and dead code - Restore isStealthModel lookup in generateSystemPrompt.ts that was accidentally removed with the browser modelInfo fetch - Remove residual screenshotQuality and cachedChromeHostUrl from GlobalSettings, ExtensionState, ClineProvider, and ExtensionStateContext - Remove unused containsXmlToolMarkup function from presentAssistantMessage.ts
f2d76f2 to
0f7c820
Compare
… validation Add z.preprocess() to groupEntryArraySchema that filters out deprecated tool groups (currently 'browser') before Zod schema validation runs. This ensures users with older custom_modes.yaml or .roomodes files that include 'browser' in their groups arrays don't get schema validation errors. The fix is at the schema level, so it automatically protects all validation entry points: CustomModesManager (load, watch, update, import), ContextProxy (global settings), and ModesView (UI). Adds 6 new test cases covering string groups, tuple groups, and edge cases.
…pile z.preprocess erases the input type to `unknown`, which propagates through modeConfigSchema → rooCodeSettingsSchema → createRunSchema and breaks zodResolver generic inference in web-evals new-run form. The assertion to `z.ZodType<GroupEntry[], z.ZodTypeDef, GroupEntry[]>` restores proper input/output type alignment.
Summary
Complete removal of Roo Code's built-in Puppeteer-based browser automation (browser-use) functionality. Dedicated tools like Playwright MCP have surpassed what our built-in integration could offer, and maintaining it added significant surface area to the codebase. By removing it, we narrow our focus to what Roo Code does best and enable faster iteration on a smaller, more focused codebase. This is part of a broader cleanup initiative to reduce complexity and sharpen our development focus.
Users who need browser automation can integrate Playwright MCP or similar tools via the MCP server ecosystem — a more powerful and maintainable approach than our previous built-in solution.
Changes
Deleted subsystems (~28 files):
src/services/browser/— BrowserSession, UrlContentFetcher, browserDiscovery + testssrc/core/tools/BrowserActionTool.ts+ coordinate scaling and screenshot testssrc/core/prompts/tools/native-tools/browser_action.ts— prompt templatesrc/core/webview/BrowserSessionPanelManager.ts— panel managementwebview-ui/src/components/browser-session/— browser session panel UIwebview-ui/src/components/settings/BrowserSettings.tsx— settings panelwebview-ui/src/components/chat/BrowserActionRow.tsx,BrowserSessionRow.tsx,BrowserSessionStatusRow.tsx+ testswebview-ui/src/browser-panel.tsx,webview-ui/browser-panel.htmlapps/cli/src/ui/components/tools/BrowserTool.tsxsrc/shared/browserUtils.tsType removals (packages/types):
"browser"fromtoolGroups,"browser_action"from tool namesBrowserAction,browserActions,BrowserActionParams,ClineSayBrowserActionbrowser_action_launch,browser_action,browser_action_result,browser_session_statusmessage typesalwaysAllowBrowser,browserToolEnabled,browserViewportSize,remoteBrowserEnabled,remoteBrowserHost,isBrowserSessionActivefrom state/settingsDependencies removed:
puppeteer-chromium-resolverandpuppeteer-corefromsrc/package.jsonandapps/vscode-nightly/build/package.jsoni18n cleanup:
chat.json,settings.json,prompts.jsonacross all 18 locales (54 files)Test updates (~40 files):
Stats: 165 files changed, 84 insertions, 8302 deletions
Verification
tsc --noEmitpasses acrosssrc/,webview-ui/,packages/types/,apps/cli/