diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index c659eb80eb..9e22303a35 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -1,12 +1,66 @@
name: Bug Report
-description: Clearly report a bug with detailed repro steps
+description: Report a broken behavior in plain language with a minimal reproduction
labels: ["bug"]
+title: "[BUG] "
body:
- type: markdown
attributes:
value: |
- **Thanks for your report!** Please check existing issues first:
- 👉 https://github.com/RooCodeInc/Roo-Code/issues
+ Thank you for your report! Please search existing issues first:
+ https://github.com/RooCodeInc/Roo-Code/issues
+
+ - type: textarea
+ id: problem
+ attributes:
+ label: Problem (one or two sentences)
+ description: Describe what went wrong in plain language.
+ placeholder: 'Example: "Expected the task to start, but nothing happened and no message appeared."'
+ validations:
+ required: true
+
+ - type: textarea
+ id: context
+ attributes:
+ label: Context (who is affected and when)
+ description: Who sees this and in what situation? Keep it non-technical.
+ placeholder: 'Example: "Happens to new users when starting a run from the New Run page with dark theme enabled."'
+ validations:
+ required: true
+
+ - type: textarea
+ id: steps
+ attributes:
+ label: Reproduction steps
+ description: Provide clear, numbered steps so we can reproduce.
+ placeholder: |
+ 1) Environment/setup (OS, extension version, relevant settings)
+ 2) Exact actions (clicks, inputs, commands)
+ 3) What you observed after each step
+ validations:
+ required: true
+
+ - type: input
+ id: expected
+ attributes:
+ label: Expected result
+ placeholder: e.g., "The task starts and shows progress."
+ validations:
+ required: true
+
+ - type: input
+ id: actual
+ attributes:
+ label: Actual result
+ placeholder: e.g., "The button appears disabled and no progress is shown."
+ validations:
+ required: true
+
+ - type: textarea
+ id: variations
+ attributes:
+ label: Variations tried (optional)
+ description: Different browsers, devices, providers, or settings you tried.
+ placeholder: e.g., "Tried Chrome/Firefox, disabling dark theme, switching providers."
- type: input
id: version
@@ -19,7 +73,7 @@ body:
- type: dropdown
id: provider
attributes:
- label: API Provider
+ label: API Provider (optional)
options:
- Anthropic
- AWS Bedrock
@@ -45,57 +99,23 @@ body:
- VS Code Language Model API
- xAI (Grok)
- Not Applicable / Other
- validations:
- required: true
- type: input
id: model
attributes:
- label: Model Used
+ label: Model Used (optional)
description: Exact model name (e.g., Claude 3.7 Sonnet). Use N/A if irrelevant.
- validations:
- required: true
- type: textarea
id: roo-code-tasks
attributes:
- label: Roo Code Task Links (Optional)
- description: |
- If you have any publicly shared task links that demonstrate the issue, please paste them here.
- This helps maintainers understand the context.
- Example: https://app.roocode.com/share/task-id
+ label: Roo Code Task Links (optional)
+ description: If you have any publicly shared Roo Code task links that demonstrate the issue, paste them here.
placeholder: Paste your Roo Code share links here, one per line
- - type: textarea
- id: steps
- attributes:
- label: 🔁 Steps to Reproduce
- description: |
- Help us see what you saw. Give clear, numbered steps:
-
- 1. Setup (OS, extension version, settings)
- 2. Exact actions (clicks, input, files, commands)
- 3. What happened after each step
-
- Think like you're writing a recipe. Without this, we can't reproduce the issue.
- validations:
- required: true
-
- - type: textarea
- id: what-happened
- attributes:
- label: 💥 Outcome Summary
- description: |
- Recap what went wrong in one or two lines.
-
- Example: "Expected code to run, but got an empty response and no error."
- placeholder: Expected ___, but got ___.
- validations:
- required: true
-
- type: textarea
id: logs
attributes:
- label: 📄 Relevant Logs or Errors (Optional)
- description: Paste API logs, terminal output, or errors here. Use triple backticks (```) for code formatting.
+ label: Relevant logs or errors (optional)
+ description: Paste relevant output or errors. Use triple backticks (```) for formatting.
render: shell
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index 4863f9ffa6..7e140ec08c 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -1,71 +1,47 @@
-name: Detailed Feature Proposal
-description: Report a specific problem that needs solving in Roo Code
-labels: ["proposal", "enhancement"]
+name: Enhancement Request
+description: Propose an improvement in plain language focused on user benefit
+labels: ["enhancement"]
+title: "[ENHANCEMENT] "
body:
- type: markdown
attributes:
value: |
- **Thank you for submitting a feature request for Roo Code!**
-
- This template helps you describe problems that need solving. Focus on the problem - the Roo team will work to design solutions unless you want to contribute the implementation yourself.
-
- **Quality over speed:** We prefer detailed, clear problem descriptions over quick ones. Vague requests often get closed or require multiple rounds of clarification, which wastes everyone's time.
-
- **Before submitting:**
- - Search existing [Issues](https://github.com/RooCodeInc/Roo-Code/issues) and [Discussions](https://github.com/RooCodeInc/Roo-Code/discussions) to avoid duplicates
- - For general ideas, use [GitHub Discussions](https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests) instead of this template.
-
- - type: markdown
- attributes:
- value: |
- ## ❌ Common mistakes that lead to request rejection:
- - **Vague problem descriptions:** "UI is bad" -> Should be: "Submit button is invisible on dark theme"
- - **Missing user impact:** "This would be cool" -> Should explain who benefits and how
- - **No specific context:** Describe exactly when and how the problem occurs
-
+ Thank you for helping improve Roo Code!
+ Please focus on the problem and the desired behavior in plain language.
- type: textarea
- id: problem-description
+ id: problem
attributes:
- label: What specific problem does this solve?
- description: |
- **Be concrete and detailed.** Explain the problem from a user's perspective.
-
- ✅ **Good examples (specific, clear impact):**
- - "When running large tasks, users wait 5+ minutes because tasks execute sequentially instead of in parallel, blocking productivity"
- - "AI can only read one file per request, forcing users to make multiple requests for multi-file projects, increasing wait time from 30s to 5+ minutes"
- - "Dark theme users can't see the submit button because it uses white text on light grey background"
-
- ❌ **Poor examples (vague, unclear impact):**
- - "The UI looks weird" -> What specifically looks weird? On which screen? What's the impact?
- - "System prompt is not good" -> What's wrong with it? What behaviour does it cause? What should it do instead?
- - "Performance could be better" -> Where? How slow is it currently? What's the user impact?
-
- **Your problem description should answer:**
- - Who is affected? (all users, specific user types, etc.)
- - When does this happen? (specific scenarios/steps)
- - What's the current behaviour vs expected behaviour?
- - What's the impact? (time wasted, errors caused, etc.)
- placeholder: Be specific about the problem, who it affects, and the impact. Avoid generic statements like "it's slow" or "it's confusing."
+ label: Problem (one or two sentences)
+ description: What problem are users facing?
+ placeholder: e.g., "Users often click Copy Run by mistake and duplicate runs unintentionally."
validations:
required: true
+ - type: textarea
+ id: context
+ attributes:
+ label: Context (who is affected and when)
+ description: Who encounters this and in what situation?
+ placeholder: e.g., "Happens when browsing the Runs list; most visible for new users."
+ validations:
+ required: true
- type: textarea
- id: additional-context
+ id: desired
attributes:
- label: Additional context (optional)
- description: Mockups, screenshots, links, user quotes, or other relevant information that supports your proposal.
+ label: Desired behavior (conceptual, not technical)
+ description: Describe what should happen in simple terms.
+ placeholder: e.g., "Ask for confirmation before copying a run."
+ validations:
+ required: true
- type: textarea
- id: roo-code-tasks
+ id: constraints
attributes:
- label: Roo Code Task Links (Optional)
- description: |
- If you used Roo Code to explore this feature request or develop solutions, share the public task links here.
- This helps maintainers understand the context and any exploration you've done.
- Example: https://app.roocode.com/share/task-id
- placeholder: Paste your Roo Code share links here, one per line
+ label: Constraints / preferences (optional)
+ description: Any considerations like performance, accessibility, or UX expectations.
+ placeholder: e.g., "Keep it quick and unobtrusive; keyboard accessible."
- type: checkboxes
id: checklist
@@ -74,128 +50,42 @@ body:
options:
- label: I've searched existing Issues and Discussions for duplicates
required: true
- - label: This describes a specific problem with clear impact and context
+ - label: This describes a specific problem with clear context and impact
required: true
+ - type: textarea
+ id: roo-code-tasks
+ attributes:
+ label: Roo Code Task Links (optional)
+ description: If you explored this with Roo Code, share public task links for context.
+ placeholder: Paste your Roo Code share links here, one per line
+
- type: markdown
attributes:
value: |
---
-
- ## 🛠️ **Optional: Contributing & Technical Analysis**
-
- **🎯 Just reporting a problem?** You can click "Submit new issue" right now! The sections below are only needed if you want to contribute a solution via pull request.
-
- **⚠️ Only continue if you want to:**
- - Propose a specific solution design
- - Implement the feature yourself via pull request
- - Provide technical analysis to help with implementation
-
- **For contributors who continue:**
- - A maintainer (especially @hannesrudolph) will review this proposal. **Do not start implementation until approved and assigned.** We're a small team with limited resources, so every code addition needs careful consideration. We're always happy to receive clear, actionable proposals though!
- - Join [Discord](https://discord.gg/roocode) and DM **Hannes Rudolph** (`hrudolph`) for guidance on implementation
- - Check our [Roadmap](https://github.com/orgs/RooCodeInc/projects/1/views/1?query=sort%3Aupdated-desc+is%3Aopen&filterQuery=is%3Aissue%2Copen%2Cclosed+label%3A%22feature+request%22+status%3A%22Issue+%5BUnassigned%5D%22%2C%22Issue+%5BIn+Progress%5D%22) to see open feature requests ready to be implemented or currently being worked on
-
- - type: checkboxes
- id: willingness-to-contribute
- attributes:
- label: Interested in implementing this?
- description: |
- **Important:** If you check "Yes" below, the technical sections become REQUIRED.
- We need detailed technical analysis from contributors to ensure quality implementation.
- options:
- - label: Yes, I'd like to help implement this feature
- required: false
-
- - type: checkboxes
- id: implementation-approval
- attributes:
- label: Implementation requirements
- options:
- - label: I understand this needs approval before implementation begins
- required: false
-
- - type: textarea
- id: proposed-solution
- attributes:
- label: How should this be solved? (REQUIRED if contributing, optional otherwise)
- description: |
- **If you want to implement this feature, this section is REQUIRED.**
-
- **Describe your solution in detail.** Explain not just what to build, but how it should work.
-
- ✅ **Good examples:**
- - "Add parallel task execution: Allow up to 3 tasks to run simultaneously with a queue system for additional tasks. Show progress for each active task in the UI."
- - "Enable multi-file AI processing: Modify the request handler to accept multiple files in a single request and process them together, reducing round trips."
- - "Fix button contrast: Change submit button to use primary colour on dark theme (white text on blue background) instead of current grey."
-
- ❌ **Poor examples:**
- - "Make it faster" -> How? What specific changes?
- - "Improve the UI" -> Which part? What specific improvements?
- - "Fix the prompt" -> What should the new prompt do differently?
-
- **Your solution should explain:**
- - What exactly will change?
- - How will users interact with it?
- - What will the new behaviour look like?
- placeholder: Describe the specific changes and how they will work. Include user interaction details if relevant.
+ Optional (for contributors): You can stop here if you're just proposing the improvement.
- type: textarea
id: acceptance-criteria
attributes:
- label: How will we know it works? (Acceptance Criteria - REQUIRED if contributing, optional otherwise)
- description: |
- **If you want to implement this feature, this section is REQUIRED.**
-
- **This is crucial - don't skip it.** Define what "working" looks like with specific, testable criteria.
-
- **Format suggestion:**
- ```
- Given [context/situation]
+ label: Acceptance criteria (optional)
+ description: Define what “working” looks like with specific, testable outcomes.
+ placeholder: |
+ Given [context]
When [user action]
Then [expected result]
And [additional expectations]
But [what should NOT happen]
- ```
-
- **Example:**
- ```
- Given I have 5 large tasks to run
- When I start all of them
- Then they execute in parallel (max 3 at once, can be configured)
- And I see progress for each active task
- And queued tasks show "waiting" status
- But the UI doesn't freeze or become unresponsive
- ```
- placeholder: |
- Define specific, testable criteria. What should users be able to do? What should happen? What should NOT happen?
- Use the Given/When/Then format above or your own clear structure.
- type: textarea
- id: technical-considerations
+ id: proposed-solution
attributes:
- label: Technical considerations (REQUIRED if contributing, optional otherwise)
- description: |
- **If you want to implement this feature, this section is REQUIRED.**
-
- Share technical insights that could help planning:
- - Implementation approach or architecture changes
- - Performance implications
- - Compatibility concerns
- - Systems that might be affected
- - Potential blockers you can foresee
- placeholder: e.g., "Will need to refactor task manager", "Could impact memory usage on large files", "Requires a large portion of code to be rewritten"
+ label: Proposed approach (optional)
+ description: If you have an idea, describe it briefly in plain language.
- type: textarea
- id: trade-offs-and-risks
+ id: risks
attributes:
- label: Trade-offs and risks (REQUIRED if contributing, optional otherwise)
- description: |
- **If you want to implement this feature, this section is REQUIRED.**
-
- What could go wrong or what alternatives did you consider?
- - Alternative approaches and why you chose this one
- - Potential negative impacts (performance, UX, etc.)
- - Breaking changes or migration concerns
- - Edge cases that need careful handling
- placeholder: 'e.g., "Alternative: use library X but it is 500KB larger", "Risk: might slow older devices", "Breaking: changes API response format"'
+ label: Trade-offs / risks (optional)
+ description: Potential downsides or alternatives considered.
diff --git a/.github/workflows/code-qa.yml b/.github/workflows/code-qa.yml
index ba85a01b21..f8ac0c8642 100644
--- a/.github/workflows/code-qa.yml
+++ b/.github/workflows/code-qa.yml
@@ -86,22 +86,38 @@ jobs:
- name: Create .env.local file
working-directory: apps/vscode-e2e
run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.local
+ - name: Set VS Code test version
+ run: echo "VSCODE_VERSION=1.101.2" >> $GITHUB_ENV
+ - name: Cache VS Code test runtime
+ uses: actions/cache@v4
+ with:
+ path: apps/vscode-e2e/.vscode-test
+ key: ${{ runner.os }}-vscode-test-${{ env.VSCODE_VERSION }}
+ - name: Pre-download VS Code test runtime with retry
+ working-directory: apps/vscode-e2e
+ run: |
+ for attempt in 1 2 3; do
+ echo "Download attempt $attempt of 3..."
+ node -e "
+ const { downloadAndUnzipVSCode } = require('@vscode/test-electron');
+ downloadAndUnzipVSCode({ version: process.env.VSCODE_VERSION || '1.101.2' })
+ .then(() => {
+ console.log('✅ VS Code test runtime downloaded successfully');
+ process.exit(0);
+ })
+ .catch(err => {
+ console.error('❌ Failed to download VS Code (attempt $attempt):', err);
+ process.exit(1);
+ });
+ " && break || {
+ if [ $attempt -eq 3 ]; then
+ echo "All download attempts failed"
+ exit 1
+ fi
+ echo "Retrying in 5 seconds..."
+ sleep 5
+ }
+ done
- name: Run integration tests
working-directory: apps/vscode-e2e
run: xvfb-run -a pnpm test:ci
-
- notify-slack-on-failure:
- runs-on: ubuntu-latest
- needs: [check-translations, knip, compile, unit-test, integration-test]
- if: ${{ always() && github.event_name == 'push' && github.ref == 'refs/heads/main' && contains(needs.*.result, 'failure') }}
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
-
- - name: Send Slack notification on failure
- uses: ./.github/actions/slack-notify
- with:
- webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
- channel: "#ci"
- workflow-name: "Code QA"
- failed-jobs: ${{ toJSON(needs) }}
diff --git a/.github/workflows/discord-pr-notify.yml b/.github/workflows/discord-pr-notify.yml
deleted file mode 100644
index 88c918edfe..0000000000
--- a/.github/workflows/discord-pr-notify.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: Discord PR Notifier
-
-on:
- workflow_dispatch:
- pull_request_target:
- types: [opened]
-
-jobs:
- notify:
- runs-on: ubuntu-latest
- if: github.head_ref != 'changeset-release/main'
- steps:
- - name: Send Discord Notification
- run: |
- PAYLOAD=$(jq -n \
- --arg title "${{ github.event.pull_request.title }}" \
- --arg url "${{ github.event.pull_request.html_url }}" \
- --arg author "${{ github.event.pull_request.user.login }}" \
- '{
- content: ("🚀 **New PR:** " + $title + "\n🔗 <" + $url + ">\n👤 **Author:** " + $author),
- thread_name: ($title + " by " + $author)
- }')
-
- curl -X POST "${{ secrets.DISCORD_WEBHOOK }}" \
- -H "Content-Type: application/json" \
- -d "$PAYLOAD"
diff --git a/.gitignore b/.gitignore
index 65c201c3c2..e044fc32a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,3 +46,6 @@ logs
.qodo/
.vercel
.roo/mcp.json
+
+# Qdrant
+qdrant_storage/
diff --git a/.roo/commands/release.md b/.roo/commands/release.md
index 702c5ba892..8adf57e6f0 100644
--- a/.roo/commands/release.md
+++ b/.roo/commands/release.md
@@ -26,15 +26,19 @@ argument-hint: patch | minor | major
- Without issue: "- Add support for Gemini 2.5 Pro caching (thanks @contributor!)"
- CRITICAL: Include EVERY SINGLE PR in the changeset - don't assume you know which ones are important. Count the total PRs to verify completeness and cross-reference the list to ensure nothing is missed.
-6. If a major or minor release:
+6. If the generate_image tool is available, create a release image at `releases/[version]-release.png`
+ - The image should feature a realistic-looking kangaroo doing something human-like that relates to the main highlight of the release
+ - Pass `releases/template.png` as the reference image for aspect ratio and kangaroo style
+ - Add the generated image to .changeset/v[version].md before the list of changes with format: ``
+7. If a major or minor release:
- Ask the user what the three most important areas to highlight are in the release
- Update the English version relevant announcement files and documentation (webview-ui/src/components/chat/Announcement.tsx, README.md, and the `latestAnnouncementId` in src/core/webview/ClineProvider.ts)
- Ask the user to confirm that the English version looks good to them before proceeding
- Use the new_task tool to create a subtask in `translate` mode with detailed instructions of which content needs to be translated into all supported languages (The READMEs as well as the translation strings)
-7. Create a new branch for the release preparation: `git checkout -b release/v[version]`
-8. Commit and push the changeset file and any documentation updates to the repository: `git add . && git commit -m "chore: add changeset for v[version]" && git push origin release/v[version]`
-9. Create a pull request for the release: `gh pr create --title "Release v[version]" --body "Release preparation for v[version]. This PR includes the changeset and any necessary documentation updates." --base main --head release/v[version]`
-10. The GitHub Actions workflow will automatically:
+8. Create a new branch for the release preparation: `git checkout -b release/v[version]`
+9. Commit and push the changeset file and any documentation updates to the repository: `git add . && git commit -m "chore: add changeset for v[version]" && git push origin release/v[version]`
+10. Create a pull request for the release: `gh pr create --title "Release v[version]" --body "Release preparation for v[version]. This PR includes the changeset and any necessary documentation updates." --base main --head release/v[version]`
+11. The GitHub Actions workflow will automatically:
- Create a version bump PR when changesets are merged to main
- Update the CHANGELOG.md with proper formatting
- Publish the release when the version bump PR is merged
diff --git a/.roo/rules-merge-resolver/1_workflow.xml b/.roo/rules-merge-resolver/1_workflow.xml
index a63809db70..2f0d1162f6 100644
--- a/.roo/rules-merge-resolver/1_workflow.xml
+++ b/.roo/rules-merge-resolver/1_workflow.xml
@@ -30,12 +30,13 @@
gh pr checkout [PR_NUMBER] --forcegit fetch origin main
- git rebase origin/main
+ GIT_EDITOR=true git rebase origin/main
Force checkout the PR branch to ensure clean state
Fetch the latest main branch
Attempt to rebase onto main to reveal conflicts
+ Use GIT_EDITOR=true to ensure non-interactive rebase
@@ -108,8 +109,8 @@
- git rebase origin/main
- Rebase current branch onto main to reveal conflicts
+ GIT_EDITOR=true git rebase origin/main
+ Rebase current branch onto main to reveal conflicts (non-interactive)
@@ -133,6 +134,20 @@
+
+ GIT_EDITOR=true git rebase --continue
+ Continue rebase after resolving conflicts (non-interactive)
+
+
+
+
+
+ true
+ Set to 'true' (a no-op command) to prevent interactive prompts during rebase operations
+ Prefix git rebase commands with GIT_EDITOR=true to ensure non-interactive execution
+
+
+
All merge conflicts have been resolvedResolved files have been staged
diff --git a/.roo/rules-merge-resolver/3_tool_usage.xml b/.roo/rules-merge-resolver/3_tool_usage.xml
index 35f3b5da75..30e7495574 100644
--- a/.roo/rules-merge-resolver/3_tool_usage.xml
+++ b/.roo/rules-merge-resolver/3_tool_usage.xml
@@ -26,6 +26,8 @@
Chain git commands with && for efficiencyUse --format options for structured outputCapture command output for parsing
+ Use GIT_EDITOR=true for non-interactive git rebase operations
+ Set environment variables inline to avoid prompts during automation
@@ -46,7 +48,7 @@
Rebase onto main to reveal conflicts
- git rebase origin/main
+ GIT_EDITOR=true git rebase origin/main
@@ -71,7 +73,7 @@
Continue rebase after resolution
- git rebase --continue
+ GIT_EDITOR=true git rebase --continue
@@ -152,7 +154,7 @@ const config = {
execute_command - Get PR info with gh CLIexecute_command - Checkout PR with gh pr checkout --forceexecute_command - Fetch origin main
- execute_command - Rebase onto origin/main
+ execute_command - Rebase onto origin/main with GIT_EDITOR=trueexecute_command - Check for conflicts with git status
@@ -178,13 +180,22 @@ const config = {
execute_command - Check all conflicts resolved
- execute_command - Continue rebase with git rebase --continue
+ execute_command - Continue rebase with GIT_EDITOR=true git rebase --continueexecute_command - Verify clean status
+
+ Git commands waiting for interactive input
+
+ Use GIT_EDITOR=true to bypass editor prompts
+ Set GIT_SEQUENCE_EDITOR=true for sequence editing
+ Consider --no-edit flag for commit operations
+
+
+
Rebase completes without conflicts
@@ -225,4 +236,42 @@ const config = {
+
+
+
+ Ensuring git operations run without requiring user interaction is critical
+ for automated conflict resolution. The mode uses environment variables to
+ bypass interactive prompts.
+
+
+
+
+ Set to 'true' (a no-op command) to skip editor prompts
+ GIT_EDITOR=true git rebase --continue
+ During rebase operations that would normally open an editor
+
+
+
+ Skip interactive rebase todo editing
+ GIT_SEQUENCE_EDITOR=true git rebase -i HEAD~3
+ When interactive rebase is triggered but no editing needed
+
+
+
+ Use flags to avoid interactive prompts
+
+ git commit --no-edit (use existing message)
+ git merge --no-edit (skip merge message editing)
+ git cherry-pick --no-edit (keep original message)
+
+
+
+
+
+ Always test commands locally first to identify potential prompts
+ Combine environment variables when multiple editors might be invoked
+ Document why non-interactive mode is used in comments
+ Have fallback strategies if automation fails
+
+
\ No newline at end of file
diff --git a/.roo/rules-merge-resolver/4_complete_example.xml b/.roo/rules-merge-resolver/4_complete_example.xml
index dae8587997..32b2bf344b 100644
--- a/.roo/rules-merge-resolver/4_complete_example.xml
+++ b/.roo/rules-merge-resolver/4_complete_example.xml
@@ -54,7 +54,7 @@ From github.com:user/repo
-git rebase origin/main
+GIT_EDITOR=true git rebase origin/main
]]>
-git rebase --continue
+GIT_EDITOR=true git rebase --continue
]]>
Use git blame and commit messages to understand the history
Combine non-conflicting improvements when possiblePrioritize bugfixes while accommodating refactors
- Complete the rebase process with git rebase --continue
+ Use GIT_EDITOR=true to ensure non-interactive rebase operations
+ Complete the rebase process with GIT_EDITOR=true git rebase --continueValidate that both sets of changes work together
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c75bb9e327..a17950ff59 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,182 @@
# Roo Code Changelog
+## [3.28.3] - 2025-09-16
+
+
+
+- Fix: Filter out Claude Code built-in tools (ExitPlanMode, BashOutput, KillBash) (#7817 by @juliettefournier-econ, PR by @roomote)
+- Replace + icon with edit icon for New Task button (#7941 by @hannesrudolph, PR by @roomote)
+- Fix: Corrected C# tree-sitter query (#5238 by @vadash, PR by @mubeen-zulfiqar)
+- Add keyboard shortcut for "Add to Context" action (#7907 by @hannesrudolph, PR by @roomote)
+- Fix: Context menu is obscured when edit message (#7759 by @mini2s, PR by @NaccOll)
+- Fix: Handle ByteString conversion errors in OpenAI embedders (#7959 by @PavelA85, PR by @daniel-lxs)
+- Add Z.ai coding plan support (thanks @daniel-lxs!)
+- Move slash commands to Settings tab with gear icon for discoverability (thanks @roomote!)
+- Reposition Add Image button inside ChatTextArea (thanks @roomote!)
+- Bring back a way to temporarily and globally pause auto-approve without losing your toggle state (thanks @brunobergher!)
+- Makes text area buttons appear only when there's text (thanks @brunobergher!)
+- CONTRIBUTING.md tweaks and issue template rewrite (thanks @hannesrudolph!)
+- Bump axios from 1.9.0 to 1.12.0 (thanks @dependabot!)
+
+## [3.28.2] - 2025-09-14
+
+
+
+- Improve auto-approve UI with smaller and more subtle design (thanks @brunobergher!)
+- Fix: Message queue re-queue loop in Task.ask() causing performance issues (#7861 by @hannesrudolph, PR by @daniel-lxs)
+- Fix: Restrict @-mention parsing to line-start or whitespace boundaries to prevent false triggers (#7875 by @hannesrudolph, PR by @app/roomote)
+- Fix: Make nested git repository warning persistent with path info for better visibility (#7884 by @hannesrudolph, PR by @app/roomote)
+- Fix: Include API key in Ollama /api/tags requests for authenticated instances (#7902 by @ItsOnlyBinary, PR by @app/roomote)
+- Fix: Preserve original first message context during conversation condensing (thanks @daniel-lxs!)
+- Add Qwen3 Next 80B A3B models to chutes provider (thanks @daniel-lxs!)
+- Disable Roomote Control on logout for better security (thanks @cte!)
+- Add padding to the cloudview for better visual spacing (thanks @mrubens!)
+
+## [3.28.1] - 2025-09-11
+
+
+
+- Announce Roo Code Cloud!
+- Add cloud task button for opening tasks in Roo Code Cloud (thanks @app/roomote!)
+- Make Posthog telemetry the default (thanks @mrubens!)
+- Show notification when the checkpoint initialization fails (thanks @app/roomote!)
+- Bust cache in generated image preview (thanks @mrubens!)
+- Fix: Center active mode in selector dropdown on open (#7882 by @hannesrudolph, PR by @app/roomote)
+- Fix: Preserve first message during conversation condensing (thanks @daniel-lxs!)
+
+## [3.28.0] - 2025-09-10
+
+
+
+- feat: Continue tasks in Roo Code Cloud (thanks @brunobergher!)
+- feat: Support connecting to Cloud without redirect handling (thanks @mrubens!)
+- feat: Add toggle to control task syncing to Cloud (thanks @jr!)
+- feat: Add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (#7788 by @hannesrudolph, PR by @app/roomote)
+- feat: Make reasoning more visible (thanks @app/roomote!)
+- fix: Fix Groq context window display (thanks @mrubens!)
+- fix: Add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (thanks @daniel-lxs!)
+- fix: Resolve chat message edit/delete duplication issues (thanks @daniel-lxs!)
+- fix: Reduce CodeBlock button z-index to prevent overlap with popovers (#7703 by @A0nameless0man, PR by @daniel-lxs)
+- fix: Revert PR #7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (#7581 by @drknyt, PR by @daniel-lxs)
+- fix: Make ollama models info transport work like lmstudio (#7674 by @ItsOnlyBinary, PR by @ItsOnlyBinary)
+- fix: Update DeepSeek pricing to new unified rates effective Sept 5, 2025 (#7685 by @NaccOll, PR by @app/roomote)
+- feat: Update Vertex AI models and regions (#7725 by @ssweens, PR by @ssweens)
+- chore: Update dependency eslint-plugin-turbo to v2.5.6 (thanks @app/renovate!)
+- chore: Update dependency @changesets/cli to v2.29.6 (thanks @app/renovate!)
+- chore: Update dependency nock to v14.0.10 (thanks @app/renovate!)
+- chore: Update dependency eslint-config-prettier to v10.1.8 (thanks @app/renovate!)
+- chore: Update dependency esbuild to v0.25.9 (thanks @app/renovate!)
+
+## [3.27.0] - 2025-09-05
+
+
+
+- Add: User message editing and deletion functionality (thanks @NaccOll!)
+- Add: Kimi K2-0905 model support in Chutes provider (#7700 by @pwilkin, PR by @app/roomote)
+- Fix: Prevent stack overflow in codebase indexing for large projects (#7588 by @StarTrai1, PR by @daniel-lxs)
+- Fix: Resolve race condition in Gemini Grounding Sources by improving code design (#6372 by @daniel-lxs, PR by @HahaBill)
+- Fix: Preserve conversation context by retrying with full conversation on invalid previous_response_id (thanks @daniel-lxs!)
+- Fix: Identify MCP and slash command config path in multiple folder workspaces (#6720 by @kfuglsang, PR by @NaccOll)
+- Fix: Handle array paths from VSCode terminal profiles correctly (#7695 by @Amosvcc, PR by @app/roomote)
+- Fix: Improve WelcomeView styling and readability (thanks @daniel-lxs!)
+- Fix: Resolve CI e2e test ETIMEDOUT errors when downloading VS Code (thanks @daniel-lxs!)
+
+## [3.26.7] - 2025-09-04
+
+
+
+- Feature: Add OpenAI Responses API service tiers (flex/priority) with UI selector and pricing (thanks @hannesrudolph!)
+- Feature: Add DeepInfra as a model provider in Roo Code (#7661 by @Thachnh, PR by @Thachnh)
+- Feature: Update kimi-k2-0905-preview and kimi-k2-turbo-preview models on the Moonshot provider (thanks @CellenLee!)
+- Feature: Add kimi-k2-0905-preview to Groq, Moonshot, and Fireworks (thanks @daniel-lxs and Cline!)
+- Fix: Prevent countdown timer from showing in history for answered follow-up questions (#7624 by @XuyiK, PR by @daniel-lxs)
+- Fix: Moonshot's maximum return token count limited to 1024 issue resolved (#6936 by @greyishsong, PR by @wangxiaolong100)
+- Fix: Add error transform to cryptic OpenAI SDK errors when API key is invalid (#7483 by @A0nameless0man, PR by @app/roomote)
+- Fix: Validate MCP tool exists before execution (#7631 by @R-omk, PR by @app/roomote)
+- Fix: Handle zsh glob qualifiers correctly (thanks @mrubens!)
+- Fix: Handle zsh process substitution correctly (thanks @mrubens!)
+- Fix: Minor zh-TW Traditional Chinese locale typo fix (thanks @PeterDaveHello!)
+
+## [3.26.6] - 2025-09-03
+
+
+
+- Add experimental run_slash_command tool to let the model initiate slash commands (thanks @app/roomote!)
+- Fix: use askApproval wrapper in insert_content and search_and_replace tools (#7648 by @hannesrudolph, PR by @app/roomote)
+- Add Kimi K2 Turbo model configuration to moonshotModels (thanks @wangxiaolong100!)
+- Fix: preserve scroll position when switching tabs in settings (thanks @DC-Dancao!)
+
+## [3.26.5] - 2025-09-03
+
+
+
+- feat: Add support for Qwen3 235B A22B Thinking 2507 model in chutes (thanks @mohammad154!)
+- feat: Add auto-approve support for MCP access_resource tool (#7565 by @m-ibm, PR by @daniel-lxs)
+- feat: Add configurable embedding batch size for code indexing (#7356 by @BenLampson, PR by @app/roomote)
+- fix: Add cache reporting support for OpenAI-Native provider (thanks @hannesrudolph!)
+- feat: Move message queue to the extension host for better performance (thanks @cte!)
+
+## [3.26.4] - 2025-09-01
+
+
+
+- Optimize memory usage for image handling in webview (thanks @daniel-lxs!)
+- Fix: Special tokens should not break task processing (#7539 by @pwilkin, PR by @pwilkin)
+- Add Ollama API key support for Turbo mode (#7147 by @LivioGama, PR by @app/roomote)
+- Rename Account tab to Cloud tab for clarity (thanks @app/roomote!)
+- Add kangaroo-themed release image generation (thanks @mrubens!)
+
+## [3.26.3] - 2025-08-29
+
+
+
+- Add optional input image parameter to image generation tool (thanks @roomote!)
+- Refactor: Flatten image generation settings structure (thanks @daniel-lxs!)
+- Show console logging in vitests when the --no-silent flag is set (thanks @hassoncs!)
+
+## [3.26.2] - 2025-08-28
+
+
+
+- feat: Add experimental image generation tool with OpenRouter integration (thanks @daniel-lxs!)
+- Fix: Resolve GPT-5 Responses API issues with condensing and image support (#7334 by @nlbuescher, PR by @daniel-lxs)
+- Fix: Hide .rooignore'd files from environment details by default (#7368 by @AlexBlack772, PR by @app/roomote)
+- Fix: Exclude browser scroll actions from repetition detection (#7470 by @cgrierson-smartsheet, PR by @app/roomote)
+
+## [3.26.1] - 2025-08-27
+
+
+
+- Add Vercel AI Gateway provider integration (thanks @joshualipman123!)
+- Add support for Vercel embeddings (thanks @mrubens!)
+- Enable on-disk storage for Qdrant vectors and HNSW index (thanks @daniel-lxs!)
+- Show model ID in API configuration dropdown (thanks @daniel-lxs!)
+- Update tooltip component to match native VSCode tooltip shadow styling (thanks @roomote!)
+- Fix: remove duplicate cache display in task header (thanks @mrubens!)
+- Random chat text area cleanup (thanks @cte!)
+
+## [3.26.0] - 2025-08-26
+
+
+
+- Sonic -> Grok Code Fast
+- feat: Add Qwen Code CLI API Support with OAuth Authentication (thanks @evinelias and Cline!)
+- feat: Add Deepseek v3.1 to Fireworks AI provider (#7374 by @dmarkey, PR by @app/roomote)
+- Add a built-in /init slash command (thanks @mrubens and @hannesrudolph!)
+- Fix: Make auto approve toggle trigger stay (#3909 by @kyle-apex, PR by @elianiva)
+- Fix: Preserve user input when selecting follow-up choices (#7316 by @teihome, PR by @daniel-lxs)
+- Fix: Handle Mistral thinking content as reasoning chunks (#6842 by @Biotrioo, PR by @app/roomote)
+- Fix: Resolve newTaskRequireTodos setting not working correctly (thanks @hannesrudolph!)
+- Fix: Requesty model listing (#7377 by @dtrugman, PR by @dtrugman)
+- feat: Hide static providers with no models from provider list (thanks @daniel-lxs!)
+- Add todos parameter to new_task tool usage in issue-fixer mode (thanks @hannesrudolph!)
+- Handle substitution patterns in command validation (thanks @mrubens!)
+- Mark code-workspace files as protected (thanks @mrubens!)
+- Update list of default allowed commands (thanks @mrubens!)
+- Follow symlinks in rooignore checks (thanks @mrubens!)
+- Show cache read and write prices for OpenRouter inference providers (thanks @chrarnoldus!)
+- chore(deps): Update dependency drizzle-kit to v0.31.4 (thanks @app/renovate!)
+
## [3.25.23] - 2025-08-22
- feat: add custom base URL support for Requesty provider (thanks @requesty-JohnCosta27!)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c23c424f41..869b59a16d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -67,25 +67,27 @@ Mention alignment with these areas in your PRs.
### Issue-First Approach
-All contributions must begin with a GitHub Issue.
+All contributions start with a GitHub Issue using our skinny templates.
- **Check existing issues**: Search [GitHub Issues](https://github.com/RooCodeInc/Roo-Code/issues).
-- **Create an issue**: Use appropriate templates:
- - **Bugs:** "Bug Report" template.
- - **Features:** "Detailed Feature Proposal" template. Approval required before starting.
-- **Claim issues**: Comment and await official assignment.
-
-**PRs without approved issues may be closed.**
+- **Create an issue** using:
+ - **Enhancements:** "Enhancement Request" template (plain language focused on user benefit).
+ - **Bugs:** "Bug Report" template (minimal repro + expected vs actual + version).
+- **Want to work on it?** Comment "Claiming" on the issue and DM **Hannes Rudolph (`hrudolph`)** on [Discord](https://discord.gg/roocode) to get assigned. Assignment will be confirmed in the thread.
+- **PRs must link to the issue.** Unlinked PRs may be closed.
### Deciding What to Work On
-- Check the [GitHub Project](https://github.com/orgs/RooCodeInc/projects/1) for unassigned "Good First Issues."
+- Check the [GitHub Project](https://github.com/orgs/RooCodeInc/projects/1) for "Issue [Unassigned]" issues.
- For docs, visit [Roo Code Docs](https://github.com/RooCodeInc/Roo-Code-Docs).
### Reporting Bugs
- Check for existing reports first.
-- Create new bugs using the ["Bug Report" template](https://github.com/RooCodeInc/Roo-Code/issues/new/choose).
+- Create a new bug using the ["Bug Report" template](https://github.com/RooCodeInc/Roo-Code/issues/new/choose) with:
+ - Clear, numbered reproduction steps
+ - Expected vs actual result
+ - Roo Code version (required); API provider/model if relevant
- **Security issues**: Report privately via [security advisories](https://github.com/RooCodeInc/Roo-Code/security/advisories/new).
## Development & Submission Process
@@ -118,13 +120,14 @@ pnpm install
- Begin as a **Draft PR** if seeking early feedback.
- Clearly describe your changes following the Pull Request Template.
+- Link the issue in the PR description/title (e.g., "Fixes #123").
- Provide screenshots/videos for UI changes.
- Indicate if documentation updates are necessary.
### Pull Request Policy
-- Must reference pre-approved, assigned issues.
-- PRs without adherence to the policy may be closed.
+- Must reference an assigned GitHub Issue. To get assigned: comment "Claiming" on the issue and DM **Hannes Rudolph (`hrudolph`)** on [Discord](https://discord.gg/roocode). Assignment will be confirmed in the thread.
+- Unlinked PRs may be closed.
- PRs should pass CI tests, align with the roadmap, and have clear documentation.
### Review Process
diff --git a/PRIVACY.md b/PRIVACY.md
index 2385fc27b9..02e8e15103 100644
--- a/PRIVACY.md
+++ b/PRIVACY.md
@@ -1,6 +1,6 @@
# Roo Code Privacy Policy
-**Last Updated: August 20th, 2025**
+**Last Updated: September 11th, 2025**
Roo Code respects your privacy and is committed to transparency about how we handle your data. Below is a simple breakdown of where key pieces of data go—and, importantly, where they don’t.
@@ -10,19 +10,19 @@ Roo Code respects your privacy and is committed to transparency about how we han
- **Commands**: Any commands executed through Roo Code happen on your local environment. However, when you use AI-powered features, the relevant code and context from your commands may be transmitted to your chosen AI model provider (e.g., OpenAI, Anthropic, OpenRouter) to generate responses. We do not have access to or store this data, but AI providers may process it per their privacy policies.
- **Prompts & AI Requests**: When you use AI-powered features, your prompts and relevant project context are sent to your chosen AI model provider (e.g., OpenAI, Anthropic, OpenRouter) to generate responses. We do not store or process this data. These AI providers have their own privacy policies and may store data per their terms of service. If you choose Roo Code Cloud as the provider (proxy mode), prompts may transit Roo Code servers only to forward them to the upstream model and are not stored.
- **API Keys & Credentials**: If you enter an API key (e.g., to connect an AI model), it is stored locally on your device and never sent to us or any third party, except the provider you have chosen.
-- **Telemetry (Usage Data)**: We only collect feature usage and error data if you explicitly opt-in. This telemetry is powered by PostHog and helps us understand feature usage to improve Roo Code. This includes your VS Code machine ID and feature usage patterns and exception reports. We do **not** collect personally identifiable information, your code, or AI prompts.
-- **Marketplace Requests**: When you browse or search the Marketplace for Model Configuration Profiles (MCPs) or Custom Modes, Roo Code makes a secure API call to Roo Code’s backend servers to retrieve listing information. These requests send only the query parameters (e.g., extension version, search term) necessary to fulfill the request and do not include your code, prompts, or personally identifiable information.
+- **Telemetry (Usage Data)**: We collect anonymous feature usage and error data to help us improve Roo Code. This telemetry is powered by PostHog and includes your VS Code machine ID, feature usage patterns, and exception reports. This telemetry does **not** collect personally identifiable information, your code, or AI prompts. You can opt out of this telemetry at any time through the settings.
+- **Marketplace Requests**: When you browse or search the Marketplace for Model Configuration Profiles (MCPs) or Custom Modes, Roo Code makes a secure API call to Roo Code's backend servers to retrieve listing information. These requests send only the query parameters (e.g., extension version, search term) necessary to fulfill the request and do not include your code, prompts, or personally identifiable information.
### **How We Use Your Data (If Collected)**
-- If you opt-in to telemetry, we use it to understand feature usage and improve Roo Code.
+- We use telemetry to understand feature usage and improve Roo Code.
- We do **not** sell or share your data.
- We do **not** train any models on your data.
### **Your Choices & Control**
- You can run models locally to prevent data being sent to third-parties.
-- By default, telemetry collection is off and if you turn it on, you can opt out of telemetry at any time.
+- Telemetry collection is enabled by default to help us improve Roo Code, but you can opt out at any time through the settings.
- You can delete Roo Code to stop all data collection.
### **Security & Updates**
diff --git a/README.md b/README.md
index 2f3a6069d9..354c6e4703 100644
--- a/README.md
+++ b/README.md
@@ -1,124 +1,89 @@
-
-English • [Català](locales/ca/README.md) • [Deutsch](locales/de/README.md) • [Español](locales/es/README.md) • [Français](locales/fr/README.md) • [हिंदी](locales/hi/README.md) • [Bahasa Indonesia](locales/id/README.md) • [Italiano](locales/it/README.md) • [日本語](locales/ja/README.md)
+# Roo Code
-
-
+> Your AI-Powered Dev Team, Right in Your Editor
-[한국어](locales/ko/README.md) • [Nederlands](locales/nl/README.md) • [Polski](locales/pl/README.md) • [Português (BR)](locales/pt-BR/README.md) • [Русский](locales/ru/README.md) • [Türkçe](locales/tr/README.md) • [Tiếng Việt](locales/vi/README.md) • [简体中文](locales/zh-CN/README.md) • [繁體中文](locales/zh-TW/README.md)
+
+ 🌐 Available languages
-
-
-
-
-
Roo Code
-
-
-
-
Connect with developers, contribute ideas, and stay ahead with the latest AI-powered coding tools.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**Roo Code** is an AI-powered **autonomous coding agent** that lives in your editor. It can:
-
-- Communicate in natural language
-- Read and write files directly in your workspace
-- Run terminal commands
-- Automate browser actions
-- Integrate with any OpenAI-compatible or custom API/model
-- Adapt its “personality” and capabilities through **Custom Modes**
-
-Whether you’re seeking a flexible coding partner, a system architect, or specialized roles like a QA engineer or product manager, Roo Code can help you build software more efficiently.
-
-Check out the [CHANGELOG](CHANGELOG.md) for detailed updates and fixes.
+- [English](README.md)
+- [Català](locales/ca/README.md)
+- [Deutsch](locales/de/README.md)
+- [Español](locales/es/README.md)
+- [Français](locales/fr/README.md)
+- [हिंदी](locales/hi/README.md)
+- [Bahasa Indonesia](locales/id/README.md)
+- [Italiano](locales/it/README.md)
+- [日本語](locales/ja/README.md)
+- [한국어](locales/ko/README.md)
+- [Nederlands](locales/nl/README.md)
+- [Polski](locales/pl/README.md)
+- [Português (BR)](locales/pt-BR/README.md)
+- [Русский](locales/ru/README.md)
+- [Türkçe](locales/tr/README.md)
+- [Tiếng Việt](locales/vi/README.md)
+- [简体中文](locales/zh-CN/README.md)
+- [繁體中文](locales/zh-TW/README.md)
+- ...
+
---
-## 🎉 Roo Code 3.25 Released
+## What Can Roo Code Do For YOU?
-Roo Code 3.25 brings powerful new features and significant improvements to enhance your development workflow!
+- Generate Code from natural language descriptions and specs
+- Adapt with Modes: Code, Architect, Ask, Debug, and Custom Modes
+- Refactor & Debug existing code
+- Write & Update documentation
+- Answer Questions about your codebase
+- Automate repetitive tasks
+- Utilize MCP Servers
-- **Message Queueing** - Queue multiple messages while Roo is working, allowing you to continue planning your workflow without interruption.
-- **Custom Slash Commands** - Create personalized slash commands for quick access to frequently used prompts and workflows, with full UI management.
-- **Enhanced Gemini Tools** - New URL context and Google Search grounding capabilities provide Gemini models with real-time web information and enhanced research abilities.
+## Modes
----
+Roo Code adapts to how you work:
-## What Can Roo Code Do?
+- Code Mode: everyday coding, edits, and file ops
+- Architect Mode: plan systems, specs, and migrations
+- Ask Mode: fast answers, explanations, and docs
+- Debug Mode: trace issues, add logs, isolate root causes
+- Custom Modes: build specialized modes for your team or workflow
+- Roomote Control: Roomote Control lets you remotely control tasks running in your local VS Code instance.
-- 🚀 **Generate Code** from natural language descriptions
-- 🔧 **Refactor & Debug** existing code
-- 📝 **Write & Update** documentation
-- 🤔 **Answer Questions** about your codebase
-- 🔄 **Automate** repetitive tasks
-- 🏗️ **Create** new files and projects
+Learn more: [Using Modes](https://docs.roocode.com/basic-usage/using-modes) • [Custom Modes](https://docs.roocode.com/advanced-usage/custom-modes) • [Custom Modes](https://docs.roocode.com/roo-code-cloud/roomote-control)
-## Quick Start
+## Tutorial & Feature Videos
-1. [Install Roo Code](https://docs.roocode.com/getting-started/installing)
-2. [Connect Your AI Provider](https://docs.roocode.com/getting-started/connecting-api-provider)
-3. [Try Your First Task](https://docs.roocode.com/getting-started/your-first-task)
+
-## Key Features
+| | | |
+| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
+| Installing Roo Code | Configuring Profiles | Codebase Indexing |
+| Custom Modes | Checkpoints | Todo Lists |
-### Multiple Modes
-
-Roo Code adapts to your needs with specialized [modes](https://docs.roocode.com/basic-usage/using-modes):
-
-- **Code Mode:** For general-purpose coding tasks
-- **Architect Mode:** For planning and technical leadership
-- **Ask Mode:** For answering questions and providing information
-- **Debug Mode:** For systematic problem diagnosis
-- **[Custom Modes](https://docs.roocode.com/advanced-usage/custom-modes):** Create unlimited specialized personas for security auditing, performance optimization, documentation, or any other task
-
-### Smart Tools
-
-Roo Code comes with powerful [tools](https://docs.roocode.com/basic-usage/how-tools-work) that can:
-
-- Read and write files in your project
-- Execute commands in your VS Code terminal
-- Control a web browser
-- Use external tools via [MCP (Model Context Protocol)](https://docs.roocode.com/advanced-usage/mcp)
-
-MCP extends Roo Code's capabilities by allowing you to add unlimited custom tools. Integrate with external APIs, connect to databases, or create specialized development tools - MCP provides the framework to expand Roo Code's functionality to meet your specific needs.
-
-### Customization
-
-Make Roo Code work your way with:
-
-- [Custom Instructions](https://docs.roocode.com/advanced-usage/custom-instructions) for personalized behavior
-- [Custom Modes](https://docs.roocode.com/advanced-usage/custom-modes) for specialized tasks
-- [Local Models](https://docs.roocode.com/advanced-usage/local-models) for offline use
-- [Auto-Approval Settings](https://docs.roocode.com/advanced-usage/auto-approving-actions) for faster workflows
+