Skip to content

feat!: remove Roo platform integration#130

Merged
visahak merged 5 commits into
AgentToolkit:mainfrom
visahak:remove-roo-integration
Apr 2, 2026
Merged

feat!: remove Roo platform integration#130
visahak merged 5 commits into
AgentToolkit:mainfrom
visahak:remove-roo-integration

Conversation

@visahak

@visahak visahak commented Apr 2, 2026

Copy link
Copy Markdown
Collaborator

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.

  • 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.

Summary by CodeRabbit

Release Notes

  • Removed Features
    • Roo platform integration has been discontinued and removed from the installer.
    • The installer now supports only Bob, Claude, and Codex platforms.
    • All Roo-related custom modes, skills, and associated tools have been removed.

@coderabbitai

coderabbitai Bot commented Apr 2, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@visahak has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 2 minutes and 4 seconds before requesting another review.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ef13fae9-571c-4124-ba75-ceb55b4fe71b

📥 Commits

Reviewing files that changed from the base of the PR and between 1693585 and c2e7380.

📒 Files selected for processing (1)
  • platform-integrations/INSTALL_SPEC.md
📝 Walkthrough

Walkthrough

This 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

Cohort / File(s) Summary
Installer Core
platform-integrations/install.sh
Removed ROO_SLUG constant, Roo mode parsing (load_roo_mode_from_yaml), platform detection, and install/uninstall/status functions. Updated --platform choices to exclude roo and command dispatch logic to drop Roo execution paths. Updated script header and usage documentation.
Roo Skill Documentation
platform-integrations/roo/evolve-lite/skills/evolve-learn/SKILL.md, platform-integrations/roo/evolve-lite/skills/evolve-recall/SKILL.md
Removed complete skill specifications and associated workflows for evolve-learn and evolve-recall.
Roo Skill Scripts
platform-integrations/roo/evolve-lite/skills/evolve-learn/scripts/save.py, platform-integrations/roo/evolve-lite/skills/evolve-recall/scripts/get.py
Deleted persist and retrieval scripts that managed entity knowledge base via stdin/stdout and filesystem operations.
Roo Configuration
platform-integrations/roo/evolve-lite/skills/.roomodes
Removed evolve-lite custom mode configuration including metadata, first message, and multi-step workflow enforcement rules.
Test Fixtures
tests/platform_integrations/conftest.py
Removed RooFixtures helper class and roo_fixtures pytest fixture that created Roo test artifacts.
Test Cases
tests/platform_integrations/test_idempotency.py, tests/platform_integrations/test_preservation.py
Removed TestRooIdempotency class (3 methods) and TestRooPreservation class (5 methods). Updated TestMultiPlatformPreservation.test_install_all_platforms_preserves_everything signature to remove roo_fixtures parameter.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • gaodan-fang
  • illeatmyhat

Poem

🐰 The Roo has hopped away today,
No more modes to learn or skills to sway,
Scripts deleted, fixtures gone,
The installer marches boldly on!
Bob, Claude, Codex stand so tall—
A cleaner path for one and all! 🌟

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'feat!: remove Roo platform integration' directly and clearly summarizes the main change—complete removal of Roo platform support from the codebase.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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 | 🟡 Minor

Leftover 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 customModes

Since 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 | 🟡 Minor

Inconsistent 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_file and load_roo_mode_from_yaml functions.

These functions are not called anywhere in the codebase and are specific to Roo's .roomodes handling. 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

📥 Commits

Reviewing files that changed from the base of the PR and between 564e501 and 1d8aa14.

📒 Files selected for processing (10)
  • platform-integrations/INSTALL_SPEC.md
  • platform-integrations/install.sh
  • platform-integrations/roo/evolve-lite/skills/.roomodes
  • platform-integrations/roo/evolve-lite/skills/evolve-learn/SKILL.md
  • platform-integrations/roo/evolve-lite/skills/evolve-learn/scripts/save.py
  • platform-integrations/roo/evolve-lite/skills/evolve-recall/SKILL.md
  • platform-integrations/roo/evolve-lite/skills/evolve-recall/scripts/get.py
  • tests/platform_integrations/conftest.py
  • tests/platform_integrations/test_idempotency.py
  • tests/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

vinodmut
vinodmut previously approved these changes Apr 2, 2026
visahak added 3 commits April 2, 2026 13:07
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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 60f8e43 and 1693585.

📒 Files selected for processing (9)
  • platform-integrations/install.sh
  • platform-integrations/roo/evolve-lite/skills/.roomodes
  • platform-integrations/roo/evolve-lite/skills/evolve-learn/SKILL.md
  • platform-integrations/roo/evolve-lite/skills/evolve-learn/scripts/save.py
  • platform-integrations/roo/evolve-lite/skills/evolve-recall/SKILL.md
  • platform-integrations/roo/evolve-lite/skills/evolve-recall/scripts/get.py
  • tests/platform_integrations/conftest.py
  • tests/platform_integrations/test_idempotency.py
  • tests/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

Comment thread platform-integrations/install.sh
Comment thread tests/platform_integrations/test_preservation.py
@visahak visahak force-pushed the remove-roo-integration branch from 1693585 to 6df61f1 Compare April 2, 2026 17:53
@visahak visahak merged commit 8e6c76d into AgentToolkit:main Apr 2, 2026
16 checks passed
@visahak visahak deleted the remove-roo-integration branch April 2, 2026 18:52
@coderabbitai coderabbitai Bot mentioned this pull request Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants