Skip to content

Reapply Batches 3-4: Skills, browser removal, provider removals (6 major-conflict cherry-picks)#11475

Merged
hannesrudolph merged 15 commits intomainfrom
reapply/batch-3-4-5-major-conflicts
Feb 15, 2026
Merged

Reapply Batches 3-4: Skills, browser removal, provider removals (6 major-conflict cherry-picks)#11475
hannesrudolph merged 15 commits intomainfrom
reapply/batch-3-4-5-major-conflicts

Conversation

@hannesrudolph
Copy link
Collaborator

Reapply Batches 3-4 — Major Conflict Cherry-Picks

Steps 3-4 of the reapplication plan from docs/reapplication-plan.md

Context

Following Batch 1 (PR #11473, 22 PRs) and Batch 2 (PR #11474, 9 PRs), this PR reapplies 6 major-conflict PRs covering skills infrastructure, browser use removal, and provider removals. All product decisions approved.

What This Adds (6 cherry-picks + 3 fix commits)

Batch 3 — Skills Infrastructure & Browser Use Removal

Batch 4 — Provider Removals

Fix Commits

  • 7ba4134215 — fix: resolve AI-SDK contamination and ghost imports from cherry-picks
  • 902d8d5d0d — fix: add missing skills type exports to @roo-code/types
  • 07352a4807 — fix: resolve SkillsSettings import, Dialog mock, and Task.ts type errors

Total conflicts resolved: 77

Skipped PRs (reclassified as AI-SDK-entangled)

AI SDK Contamination Check ✅

  • No rooMessage.ts file
  • No RooMessage, readRooMessages, saveRooMessages references
  • No from "ai" or @ai-sdk imports in diff

Verification

✅ 5,224 backend tests passed (362 files)
✅ 1,267 webview-ui tests passed (119 files)
✅ 14/14 packages type-check clean

Summary of all reapplication work

Batch PRs Status
Batch 1 22 clean cherry-picks ✅ Merged (PR #11473)
Batch 2 9 minor-conflict cherry-picks ✅ Merged (PR #11474)
Batch 3-4 6 major-conflict cherry-picks This PR
Deferred 5 AI-SDK-entangled PRs Require re-implementation

Related

SannidhyaSah and others added 10 commits February 14, 2026 16:48
…1102)

Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
…port (#11157)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
…ch checkboxes (#11253)

Remove the "Enable URL context" and "Enable Grounding with Google search"
checkboxes from Gemini and Vertex provider settings, along with:

- enableUrlContext and enableGrounding fields from provider settings schemas
- URL context and Google Search tool injection in completePrompt methods
- Associated translation keys from all 18 locale files
- Related test cases updated to reflect the removal
- simplifySettings prop removed from Gemini and Vertex components
  (it was only used for the removed checkboxes in those components)

Co-authored-by: Roo Code <roomote@roocode.com>
…11297)

* refactor: remove 9 low-usage providers (Phase 0)

Remove Cerebras, Chutes, DeepInfra, Doubao, Featherless, Groq,
Hugging Face, IO Intelligence, and Unbound providers from the codebase.

Each provider removal includes: handler, tests, model definitions,
type schemas, UI settings components, fetchers, i18n references,
and all wiring in shared registration/config files.

- Delete 42 provider-specific files (handlers, tests, fetchers, UI components)
- Remove @ai-sdk/cerebras and @ai-sdk/groq npm dependencies
- Clean provider references from 68 shared files across src/, packages/types/,
  webview-ui/, and apps/cli/
- Remove ~490 dead i18n translation keys across 36 locale files
- Add docs/ai-sdk-migration-guide.md with updated migration status
- All TypeScript checks pass, 6505 tests pass with 0 failures

* feat: show retired-provider message for removed provider profiles

Preserve API profiles that reference removed providers instead of
silently stripping their apiProvider. When a user selects a profile
configured for a retired provider, the settings UI now shows an
empathetic message explaining the removal instead of the provider
configuration form.

- Add retiredProviderNames array and isRetiredProvider() helper to
  packages/types/src/provider-settings.ts
- Update ProviderSettingsManager sanitization to preserve retired
  providers (only strip truly unknown values)
- Update ContextProxy sanitization to preserve retired providers
- Render retired-provider message in ApiOptions.tsx when selected
  provider is in the retired list
- Add tests for sanitization, ContextProxy, and UI behavior

* feat: add retired-provider warning banner in chat view

* Revert "feat: add retired-provider warning banner in chat view"

This reverts commit dd593e1.

* feat: show retired-provider message as inline chat response

* fix: show retired provider warning on home screen

Move WarningRow outside {task && ...} conditional so it renders
regardless of task state. Preserve user input on retired provider
intercept so text isn't lost when switching providers.

- Move showRetiredProviderWarning WarningRow to unconditional render
  area near ProfileViolationWarning
- Remove setInputValue/setSelectedImages clearing from retired
  provider early return in handleSendMessage
- Delete unused RetiredProviderWarning.tsx (dead code)

* fix: address PR review — passthrough retired-provider fields and i18n strings

- Use passthrough() in saveConfig() and load() so legacy provider-specific
  fields (e.g. groqApiKey, deepInfraModelId) are preserved instead of
  silently stripped by strict Zod parse()
- Move hardcoded English strings in ApiOptions.tsx and ChatView.tsx to
  i18n translation keys (settings:providers.retiredProviderMessage,
  chat:retiredProvider.{title,message,openSettings})
- Update tests to assert legacy provider-specific fields survive
  save and load round-trips

* i18n: add retired-provider translations for all 17 locales

Translate providers.retiredProviderMessage (settings) and
retiredProvider.{title,message,openSettings} (chat) into ca, de, es,
fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW.

* test: update ApiOptions retired-provider test to expect i18n key
@dosubot dosubot bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Feb 15, 2026
@roomote
Copy link
Contributor

roomote bot commented Feb 15, 2026

Rooviewer Clock   See task

Re-reviewed after 1 new commit (8c5a0f2). All previously flagged issues are now resolved. The dead SkillItem component and its test have been removed cleanly with no remaining references.

  • Unused os import in src/services/skills/SkillsManager.ts (likely cherry-pick artifact)
  • Dead code: webview-ui/src/components/settings/SkillItem.tsx is never imported by production code; diverges from active SkillsSettings.tsx implementation
  • docs/reapplication-plan.md internal inconsistency: progress line says 37/42 PRs reapplied but batch status table and appendix still show Batches 3-4 as BLOCKED
Previous reviews

Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues.

@@ -1,5 +1,6 @@
import * as fs from "fs/promises"
import * as path from "path"
import * as os from "os"
Copy link
Contributor

Choose a reason for hiding this comment

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

Unused import. os is not referenced anywhere in this file -- likely a leftover from cherry-pick conflict resolution.

Suggested change
import * as os from "os"

Fix it with Roo Code or mention @roomote and request a fix.

Comment on lines 1 to 22
import React, { useCallback, useMemo } from "react"
import { Edit, Trash2 } from "lucide-react"

import type { SkillMetadata } from "@roo-code/types"

import { getAllModes } from "@roo/modes"

import { useAppTranslation } from "@/i18n/TranslationContext"
import { useExtensionState } from "@/context/ExtensionStateContext"
import { Button, StandardTooltip, Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui"
import { vscode } from "@/utils/vscode"

// Sentinel value for "Any mode" since Radix Select doesn't allow empty string values
const MODE_ANY = "__any__"

interface SkillItemProps {
skill: SkillMetadata
onEdit: () => void
onDelete: () => void
}

export const SkillItem: React.FC<SkillItemProps> = ({ skill, onEdit, onDelete }) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

This component is never imported by any production code. SkillsSettings.tsx renders skill items via its own inline renderSkillItem callback. Additionally, SkillItem uses the deprecated skill.mode property and the moveSkill message (which physically moves directories), while the active SkillsSettings code uses the newer modeSlugs field and updateSkillModes (which updates SKILL.md frontmatter). Having two divergent implementations for the same concept is a maintenance risk. Consider removing this file (and its test) or refactoring SkillsSettings to use it.

Fix it with Roo Code or mention @roomote and request a fix.


## 7. Appendix: Reapplication Complete Summary

Batches 1 and 2 are fully merged. The remaining 6 PRs (Batches 3–4) are blocked on product decisions, not technical issues. 5 PRs have been permanently excluded (see §8). The reapplication effort is **effectively complete** at 37/42 PRs.
Copy link
Contributor

Choose a reason for hiding this comment

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

Internal inconsistency: this line says "37 of 42 PRs reapplied" and "effectively complete at 37/42," but the progress table in section 1.5 still shows Batches 3-4 as 🔒 BLOCKED, and this same paragraph says "remaining 6 PRs are blocked on product decisions." Since the PR description confirms all product decisions are approved and the 6 cherry-picks are included here, the batch statuses and this paragraph should reflect that.

Fix it with Roo Code or mention @roomote and request a fix.

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Feb 15, 2026
@hannesrudolph hannesrudolph merged commit 04ffb64 into main Feb 15, 2026
13 checks passed
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Feb 15, 2026
@hannesrudolph hannesrudolph deleted the reapply/batch-3-4-5-major-conflicts branch February 15, 2026 05:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants