Skip to content

Commit c4c3767

Browse files
committed
Merge branch 'main' into refactor-mcp
# Conflicts: # src/core/webview/webviewMessageHandler.ts # src/services/mcp/McpHub.ts
2 parents 9341d03 + c665d3c commit c4c3767

File tree

523 files changed

+33883
-17224
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

523 files changed

+33883
-17224
lines changed

.changeset/brave-pigs-judge.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"roo-cline": patch
3+
---
4+
5+
Add editor name to telemetry

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ name: Bug Report
22
description: Clearly report a bug with detailed repro steps
33
labels: ["bug"]
44
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
**Thank you for taking the time to fill out this bug report!**
9+
10+
Please ensure this bug hasn't been reported already by searching existing [GitHub Issues](https://github.com/RooVetGit/Roo-Code/issues).
511
- type: input
612
id: version
713
attributes:
@@ -17,27 +23,33 @@ body:
1723
description: Choose the API provider involved
1824
multiple: false
1925
options:
20-
- OpenRouter
2126
- Anthropic
22-
- Google Gemini
27+
- AWS Bedrock
28+
- Chutes AI
2329
- DeepSeek
24-
- OpenAI
25-
- OpenAI Compatible
26-
- GCP Vertex AI
27-
- Amazon Bedrock
28-
- Requesty
2930
- Glama
30-
- VS Code LM API
31+
- Google Gemini
32+
- Groq
33+
- Human Relay Provider
3134
- LM Studio
35+
- Mistral AI
3236
- Ollama
37+
- OpenAI
38+
- OpenAI Compatible
39+
- OpenRouter
40+
- Requesty
41+
- Unbound
42+
- VS Code Language Model API
43+
- xAI (Grok)
44+
- Not Applicable / Other
3345
validations:
3446
required: true
3547

3648
- type: input
3749
id: model
3850
attributes:
3951
label: Model Used
40-
description: Clearly specify the exact model (e.g., Claude 3.7 Sonnet)
52+
description: Clearly specify the exact model (e.g., Claude 3.7 Sonnet). If not applicable, enter N/A.
4153
validations:
4254
required: true
4355

@@ -69,8 +81,8 @@ body:
6981
- type: textarea
7082
id: logs
7183
attributes:
72-
label: Relevant API Request Output
73-
description: Paste relevant API logs or outputs here (formatted automatically as code)
84+
label: Relevant API Request Output or Error Logs
85+
description: Paste relevant API logs, console outputs, or error messages here (formatted automatically as code).
7486
render: shell
7587

