Roo-Code/docs/reapplication-plan.md

29 KiB
Raw Permalink Blame History

Reapplication Plan — PRs Reverted by #11462

Analysis date: 2026-02-14 Scope: 42 PRs reverted by #11462 that were NOT reapplied by #11463 Method: Dry-run git cherry-pick --no-commit against main-sync-rc6


1. Executive Summary

Category Count %
CLEAN_CHERRY_PICK 22 52 %
MINOR_CONFLICTS 9 21 %
MAJOR_CONFLICTS 6 14 %
EXCLUDED (AI SDK) 5 12 %
Total 42 100 %

Progress: 37 of 42 PRs reapplied . 5 PRs excluded (AI-SDK-dependent, will not be reapplied). Reapplication is complete.

Overall Assessment

Over half (52 %) of the reverted PRs cherry-pick cleanly onto the current branch with zero conflicts. Another 21 % have only minor, mechanically-resolvable conflicts (lockfile diffs, adjacent-line shifts, small provider divergences). Together these 31 PRs have been reapplied across Batches 1 and 2.

The remaining 6 PRs (all MAJOR conflicts) have been reapplied in PR #11475 after all product decisions were approved:

  • Skills infrastructure (#11102, #11157, #11414) — skills UI restored, then built-in skills mechanism removed as approved.
  • Cross-cutting removals (#11253, #11297, #11392) — provider removals, browser use removal, and Grounding checkbox removal all approved and applied.

5 PRs have been permanently excluded because they depend on the AI SDK type system (see §8 Excluded PRs).

Key Risk Areas

  1. ClineProvider.ts and Task.ts are the most frequently touched files — sequential application within batches is essential.
  2. Skills infrastructure is the #1 conflict magnet across 3 PRs.
  3. API provider files (gemini.ts, vertex.ts, bedrock.ts) have diverged significantly.
  4. i18n settings.json files cause positional conflicts for any PR adding keys.
  5. pnpm-lock.yaml conflicts are trivially regeneratable via pnpm install.

1.5 Progress

Batch Status Details
Batch 1 COMPLETE 22/22 PRs cherry-picked, PR #11473 created
Batch 2 COMPLETE (rebuilt) 9/9 PRs cherry-picked (3 AI SDK PRs excluded, 1 Azure PR excluded). PR #11474
Batch 3 COMPLETE 4/4 PRs cherry-picked (skills infra + browser use removal). PR #11475
Batch 4 COMPLETE 2/2 PRs cherry-picked (provider removals). PR #11475

2. Dependency Graph

graph TD
    subgraph "Delegation Chain — ✅ MERGED (Batch 1)"
        PR11281["#11281 prevent parent task state loss"]
        PR11302["#11302 delegation-aware removeClineFromStack"]
        PR11331["#11331 delegation race condition"]
        PR11335["#11335 serialize taskHistory writes"]

        PR11281 --> PR11302 --> PR11331 --> PR11335
    end

    subgraph Skills Chain
        PR11102["#11102 skill mode dropdown"]
        PR11157["#11157 improve Skills/Slash Commands UI"]
        PR11414["#11414 remove built-in skills mechanism"]

        PR11102 --> PR11157 --> PR11414
    end

    subgraph Opus 4.6
        PR11224["#11224 Claude Opus 4.6 support"]
        PR11232["#11232 Bedrock model ID for Opus 4.6"]

        PR11224 --> PR11232
    end

    subgraph Gemini Provider
        PR11233["#11233 empty-string baseURL guard"]
        PR11303["#11303 Gemini thinkingLevel validation"]
        PR11253["#11253 remove URL context/Grounding checkboxes"]

        PR11233 --> PR11303 --> PR11253
    end

    subgraph Removal PRs  Product Decisions
        PR11253
        PR11297["#11297 remove 9 low-usage providers"]
        PR11392["#11392 remove browser use entirely"]
        PR11414
    end

Textual Dependency Summary

Dependency Chain PRs (in order)
Delegation (merged) #11281 → #11302 → #11331 → #11335 = MERGED (Batch 1)
Skills #11102 → #11157 → #11414
Opus 4.6 #11224 → #11232
Gemini provider #11233 → #11303 → #11253

Batch 1 — Clean Cherry-Picks (Low Risk)

COMPLETE — PR #11473

22 PRs · No manual conflict resolution

Apply all CLEAN_CHERRY_PICK PRs in dependency order. These are safe to apply in a single session. Start with independent PRs, then apply the clean delegation PRs in chain order.

Order PR# Title
1 #10874 image content in MCP tool responses
2 #10975 transform tool blocks to text before condensing
3 #10981 Codex-inspired read_file refactor
4 #10994 allow import settings in welcome screen
5 #11038 code-index gemini-embedding-001
6 #11116 treat extension .env as optional
7 #11131 sanitize tool_use_id
8 #11140 queue messages during command execution
9 #11162 IPC task cancellation fixes
10 #11183 AGENTS.local.md support
11 #11205 cli provider switch race condition
12 #11207 remove dead toolFormat code
13 #11215 extract translation/merge resolver into skills
14 #11224 Claude Opus 4.6 support across providers
15 #11225 gpt-5.3-codex model
16 #11281 prevent parent task state loss
17 #11302 delegation-aware removeClineFromStack
18 #11313 webview postMessage crashes
19 #11331 delegation race condition
20 #11335 serialize taskHistory writes
21 #11369 task resumption in API module
22 #11410 clean up repo-facing mode rules

Rationale: These have zero conflicts and include the first 4 delegation PRs in the chain, which unblocks later batches.

Post-application notes:

  • Extra fix commit: maxReadFileLine added to ExtensionState type for compatibility
  • #11215 and #11410 were empty commits (changes already present in base)
  • Verification: 5,359 backend tests , 1,229 webview-ui tests , TypeScript

Batch 2 — Minor Conflicts (Medium Risk)

COMPLETE (rebuilt) — PR #11474

9 PRs (rebuilt) · Originally 13 PRs

Rebuild note: Originally 13 PRs. Rebuilt after excluding #11379, #11418, #11422 (AI SDK dependent) and #11374 (depends on excluded #11315).

Order PR# Title Conflicts Notes
1 #11232 Bedrock model ID for Opus 4.6 1 Depends on #11224 (Batch 1)
2 #11233 empty-string baseURL guard 3 Provider file conflicts
3 #11218 defaultTemperature required in getModelParams 2 Provider signature changes
4 #11245 batch consecutive tool calls in chat UI 2 Chat UI content conflicts
5 #11279 IPC query handlers 2 IPC event types diverged
6 #11295 lock toggle to pin API config 1 Trivial lockfile conflict
7 #11303 Gemini thinkingLevel validation 1 Depends on #11233
8 #11425 cli release v0.0.53 2 Version bump conflicts
9 #11440 GLM-5 model for Z.ai 2 Z.ai provider diverged slightly

Post-application notes:

  • AI SDK contamination cleaned: Removed 3 AI SDK tests + import from gemini.spec.ts
  • Type errors fixed: Added missing defaultTemperature to vertex.ts and xai.ts
  • pnpm-lock.yaml regenerated: Clean lockfile matching current dependencies
  • Verification: 5,372 backend tests , 1,250 webview-ui tests , 14/14 type checks , AI SDK contamination check clean

Batch 3 — Major Conflicts: Skills & Browser Use (High Risk)

COMPLETE — PR #11475

4 PRs · All product decisions approved

Order PR# Title Conflicts Notes
1 #11102 skill mode dropdown 44 Skills infra must be restored
2 #11157 improve Skills/Slash Commands UI 48 Superset of #11102
3 #11414 remove built-in skills mechanism 30 Depends on #11102 + #11157
4 #11392 remove browser use entirely 15 Cross-cutting removal

Batch 4 — Major Conflicts: Provider Removals (High Risk)

COMPLETE — PR #11475

2 PRs · All product decisions approved

Order PR# Title Conflicts Notes
1 #11253 remove URL context/Grounding checkboxes 4 Depends on Gemini PRs from Batch 2
2 #11297 remove 9 low-usage providers 18 Provider files modified/deleted

4. Per-PR Analysis Table

PR# Title Commit SHA Category Conflicting Files Dependencies Notes
#10874 image content in MCP tool responses e46fae7ad7 CLEAN
#10975 transform tool blocks to text before condensing b4b8cef859 CLEAN
#10981 Codex-inspired read_file refactor cc86049f10 CLEAN 19 files (types, core, webview, tests)
#10994 allow import settings in welcome screen fa93109b76 CLEAN 1 file (WelcomeViewProvider.tsx)
#11038 code-index gemini-embedding-001 1e790b0d39 CLEAN
#11102 skill mode dropdown 16fbabf2a4 MAJOR 44 files: skills.json ×18, settings.json ×18, + skills infra Skills chain head Skills UI fully removed in revert
#11116 treat extension .env as optional 20d1f1f282 CLEAN extension.ts + test
#11131 sanitize tool_use_id 3400499917 CLEAN auto-merged presentAssistantMessage.ts
#11140 queue messages during command execution ede1d29299 CLEAN auto-merged ChatView.tsx
#11157 improve Skills/Slash Commands UI 54ea34e2c1 MAJOR 48 files: CreateSkillDialog.tsx, SkillsSettings.tsx, SettingsView.tsx + skills infra #11102 Superset of #11102 conflicts
#11162 IPC task cancellation fixes e5fa5e8e46 CLEAN auto-merged runTaskInCli.ts, Task.ts
#11183 AGENTS.local.md support 1da2b1c457 CLEAN .gitignore, custom-instructions.ts, test
#11205 cli provider switch race condition aa49871a5d CLEAN auto-merged webviewMessageHandler.ts
#11207 remove dead toolFormat code f73b103b87 CLEAN trivially clean
#11215 extract translation/merge resolver into skills 5507f5ab64 CLEAN empty diff — already present
#11218 defaultTemperature required in getModelParams 0e5407aa76 MINOR cerebras.ts, mistral.ts Provider signature changes
#11224 Claude Opus 4.6 support across providers 47bba1c2f7 CLEAN 30 files (provider types + i18n)
#11225 gpt-5.3-codex model d5b7fdcfa7 CLEAN 2 files (openai-codex.ts + test)
#11232 Bedrock model ID for Opus 4.6 8c6d1ef15d MINOR packages/types/src/providers/bedrock.ts #11224 Content conflict in bedrock types
#11233 empty-string baseURL guard 23d34154d0 MINOR gemini.spec.ts, deepseek.ts, gemini.ts Provider file conflicts
#11245 batch consecutive tool calls in chat UI 7afa43635f MINOR ChatRow.tsx, ChatView.tsx Content conflicts in chat UI
#11253 remove URL context/Grounding checkboxes 2053de7b40 MAJOR gemini.ts, vertex.ts, gemini-handler.spec.ts, vertex.spec.ts #11233, #11303 Gemini/Vertex diverged; needs product decision
#11279 IPC query handlers 9b39d2242a MINOR packages/types/src/events.ts, src/extension/api.ts IPC event types diverged
#11281 prevent parent task state loss 6826e20da2 CLEAN auto-merged Task.ts, ClineProvider.ts, tests
#11295 lock toggle to pin API config 5d17f56db7 MINOR pnpm-lock.yaml Trivial lockfile conflict
#11297 remove 9 low-usage providers ef2fec9a23 MAJOR 18 files: 9 provider files (modify/delete), pnpm-lock.yaml, ApiOptions.tsx, package.json Needs product decision
#11302 delegation-aware removeClineFromStack 70775f0ec1 CLEAN #11281 auto-merged ClineProvider.ts
#11303 Gemini thinkingLevel validation a11be8b72e MINOR src/api/providers/gemini.ts #11233 Content conflict
#11313 webview postMessage crashes 62a0106ce0 CLEAN auto-merged ClineProvider.ts
#11331 delegation race condition 7c58f29975 CLEAN #11302 auto-merged task.ts, Task.ts, ClineProvider.ts, tests
#11335 serialize taskHistory writes 115d6c5fce CLEAN #11331 auto-merged ClineProvider.ts + test
#11369 task resumption in API module b02924530c CLEAN auto-merged api.ts
#11392 remove browser use entirely fa9dff4a06 MAJOR 15 files: Task.ts, ClineProvider.ts, system-prompt.spec.ts, mentions/, build-tools.ts, ChatView.tsx, SettingsView.tsx Cross-cutting removal; needs product decision
#11410 clean up repo-facing mode rules d2c52c9e09 CLEAN trivially clean
#11414 remove built-in skills mechanism b759b92f01 MAJOR 30 files: built-in-skills.ts, generate-built-in-skills.ts, shared/skills.ts + skills infra #11157 Skills files deleted in HEAD; needs product decision
#11425 cli release v0.0.53 f54f224a26 MINOR CHANGELOG.md, package.json Version bump conflicts
#11440 GLM-5 model for Z.ai cdf481c8f9 MINOR src/api/providers/zai.ts, zai.spec.ts Z.ai provider diverged slightly

Note: 5 PRs (#11315, #11374, #11379, #11418, #11422) have been excluded from this table. See §8 Excluded PRs.


5. Product Decisions Required

The following 4 PRs perform removals of existing functionality. They cannot be reapplied without explicit stakeholder sign-off because the removal may conflict with current product direction or user expectations.

#11253 — Remove URL Context/Grounding Checkboxes

  • What it removes: URL context and Grounding search checkboxes from Gemini and Vertex providers
  • Why sign-off is needed: Grounding is a user-visible feature toggle. Removing it changes the Gemini/Vertex UX and may affect users relying on grounded responses. Product must confirm these features are deprecated.
  • Conflict scope: 4 files (gemini.ts, vertex.ts, and their spec files)
  • Dependencies: Should be applied after #11233 and #11303

#11297 — Remove 9 Low-Usage Providers

  • What it removes: 9 API provider integrations deemed low-usage
  • Why sign-off is needed: Removing providers breaks existing users of those providers. Product must confirm the usage data supports removal and that affected users have been notified or migrated.
  • Conflict scope: 18 files — 9 provider files are modify/delete conflicts (files were modified in HEAD but the PR deletes them), plus pnpm-lock.yaml, ApiOptions.tsx, package.json
  • Dependencies: None, but should be applied after all other provider-touching PRs

#11392 — Remove Browser Use Entirely

  • What it removes: The entire browser use feature (browser automation, mentions, tool definitions, UI toggles)
  • Why sign-off is needed: Browser use is a significant user-facing capability. Its removal is a major product decision affecting workflows that depend on browser automation. Product must confirm this feature is being sunset.
  • Conflict scope: 15 files — cross-cutting across Task.ts, ClineProvider.ts, system-prompt.spec.ts, mentions/, build-tools.ts, ChatView.tsx, SettingsView.tsx
  • Dependencies: None, but deeply cross-cutting

#11414 — Remove Built-In Skills Mechanism

  • What it removes: The built-in skills infrastructure (generation scripts, shared types, skill definitions)
  • Why sign-off is needed: This removes the mechanism for shipping skills bundled with the extension. Product must confirm that the skills system is moving entirely to user-managed skills (via SKILL.md files) and that no built-in skills are planned.
  • Conflict scope: 30 files — skills infrastructure files deleted in HEAD
  • Dependencies: Requires #11102 and #11157 to be applied first (skills UI must exist before it can be removed)

Phase 1: Clean Cherry-Picks (Batch 1)

  1. Cherry-pick the 22 CLEAN PRs in the order listed in Batch 1 (§3)
  2. Run pnpm install to regenerate lockfile
  3. Run full test suite to confirm no regressions
  4. Commit/tag checkpoint: batch-1-clean-complete

Checkpoint tagged: branch reapply/batch-1-clean-cherry-picks, PR #11473

Phase 2: Minor Conflict Resolution (Batch 2)

  1. Cherry-pick #11232 (Bedrock Opus 4.6 model ID) — resolve 1 conflict in bedrock.ts
  2. Cherry-pick #11233 (empty-string baseURL guard) — resolve 3 provider conflicts
  3. Cherry-pick #11218 (defaultTemperature) — resolve 2 provider signature conflicts
  4. Cherry-pick #11245 (batch tool calls in chat UI) — resolve 2 chat UI conflicts
  5. Cherry-pick #11279 (IPC query handlers) — resolve 2 IPC type conflicts
  6. Cherry-pick #11295 (lock toggle) — resolve lockfile conflict, regenerate with pnpm install
  7. Cherry-pick #11303 (Gemini thinkingLevel) — resolve 1 gemini.ts conflict
  8. Cherry-pick #11425 (cli release v0.0.53) — resolve version bump conflicts
  9. Cherry-pick #11440 (GLM-5 for Z.ai) — resolve 2 Z.ai conflicts
  10. Run full test suite
  11. Commit/tag checkpoint: batch-2-minor-complete

Checkpoint tagged: branch reapply/batch-2-minor-conflicts, PR #11474

Phase 3: Product Decisions Gate

  1. Stakeholder sign-off obtained:
    • #11253 — Remove Grounding checkboxes
    • #11297 — Remove 9 low-usage providers
    • #11392 — Remove browser use
    • #11414 — Remove built-in skills mechanism

Phase 4: Skills Infrastructure Restoration (Batch 3)

  1. Cherry-pick #11102 (skill mode dropdown) — resolved 44 conflicts (skills infra restoration)
  2. Cherry-pick #11157 (improve Skills/Slash Commands UI) — resolved 48 conflicts
  3. Cherry-pick #11414 (remove built-in skills) — resolved 30 conflicts
  4. Cherry-pick #11392 (remove browser use) — resolved 15 conflicts
  5. Run full test suite
  6. Commit/tag checkpoint: batch-3-skills-complete

Checkpoint tagged: branch reapply/batch-3-4-5-major-conflicts, PR #11475

Phase 5: Provider Removals (Batch 4)

  1. Cherry-pick #11253 (remove Grounding checkboxes) — resolved 4 conflicts
  2. Cherry-pick #11297 (remove 9 providers) — resolved 18 conflicts
  3. Run full test suite
  4. Commit/tag checkpoint: batch-4-removals-complete

Checkpoint tagged: branch reapply/batch-3-4-5-major-conflicts, PR #11475

Final

  1. Run complete test suite (pnpm test)
  2. Run linter (pnpm lint)
  3. Manual smoke test of key flows (delegation, skills, providers)
  4. Tag final checkpoint: reapplication-complete

7. Appendix: Reapplication Complete Summary

All 37 reapplicable PRs have been cherry-picked across Batches 14 (PRs #11473, #11474, #11475). 5 PRs have been permanently excluded as AI-SDK-dependent (see §8). The reapplication effort is complete at 37/42 PRs.


8. Excluded PRs (AI SDK Dependent — Will Not Be Reapplied)

The following 5 PRs depend on the AI SDK type system (@ai-sdk/azure, RooMessage, readRooMessages, saveRooMessages) introduced by AI SDK PRs #11380/#11409. They will not be reapplied or re-implemented.

PR# Title Reason
#11315 Azure Foundry provider Imports @ai-sdk/azure; entire provider is AI SDK dependent
#11374 Azure Foundry fix Depends on #11315 (Azure Foundry provider)
#11379 Harden delegation lifecycle Imports RooMessage types, readRooMessages, saveRooMessages from AI SDK
#11418 Delegation reopen flow Depends on #11379's RooMessage infrastructure
#11422 Cancel/resume abort races Depends on #11418

Rationale: The AI SDK migration is not being pursued. These PRs are tightly coupled to the AI SDK type system and cannot be cherry-picked or meaningfully adapted without that dependency. The earlier delegation chain (#11281 → #11302 → #11331 → #11335) is clean, already merged in Batch 1, and provides sufficient delegation support without these PRs.