Skip to content

Commit 7152d4e

Browse files
authored
Merge branch 'main' into fix-4958
2 parents 9be2c01 + d99ae58 commit 7152d4e

File tree

643 files changed

+24464
-24222
lines changed

Some content is hidden

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

643 files changed

+24464
-24222
lines changed

.changeset/slimy-years-smell.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+
new feature allowing users to toggle whether an individual MCP (Model Context Protocol) tool is included in the context provided to the AI model

.dockerignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ __tests__
6161
# Ignore development config files
6262
.eslintrc*
6363
.prettierrc*
64-
jest.config*
6564

6665
# Ignore most directories except what we need for the build
6766
apps/
Lines changed: 74 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,28 @@
11
name: Detailed Feature Proposal
2-
description: Propose a specific, actionable feature or enhancement for implementation
2+
description: Report a specific problem that needs solving in Roo Code
33
labels: ["proposal", "enhancement"]
44
body:
55
- type: markdown
66
attributes:
77
value: |
8-
**Thank you for proposing a feature for Roo Code!**
8+
**Thank you for submitting a feature request for Roo Code!**
99
10-
This template is for specific, actionable proposals following our [Issue-First Approach](https://github.com/RooCodeInc/Roo-Code/blob/main/CONTRIBUTING.md).
10+
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.
1111
12-
**Quality over speed:** We prefer detailed, clear proposals over quick ones. Vague proposals often get closed or require multiple rounds of clarification, which wastes everyone's time.
12+
**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.
1313
1414
**Before submitting:**
1515
- Search existing [Issues](https://github.com/RooCodeInc/Roo-Code/issues) and [Discussions](https://github.com/RooCodeInc/Roo-Code/discussions) to avoid duplicates
16-
- For general ideas, use [GitHub Discussions](https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests) first, or use the #collaboration-board channel in our [Discord](https://discord.gg/roocode)
17-
- Join [Discord](https://discord.gg/roocode) and DM **Hannes Rudolph** (`hrudolph`) for guidance
18-
19-
**Review process:** 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!
16+
- For general ideas, use [GitHub Discussions](https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests) instead of this template.
2017
2118
- type: markdown
2219
attributes:
2320
value: |
24-
## ❌ Common mistakes that lead to proposal rejection:
21+
## ❌ Common mistakes that lead to request rejection:
2522
- **Vague problem descriptions:** "UI is bad" -> Should be: "Submit button is invisible on dark theme"
26-
- **Solution without context:** "Add feature X" -> Should explain the problem first, then the solution
2723
- **Missing user impact:** "This would be cool" -> Should explain who benefits and how
28-
- **No acceptance criteria:** How do we know when it's done? What does success look like?
24+
- **No specific context:** Describe exactly when and how the problem occurs
2925
30-
If you're unsure how a good proposal should look like, you can check out 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) where we have a list of all open feature requests that are ready to be implemented or currently being worked on.
3126
3227
- type: textarea
3328
id: problem-description
@@ -55,11 +50,68 @@ body:
5550
validations:
5651
required: true
5752

53+
54+
- type: textarea
55+
id: additional-context
56+
attributes:
57+
label: Additional context (optional)
58+
description: Mockups, screenshots, links, user quotes, or other relevant information that supports your proposal.
59+
60+
- type: checkboxes
61+
id: checklist
62+
attributes:
63+
label: Request checklist
64+
options:
65+
- label: I've searched existing Issues and Discussions for duplicates
66+
required: true
67+
- label: This describes a specific problem with clear impact and context
68+
required: true
69+
70+
- type: markdown
71+
attributes:
72+
value: |
73+
---
74+
75+
## 🛠️ **Optional: Contributing & Technical Analysis**
76+
77+
**🎯 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.
78+
79+
**⚠️ Only continue if you want to:**
80+
- Propose a specific solution design
81+
- Implement the feature yourself via pull request
82+
- Provide technical analysis to help with implementation
83+
84+
**For contributors who continue:**
85+
- 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!
86+
- Join [Discord](https://discord.gg/roocode) and DM **Hannes Rudolph** (`hrudolph`) for guidance on implementation
87+
- 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
88+
89+
- type: checkboxes
90+
id: willingness-to-contribute
91+
attributes:
92+
label: Interested in implementing this?
93+
description: |
94+
**Important:** If you check "Yes" below, the technical sections become REQUIRED.
95+
We need detailed technical analysis from contributors to ensure quality implementation.
96+
options:
97+
- label: Yes, I'd like to help implement this feature
98+
required: false
99+
100+
- type: checkboxes
101+
id: implementation-approval
102+
attributes:
103+
label: Implementation requirements
104+
options:
105+
- label: I understand this needs approval before implementation begins
106+
required: false
107+
58108
- type: textarea
59109
id: proposed-solution
60110
attributes:
61-
label: How should this be solved?
111+
label: How should this be solved? (REQUIRED if contributing, optional otherwise)
62112
description: |
113+
**If you want to implement this feature, this section is REQUIRED.**
114+
63115
**Describe your solution in detail.** Explain not just what to build, but how it should work.
64116
65117
✅ **Good examples:**
@@ -77,14 +129,14 @@ body:
77129
- How will users interact with it?
78130
- What will the new behaviour look like?
79131
placeholder: Describe the specific changes and how they will work. Include user interaction details if relevant.
80-
validations:
81-
required: true
82132

83133
- type: textarea
84134
id: acceptance-criteria
85135
attributes:
86-
label: How will we know it works? (Acceptance Criteria)
136+
label: How will we know it works? (Acceptance Criteria - REQUIRED if contributing, optional otherwise)
87137
description: |
138+
**If you want to implement this feature, this section is REQUIRED.**
139+
88140
**This is crucial - don't skip it.** Define what "working" looks like with specific, testable criteria.
89141
90142
**Format suggestion:**
@@ -108,42 +160,14 @@ body:
108160
placeholder: |
109161
Define specific, testable criteria. What should users be able to do? What should happen? What should NOT happen?
110162
Use the Given/When/Then format above or your own clear structure.
111-
validations:
112-
required: true
113-
114-
- type: textarea
115-
id: estimated-effort
116-
attributes:
117-
label: Estimated effort and complexity
118-
description: |
119-
**Help us understand the scope.** This helps with planning and prioritisation.
120-
121-
**Please include:**
122-
- **Size estimate:** XS/Small/Medium/Large/XL (or hours/days if you prefer)
123-
- **Reasoning:** What makes it this size? Which parts are complex?
124-
- **Main challenges:** What's the trickiest bit to implement?
125-
- **Dependencies:** Does this require other changes or external libraries?
126-
127-
**Example:**
128-
```
129-
Size: Large (2-3 weeks)
130-
Reasoning: Touches task execution engine, UI components, and state management
131-
Main challenges: Preventing memory leaks with parallel execution and managing shared resources
132-
Dependencies: Might need to add a new dependency for the new feature
133-
```
134-
placeholder: |
135-
Size: [your estimate]
136-
Reasoning: [why this size?]
137-
Main challenges: [what's tricky?]
138-
Dependencies: [what else is needed?]
139-
validations:
140-
required: true
141163
142164
- type: textarea
143165
id: technical-considerations
144166
attributes:
145-
label: Technical considerations (optional but helpful)
167+
label: Technical considerations (REQUIRED if contributing, optional otherwise)
146168
description: |
169+
**If you want to implement this feature, this section is REQUIRED.**
170+
147171
Share technical insights that could help planning:
148172
- Implementation approach or architecture changes
149173
- Performance implications
@@ -155,40 +179,13 @@ body:
155179
- type: textarea
156180
id: trade-offs-and-risks
157181
attributes:
158-
label: Trade-offs and risks (optional)
182+
label: Trade-offs and risks (REQUIRED if contributing, optional otherwise)
159183
description: |
184+
**If you want to implement this feature, this section is REQUIRED.**
185+
160186
What could go wrong or what alternatives did you consider?
161187
- Alternative approaches and why you chose this one
162188
- Potential negative impacts (performance, UX, etc.)
163189
- Breaking changes or migration concerns
164190
- Edge cases that need careful handling
165191
placeholder: 'e.g., "Alternative: use library X but it is 500KB larger", "Risk: might slow older devices", "Breaking: changes API response format"'
166-
167-
- type: textarea
168-
id: additional-context
169-
attributes:
170-
label: Additional context (optional)
171-
description: Mockups, screenshots, links, user quotes, or other relevant information that supports your proposal.
172-
173-
- type: checkboxes
174-
id: checklist
175-
attributes:
176-
label: Proposal checklist
177-
options:
178-
- label: I've searched existing Issues and Discussions for duplicates
179-
required: true
180-
- label: This is a specific, actionable proposal with clear problem and solution
181-
required: true
182-
- label: I've included concrete acceptance criteria
183-
required: true
184-
- label: I understand this needs approval before implementation begins
185-
required: true
186-
187-
- type: checkboxes
188-
id: willingness-to-contribute
189-
attributes:
190-
label: Interested in implementing this?
191-
description: Optional - doesn't affect proposal consideration
192-
options:
193-
- label: Yes, I'd like to help implement this feature
194-
required: false

.github/actions/setup-node-pnpm/action.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,21 @@ runs:
2727
uses: pnpm/action-setup@v4
2828
with:
2929
version: ${{ inputs.pnpm-version }}
30+
- name: Get pnpm store directory
31+
shell: bash
32+
run: |
33+
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
34+
- name: Setup pnpm cache
35+
uses: actions/cache@v4
36+
with:
37+
path: ${{ env.STORE_PATH }}
38+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
39+
restore-keys: |
40+
${{ runner.os }}-pnpm-store-
3041
- name: Setup Node.js
3142
uses: actions/setup-node@v4
3243
with:
3344
node-version: ${{ inputs.node-version }}
34-
cache: "pnpm"
3545
- name: Install dependencies
3646
if: ${{ inputs.skip-install != 'true' }}
3747
shell: bash

.github/workflows/evals.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
EOF
4242
4343
- name: Build image
44-
uses: docker/build-push-action@v5
44+
uses: docker/build-push-action@v6
4545
with:
4646
context: .
4747
file: packages/evals/Dockerfile.runner

.github/workflows/website-preview.yml

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ on:
55
branches-ignore:
66
- main
77
paths:
8-
- 'apps/web-roo-code/**'
8+
- "apps/web-roo-code/**"
9+
pull_request:
10+
paths:
11+
- "apps/web-roo-code/**"
912
workflow_dispatch:
1013

1114
env:
@@ -21,11 +24,11 @@ jobs:
2124
- name: Check if VERCEL_TOKEN exists
2225
id: check
2326
run: |
24-
if [ -n "${{ secrets.VERCEL_TOKEN }}" ]; then
25-
echo "has-vercel-token=true" >> $GITHUB_OUTPUT
26-
else
27-
echo "has-vercel-token=false" >> $GITHUB_OUTPUT
28-
fi
27+
if [ -n "${{ secrets.VERCEL_TOKEN }}" ]; then
28+
echo "has-vercel-token=true" >> $GITHUB_OUTPUT
29+
else
30+
echo "has-vercel-token=false" >> $GITHUB_OUTPUT
31+
fi
2932
3033
preview:
3134
runs-on: ubuntu-latest
@@ -43,4 +46,39 @@ jobs:
4346
- name: Build Project Artifacts
4447
run: npx vercel build --token=${{ secrets.VERCEL_TOKEN }}
4548
- name: Deploy Project Artifacts to Vercel
46-
run: npx vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }}
49+
id: deploy
50+
run: |
51+
DEPLOYMENT_URL=$(npx vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }})
52+
echo "deployment_url=$DEPLOYMENT_URL" >> $GITHUB_OUTPUT
53+
echo "Preview deployed to: $DEPLOYMENT_URL"
54+
55+
- name: Comment PR with preview link
56+
if: github.event_name == 'pull_request'
57+
uses: actions/github-script@v7
58+
with:
59+
script: |
60+
const deploymentUrl = '${{ steps.deploy.outputs.deployment_url }}';
61+
const commentIdentifier = '<!-- roo-preview-comment -->';
62+
63+
const { data: comments } = await github.rest.issues.listComments({
64+
owner: context.repo.owner,
65+
repo: context.repo.repo,
66+
issue_number: context.issue.number,
67+
});
68+
69+
const existingComment = comments.find(comment =>
70+
comment.body.includes(commentIdentifier)
71+
);
72+
73+
if (existingComment) {
74+
return;
75+
}
76+
77+
const comment = commentIdentifier + '\n🚀 **Preview deployed!**\n\nYour changes have been deployed to Vercel:\n\n**Preview URL:** ' + deploymentUrl + '\n\nThis preview will be updated automatically when you push new commits to this PR.';
78+
79+
await github.rest.issues.createComment({
80+
owner: context.repo.owner,
81+
repo: context.repo.repo,
82+
issue_number: context.issue.number,
83+
body: comment
84+
});

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ docs/_site/
3232

3333
# Logging
3434
logs
35+
*.log
3536

3637
# Vite development
3738
.vite-port

0 commit comments

Comments
 (0)