feat!: remove Roo platform integration#130
Conversation
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 2 minutes and 4 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis pull request removes all Roo platform integration from the codebase, including the installer script logic, skill definitions (evolve-learn, evolve-recall), configuration files, and all associated test cases and fixtures. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
platform-integrations/INSTALL_SPEC.md (1)
127-140:⚠️ Potential issue | 🟡 MinorLeftover Roo references in JSON Strategy section.
The JSON Strategy section still references
.roomodes, which was Roo-specific:
- Line 127: Header mentions
.roomodes- Lines 137-140: Documents array upsert/remove behavior for
.roomodes customModesSince Roo support is removed, these references should be cleaned up.
📝 Proposed fix
-### JSON Strategy (mcp.json, .roomodes) +### JSON Strategy (mcp.json) All JSON writes use atomic read-modify-write: 1. Read existing file (or start with `{}` if not found) 2. Modify the target key/array in memory 3. Write to `<path>.evolve.tmp` 4. `os.replace(tmp, path)` — atomic on POSIX **Key upsert** (`mcpServers.evolve`): navigate nested keys via `dict.setdefault`, set leaf value. - -**Array upsert** (`.roomodes` `customModes`): iterate array, find item where `item["slug"] == target_slug`, -replace in-place; append if not found. - -**Array remove**: filter array by `item["slug"] != target_slug`, write back.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@platform-integrations/INSTALL_SPEC.md` around lines 127 - 140, The JSON Strategy docs still reference Roo-specific artifacts (e.g. `.roomodes` and `customModes`); remove these leftover references and instead generalize the examples to the remaining JSON files (e.g. `mcp.json` / `mcpServers.evolve`). Edit the "JSON Strategy (mcp.json, .roomodes)" header to remove `.roomodes`, delete or reword the array upsert/remove bullets that mention `.roomodes` and `customModes`, and ensure the remaining text still documents atomic read-modify-write using `dict.setdefault`, writing to `<path>.evolve.tmp`, and `os.replace(tmp, path)` so the behavior for array upsert/remove is described generically (match-by-slug logic can be kept but without Roo-specific file names).platform-integrations/install.sh (1)
767-768:⚠️ Potential issue | 🟡 MinorInconsistent description: still mentions Roo.
The argparse description still references "Roo" despite Roo support being removed from the installer.
🔧 Proposed fix
parser = argparse.ArgumentParser( prog="install.sh", - description="Install Evolve integrations for Bob, Roo, and Claude Code.", + description="Install Evolve integrations for Bob and Claude Code.", )🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@platform-integrations/install.sh` around lines 767 - 768, The argparse description string still mentions "Roo"; update the description argument (the description="Install Evolve integrations for Bob, Roo, and Claude Code." passed to the ArgumentParser/installer) to remove "Roo" so it reads something like "Install Evolve integrations for Bob and Claude Code" (or similar accurate product list), ensuring the description text matches current supported integrations.
🧹 Nitpick comments (1)
platform-integrations/install.sh (1)
313-324: Remove dead code:is_json_fileandload_roo_mode_from_yamlfunctions.These functions are not called anywhere in the codebase and are specific to Roo's
.roomodeshandling. The NOTE comment indicates they're kept "for potential future use," but they add maintenance burden without concrete near-term reuse plans. Removing them will clean up the codebase.Also applies to: 389-438
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@platform-integrations/install.sh` around lines 313 - 324, Remove the dead Roo-specific helpers by deleting the is_json_file and load_roo_mode_from_yaml functions and the adjacent NOTE comment that references Roo/.roomodes; also remove any now-unused imports (e.g., json) that were only used by those functions so there are no leftover unused symbols. Locate the functions by name (is_json_file, load_roo_mode_from_yaml) and delete their entire definitions and the explanatory NOTE block, then run a quick lint/grep to ensure no references remain.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In `@platform-integrations/INSTALL_SPEC.md`:
- Around line 127-140: The JSON Strategy docs still reference Roo-specific
artifacts (e.g. `.roomodes` and `customModes`); remove these leftover references
and instead generalize the examples to the remaining JSON files (e.g. `mcp.json`
/ `mcpServers.evolve`). Edit the "JSON Strategy (mcp.json, .roomodes)" header to
remove `.roomodes`, delete or reword the array upsert/remove bullets that
mention `.roomodes` and `customModes`, and ensure the remaining text still
documents atomic read-modify-write using `dict.setdefault`, writing to
`<path>.evolve.tmp`, and `os.replace(tmp, path)` so the behavior for array
upsert/remove is described generically (match-by-slug logic can be kept but
without Roo-specific file names).
In `@platform-integrations/install.sh`:
- Around line 767-768: The argparse description string still mentions "Roo";
update the description argument (the description="Install Evolve integrations
for Bob, Roo, and Claude Code." passed to the ArgumentParser/installer) to
remove "Roo" so it reads something like "Install Evolve integrations for Bob and
Claude Code" (or similar accurate product list), ensuring the description text
matches current supported integrations.
---
Nitpick comments:
In `@platform-integrations/install.sh`:
- Around line 313-324: Remove the dead Roo-specific helpers by deleting the
is_json_file and load_roo_mode_from_yaml functions and the adjacent NOTE comment
that references Roo/.roomodes; also remove any now-unused imports (e.g., json)
that were only used by those functions so there are no leftover unused symbols.
Locate the functions by name (is_json_file, load_roo_mode_from_yaml) and delete
their entire definitions and the explanatory NOTE block, then run a quick
lint/grep to ensure no references remain.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: df599644-3328-4051-a4db-44386a30d7f4
📒 Files selected for processing (10)
platform-integrations/INSTALL_SPEC.mdplatform-integrations/install.shplatform-integrations/roo/evolve-lite/skills/.roomodesplatform-integrations/roo/evolve-lite/skills/evolve-learn/SKILL.mdplatform-integrations/roo/evolve-lite/skills/evolve-learn/scripts/save.pyplatform-integrations/roo/evolve-lite/skills/evolve-recall/SKILL.mdplatform-integrations/roo/evolve-lite/skills/evolve-recall/scripts/get.pytests/platform_integrations/conftest.pytests/platform_integrations/test_idempotency.pytests/platform_integrations/test_preservation.py
💤 Files with no reviewable changes (7)
- platform-integrations/roo/evolve-lite/skills/evolve-recall/SKILL.md
- tests/platform_integrations/conftest.py
- platform-integrations/roo/evolve-lite/skills/evolve-learn/SKILL.md
- platform-integrations/roo/evolve-lite/skills/.roomodes
- platform-integrations/roo/evolve-lite/skills/evolve-recall/scripts/get.py
- tests/platform_integrations/test_idempotency.py
- platform-integrations/roo/evolve-lite/skills/evolve-learn/scripts/save.py
BREAKING CHANGE: Roo platform support has been removed from platform-integrations - Removed platform-integrations/roo/ directory - Updated INSTALL_SPEC.md to remove all Roo references - Updated install.sh to remove Roo installation/uninstallation logic - Removed Roo-related test classes and fixtures - All 11 Bob-related tests pass successfully Platform integrations now only support Bob and Claude platforms.
- Remove RooFixtures class and roo_fixtures fixture from conftest.py - Remove TestRooIdempotency class (3 tests) - Remove TestRooPreservation class (5 tests) - Remove test_roo_uninstall_install_cycle from TestUninstallInstallCycle - Update test_install_all_platforms_preserves_everything to remove Roo references - Fix install.sh to exclude 'roo' from platforms list when --platform=all - All 23 platform integration tests now pass
- Remove header comment references to Roo - Remove Roo from detect_platforms() function - Remove install_roo(), uninstall_roo(), status_roo() functions - Remove Roo from cmd_install() and cmd_uninstall() dispatch logic - Remove Roo from cmd_status() function - Remove ROO_SLUG constant - Remove load_roo_mode_from_yaml() helper function - Update argparse description and platform choices - Fix --platform=all to exclude Roo All 23 platform integration tests pass.
60f8e43 to
c61e905
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@platform-integrations/install.sh`:
- Line 1018: The INSTALL_SPEC constant still documents "roo" as a valid
--platform choice and detection target even though argparse choices in the CLI
(where "--platform" is defined) were updated to ["bob","claude","codex","all"];
update INSTALL_SPEC to remove any mention of "roo", ensure the documented
allowed values list matches the CLI choices (bob, claude, codex, all), and
update any detection-target examples or validation text that reference "roo" so
they align with the new choices; search for the INSTALL_SPEC symbol and related
detection wording in the same file and replace/remove "roo" occurrences
accordingly.
In `@tests/platform_integrations/test_preservation.py`:
- Line 233: The test removed roo_fixtures from the fixture list and thus stopped
asserting Roo user-data preservation; restore roo_fixtures in the test signature
(the parameter list starting with temp_project_dir, install_runner, ...) and add
assertions that verify the installer did not overwrite the Roo user
directories/files: check that pre-seeded files in .roo/skills/ (custom skills)
and the .roomodes file remain present and unchanged after running the installer
(use the existing file_assertions helper to compare contents). Ensure these
checks live in tests/platform_integrations/test_preservation.py alongside the
other platform-preservation assertions so Roo preservation is covered in the
multi-platform path.
🪄 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
Run ID: d12fef86-3e5f-45a1-b574-c243d9cc18b1
📒 Files selected for processing (9)
platform-integrations/install.shplatform-integrations/roo/evolve-lite/skills/.roomodesplatform-integrations/roo/evolve-lite/skills/evolve-learn/SKILL.mdplatform-integrations/roo/evolve-lite/skills/evolve-learn/scripts/save.pyplatform-integrations/roo/evolve-lite/skills/evolve-recall/SKILL.mdplatform-integrations/roo/evolve-lite/skills/evolve-recall/scripts/get.pytests/platform_integrations/conftest.pytests/platform_integrations/test_idempotency.pytests/platform_integrations/test_preservation.py
💤 Files with no reviewable changes (7)
- platform-integrations/roo/evolve-lite/skills/evolve-recall/SKILL.md
- platform-integrations/roo/evolve-lite/skills/.roomodes
- tests/platform_integrations/conftest.py
- platform-integrations/roo/evolve-lite/skills/evolve-recall/scripts/get.py
- platform-integrations/roo/evolve-lite/skills/evolve-learn/scripts/save.py
- platform-integrations/roo/evolve-lite/skills/evolve-learn/SKILL.md
- tests/platform_integrations/test_idempotency.py
1693585 to
6df61f1
Compare
BREAKING CHANGE: Roo platform support has been removed from platform-integrations. It feels inconsistent with the rest of the integrations, and roo users can utilize bob installation.
Platform integrations now only support Bob and Claude platforms.
Summary by CodeRabbit
Release Notes