7688
- type: textarea
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Detailed Feature Proposal
2+
description: Propose a specific, actionable feature or enhancement for implementation
3+
labels: ["proposal", "enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
**Thank you for proposing a detailed feature for Roo Code!**
9+
10+
This template is for submitting specific, actionable proposals that you or others intend to implement after discussion and approval. It's a key part of our [Issue-First Approach](../../CONTRIBUTING.md).
11+
12+
- **For general ideas or less defined suggestions**, please use [GitHub Discussions](https://github.com/RooVetGit/Roo-Code/discussions/categories/feature-requests?discussions_q=is%3Aopen+category%3A%22Feature+Requests%22+sort%3Atop) first.
13+
- **Before submitting**, please search existing [GitHub Issues](https://github.com/RooVetGit/Roo-Code/issues) and [Discussions](https://github.com/RooVetGit/Roo-Code/discussions) to avoid duplicates.
14+
15+
For guidance or to discuss your idea, join the [Roo Code Discord](https://discord.gg/roocode) and DM **Hannes Rudolph** (`hrudolph`).
16+
17+
A maintainer (especially @hannesrudolph) will review this proposal. **Do not start implementation until this proposal is approved and assigned.**
18+
- type: textarea
19+
id: problem-description
20+
attributes:
21+
label: What problem does this proposed feature solve?
22+
description: Clearly describe the problem, use case, or opportunity this feature addresses. Why is this change needed?
23+
placeholder: e.g., "Users currently cannot..." or "It would be beneficial if..."
24+
validations:
25+
required: true
26+
27+
- type: textarea
28+
id: proposed-solution
29+
attributes:
30+
label: Describe the proposed solution in detail
31+
description: Provide a clear and comprehensive description of the feature or enhancement. How should it work? What are the key functionalities?
32+
placeholder: Include details on user interaction, expected behavior, and potential impact.
33+
validations:
34+
required: true
35+
36+
- type: textarea
37+
id: technical-details
38+
attributes:
39+
label: Technical considerations or implementation details (optional)
40+
description: If you have thoughts on how this could be implemented, or specific technical aspects to consider, please share them.
41+
placeholder: e.g., "This might involve changes to X component..." or "We should consider Y library..."
42+
43+
- type: textarea
44+
id: alternatives-considered
45+
attributes:
46+
label: Describe alternatives considered (if any)
47+
description: What other ways could this problem be solved or this functionality be achieved? Why is your proposed solution preferred?
48+
placeholder: Briefly outline any alternative approaches and why they were not chosen.
49+
50+
- type: textarea
51+
id: additional-context
52+
attributes:
53+
label: Additional Context & Mockups
54+
description: Add any other context, mockups, screenshots, or links that help illustrate the proposal.
55+
56+
- type: checkboxes
57+
id: checklist
58+
attributes:
59+
label: Proposal Checklist
60+
description: Please confirm the following before submitting.
61+
options:
62+
- label: I have searched existing Issues and Discussions to ensure this proposal is not a duplicate.
63+
required: true
64+
- label: This proposal is for a specific, actionable change intended for implementation (not a general idea).
65+
required: true
66+
- label: I understand that this proposal requires review and approval before any development work begins.
67+
required: true
68+
69+
- type: checkboxes
70+
id: willingness-to-contribute
71+
attributes:
72+
label: Are you interested in implementing this feature if approved?
73+
description: (This is optional and does not affect the proposal's consideration)
74+
options:
75+
- label: Yes, I would like to contribute to implementing this feature.
76+
required: false

.github/pull_request_template.md

Lines changed: 65 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,83 @@
1-
## Context
1+
<!--
2+
Thank you for contributing to Roo Code!
3+
4+
Before submitting your PR, please ensure:
5+
- It's linked to an approved GitHub Issue.
6+
- You've reviewed our [Contributing Guidelines](../../CONTRIBUTING.md).
7+
-->
8+
9+
### Related GitHub Issue
210

3-
<!-- Brief description of WHAT you’re doing and WHY. -->
11+
<!-- Every PR MUST be linked to an approved issue. -->
412

5-
## Implementation
13+
Closes: # <!-- Replace with the issue number, e.g., Closes: #123 -->
14+
15+
### Description
616

717
<!--
18+
Briefly summarize the changes in this PR and how they address the linked issue.
19+
The issue should cover the "what" and "why"; this section should focus on:
20+
- The "how": key implementation details, design choices, or trade-offs made.
21+
- Anything specific reviewers should pay attention to in this PR.
22+
-->
823

9-
Some description of HOW you achieved it. Perhaps give a high level description of the program flow. Did you need to refactor something? What tradeoffs did you take? Are there things in here which you’d particularly like people to pay close attention to?
24+
### Test Procedure
1025

26+
<!--
27+
Detail the steps to test your changes. This helps reviewers verify your work.
28+
- How did you test this specific implementation? (e.g., unit tests, manual testing steps)
29+
- How can reviewers reproduce your tests or verify the fix/feature?
30+
- Include relevant testing environment details if applicable.
1131
-->
1232

13-
## Screenshots
33+
### Type of Change
1434

15-
| before | after |
16-
| ------ | ----- |
17-
| | |
35+
<!-- Mark all applicable boxes with an 'x'. -->
1836

19-
## How to Test
37+
- [ ] 🐛 **Bug Fix**: Non-breaking change that fixes an issue.
38+
- [ ]**New Feature**: Non-breaking change that adds functionality.
39+
- [ ] 💥 **Breaking Change**: Fix or feature that would cause existing functionality to not work as expected.
40+
- [ ] ♻️ **Refactor**: Code change that neither fixes a bug nor adds a feature.
41+
- [ ] 💅 **Style**: Changes that do not affect the meaning of the code (white-space, formatting, etc.).
42+
- [ ] 📚 **Documentation**: Updates to documentation files.
43+
- [ ] ⚙️ **Build/CI**: Changes to the build process or CI configuration.
44+
- [ ] 🧹 **Chore**: Other changes that don't modify `src` or test files.
2045

21-
<!--
46+
### Pre-Submission Checklist
47+
48+
<!-- Go through this checklist before marking your PR as ready for review. -->
49+
50+
- [ ] **Issue Linked**: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
51+
- [ ] **Scope**: My changes are focused on the linked issue (one major feature/fix per PR).
52+
- [ ] **Self-Review**: I have performed a thorough self-review of my code.
53+
- [ ] **Code Quality**:
54+
- [ ] My code adheres to the project's style guidelines.
55+
- [ ] There are no new linting errors or warnings (`npm run lint`).
56+
- [ ] All debug code (e.g., `console.log`) has been removed.
57+
- [ ] **Testing**:
58+
- [ ] New and/or updated tests have been added to cover my changes.
59+
- [ ] All tests pass locally (`npm test`).
60+
- [ ] The application builds successfully with my changes.
61+
- [ ] **Branch Hygiene**: My branch is up-to-date (rebased) with the `main` branch.
62+
- [ ] **Documentation Impact**: I have considered if my changes require documentation updates (see "Documentation Updates" section below).
63+
- [ ] **Changeset**: A changeset has been created using `npm run changeset` if this PR includes user-facing changes or dependency updates.
64+
- [ ] **Contribution Guidelines**: I have read and agree to the [Contributor Guidelines](../../CONTRIBUTING.md).
2265

23-
A straightforward scenario of how to test your changes will help reviewers that are not familiar with the part of the code that you are changing but want to see it in action. This section can include a description or step-by-step instructions of how to get to the state of v2 that your change affects.
66+
### Screenshots / Videos
2467

25-
A "How To Test" section can look something like this:
68+
<!--
69+
For UI changes, please provide before-and-after screenshots or a short video of the *actual results*.
70+
This greatly helps in understanding the visual impact of your changes.
71+
-->
2672

27-
- Sign in with a user with tracks
28-
- Activate `show_awesome_cat_gifs` feature (add `?feature.show_awesome_cat_gifs=1` to your URL)
29-
- You should see a GIF with cats dancing
73+
### Documentation Updates
3074

75+
<!--
76+
Does this PR necessitate updates to user-facing documentation?
77+
- [ ] No documentation updates are required.
78+
- [ ] Yes, documentation updates are required. (Please describe what needs to be updated or link to a PR in the docs repository).
3179
-->
3280

33-
## Get in Touch
81+
### Additional Notes
3482

35-
<!-- We'd love to have a way to chat with you about your changes if necessary. If you're in the [Roo Code Discord](https://discord.gg/roocode), please share your handle here. -->
83+
<!-- Add any other context, questions, or information for reviewers here. -->

.github/workflows/code-qa.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ jobs:
7878
run: npm run install:all
7979
- name: Compile (to build and copy WASM files)
8080
run: npm run compile
81-
- name: Run unit tests
81+
- name: Run jest unit tests
8282
run: npx jest --silent
83+
- name: Run vitest unit tests
84+
run: npx vitest run --silent
8385

8486
test-webview:
8587
runs-on: ${{ matrix.os }}

.roo/rules-translate/001-general-rules.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 1. SUPPORTED LANGUAGES AND LOCATION
22

3-
- Localize all strings into the following locale files: ca, de, en, es, fr, hi, it, ja, ko, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW
3+
- Localize all strings into the following locale files: ca, de, en, es, fr, hi, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW
44
- The VSCode extension has two main areas that require localization:
55
- Core Extension: src/i18n/locales/ (extension backend)
66
- WebView UI: webview-ui/src/i18n/locales/ (user interface)

.roomodes

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"customModes": [
33
{
44
"slug": "test",
5-
"name": "Test",
5+
"name": "🧪 Test",
66
"roleDefinition": "You are Roo, a Jest testing specialist with deep expertise in:\n- Writing and maintaining Jest test suites\n- Test-driven development (TDD) practices\n- Mocking and stubbing with Jest\n- Integration testing strategies\n- TypeScript testing patterns\n- Code coverage analysis\n- Test performance optimization\n\nYour focus is on maintaining high test quality and coverage across the codebase, working primarily with:\n- Test files in __tests__ directories\n- Mock implementations in __mocks__\n- Test utilities and helpers\n- Jest configuration and setup\n\nYou ensure tests are:\n- Well-structured and maintainable\n- Following Jest best practices\n- Properly typed with TypeScript\n- Providing meaningful coverage\n- Using appropriate mocking strategies",
77
"groups": [
88
"read",
@@ -20,7 +20,7 @@
2020
},
2121
{
2222
"slug": "translate",
23-
"name": "Translate",
23+
"name": "🌐 Translate",
2424
"roleDefinition": "You are Roo, a linguistic specialist focused on translating and managing localization files. Your responsibility is to help maintain and update translation files for the application, ensuring consistency and accuracy across all language resources.",
2525
"groups": [
2626
"read",
@@ -34,6 +34,39 @@
3434
]
3535
],
3636
"source": "project"
37+
},
38+
{
39+
"slug": "design-engineer",
40+
"name": "🎨 Design Engineer",
41+
"roleDefinition": "You are Roo, an expert Design Engineer focused on VSCode Extension development. Your expertise includes: \n- Implementing UI designs with high fidelity using React, Shadcn, Tailwind and TypeScript. \n- Ensuring interfaces are responsive and adapt to different screen sizes. \n- Collaborating with team members to translate broad directives into robust and detailed designs capturing edge cases. \n- Maintaining uniformity and consistency across the user interface.",
42+
"groups": [
43+
"read",
44+
[
45+
"edit",
46+
{
47+
"fileRegex": "\\.(css|html|json|mdx?|jsx?|tsx?|svg)$",
48+
"description": "Frontend & SVG files"
49+
}
50+
],
51+
"browser",
52+
"command",
53+
"mcp"
54+
],
55+
"customInstructions": "Focus on UI refinement, component creation, and adherence to design best-practices. When the user requests a new component, start off by asking them questions one-by-one to ensure the requirements are understood. Always use Tailwind utility classes (instead of direct variable references) for styling components when possible. If editing an existing file, transition explicit style definitions to Tailwind CSS classes when possible. Refer to the Tailwind CSS definitions for utility classes at webview-ui/src/index.css. Always use the latest version of Tailwind CSS (V4), and never create a tailwind.config.js file. Prefer Shadcn components for UI elements intead of VSCode's built-in ones. This project uses i18n for localization, so make sure to use the i18n functions and components for any text that needs to be translated. Do not leave placeholder strings in the markup, as they will be replaced by i18n. Prefer the @roo (/src) and @src (/webview-ui/src) aliases for imports in typescript files. Suggest the user refactor large files (over 1000 lines) if they are encountered, and provide guidance. Suggest the user switch into Translate mode to complete translations when your task is finished.",
56+
"source": "project"
57+
},
58+
{
59+
"slug": "release-engineer",
60+
"name": "🚀 Release Engineer",
61+
"roleDefinition": "You are Roo, a release engineer specialized in automating the release process for software projects. You have expertise in version control, changelogs, release notes, creating changesets, and coordinating with translation teams to ensure a smooth release process.",
62+
"customInstructions": "When preparing a release:\n1. Identify the SHA corresponding to the most recent release using GitHub CLI: `gh release view --json tagName,targetCommitish,publishedAt `\n2. Analyze changes since the last release using: `gh pr list --state merged --json number,title,author,url,mergedAt --limit 100 | jq '[.[] | select(.mergedAt > \"TIMESTAMP\") | {number, title, author: .author.login, url, mergedAt}]'`\n3. Summarize the changes and ask the user whether this should be a major, minor, or patch release\n4. Create a changeset in .changeset/v[version].md instead of directly modifying package.json. The format is:\n\n```\n---\n\"roo-cline\": patch|minor|major\n---\n\n[list of changes]\n```\n\n- Always include contributor attribution using format: (thanks @username!)\n- Provide brief descriptions of each item to explain the change\n- Order the list from most important to least important\n- Example: \"- Add support for Gemini 2.5 Pro caching (thanks @contributor!)\"\n\n5. If a major or minor 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)\n6. Ask the user to confirm the English version\n7. 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\n8. Commit and push the changeset file to the repository\n9. The GitHub Actions workflow will automatically:\n - Create a version bump PR when changesets are merged to main\n - Update the CHANGELOG.md with proper formatting\n - Publish the release when the version bump PR is merged",
63+
"groups": [
64+
"read",
65+
"edit",
66+
"command",
67+
"browser"
68+
],
69+
"source": "project"
3770
}
3871
]
3972
}

0 commit comments

Comments
 (0)