Skip to content

Commit 5a3f64c

Browse files
committed
Merge branch 'main' into cte/docker-evals
2 parents 34379bc + 39f69f2 commit 5a3f64c

File tree

88 files changed

+3721
-705
lines changed

Some content is hidden

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

88 files changed

+3721
-705
lines changed

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 150 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,72 +5,190 @@ body:
55
- type: markdown
66
attributes:
77
value: |
8-
**Thank you for proposing a detailed feature for Roo Code!**
8+
**Thank you for proposing a feature for Roo Code!**
9+
10+
This template is for specific, actionable proposals following our [Issue-First Approach](https://github.com/RooCodeInc/Roo-Code/blob/main/CONTRIBUTING.md).
11+
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.
13+
14+
**Before submitting:**
15+
- 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!
920
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](https://github.com/RooCodeInc/Roo-Code/blob/main/CONTRIBUTING.md).
11-
12-
- **For general ideas or less defined suggestions**, please use [GitHub Discussions](https://github.com/RooCodeInc/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/RooCodeInc/Roo-Code/issues) and [Discussions](https://github.com/RooCodeInc/Roo-Code/discussions) to avoid duplicates.
21+
- type: markdown
22+
attributes:
23+
value: |
24+
## ❌ Common mistakes that lead to proposal rejection:
25+
- **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
27+
- **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?
1429
15-
For guidance or to discuss your idea, join the [Roo Code Discord](https://discord.gg/roocode) and DM **Hannes Rudolph** (`hrudolph`).
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.
1631
17-
A maintainer (especially @hannesrudolph) will review this proposal. **Do not start implementation until this proposal is approved and assigned.**
1832
- type: textarea
1933
id: problem-description
2034
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..."
35+
label: What specific problem does this solve?
36+
description: |
37+
**Be concrete and detailed.** Explain the problem from a user's perspective.
38+
39+
✅ **Good examples (specific, clear impact):**
40+
- "When running large tasks, users wait 5+ minutes because tasks execute sequentially instead of in parallel, blocking productivity"
41+
- "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"
42+
- "Dark theme users can't see the submit button because it uses white text on light grey background"
43+
44+
❌ **Poor examples (vague, unclear impact):**
45+
- "The UI looks weird" -> What specifically looks weird? On which screen? What's the impact?
46+
- "System prompt is not good" -> What's wrong with it? What behaviour does it cause? What should it do instead?
47+
- "Performance could be better" -> Where? How slow is it currently? What's the user impact?
48+
49+
**Your problem description should answer:**
50+
- Who is affected? (all users, specific user types, etc.)
51+
- When does this happen? (specific scenarios/steps)
52+
- What's the current behaviour vs expected behaviour?
53+
- What's the impact? (time wasted, errors caused, etc.)
54+
placeholder: Be specific about the problem, who it affects, and the impact. Avoid generic statements like "it's slow" or "it's confusing."
2455
validations:
2556
required: true
2657

2758
- type: textarea
2859
id: proposed-solution
2960
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.
61+
label: How should this be solved?
62+
description: |
63+
**Describe your solution in detail.** Explain not just what to build, but how it should work.
64+
65+
✅ **Good examples:**
66+
- "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."
67+
- "Enable multi-file AI processing: Modify the request handler to accept multiple files in a single request and process them together, reducing round trips."
68+
- "Fix button contrast: Change submit button to use primary colour on dark theme (white text on blue background) instead of current grey."
69+
70+
❌ **Poor examples:**
71+
- "Make it faster" -> How? What specific changes?
72+
- "Improve the UI" -> Which part? What specific improvements?
73+
- "Fix the prompt" -> What should the new prompt do differently?
74+
75+
**Your solution should explain:**
76+
- What exactly will change?
77+
- How will users interact with it?
78+
- What will the new behaviour look like?
79+
placeholder: Describe the specific changes and how they will work. Include user interaction details if relevant.
3380
validations:
3481
required: true
3582

3683
- type: textarea
37-
id: technical-details
84+
id: acceptance-criteria
3885
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..."
86+
label: How will we know it works? (Acceptance Criteria)
87+
description: |
88+
**This is crucial - don't skip it.** Define what "working" looks like with specific, testable criteria.
89+
90+
**Format suggestion:**
91+
```
92+
Given [context/situation]
93+
When [user action]
94+
Then [expected result]
95+
And [additional expectations]
96+
But [what should NOT happen]
97+
```
98+
99+
**Example:**
100+
```
101+
Given I have 5 large tasks to run
102+
When I start all of them
103+
Then they execute in parallel (max 3 at once, can be configured)
104+
And I see progress for each active task
105+
And queued tasks show "waiting" status
106+
But the UI doesn't freeze or become unresponsive
107+
```
108+
placeholder: |
109+
Define specific, testable criteria. What should users be able to do? What should happen? What should NOT happen?
110+
Use the Given/When/Then format above or your own clear structure.
111+
validations:
112+
required: true
42113

43114
- type: textarea
44-
id: alternatives-considered
115+
id: estimated-effort
45116
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.
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
141+
142+
- type: textarea
143+
id: technical-considerations
144+
attributes:
145+
label: Technical considerations (optional but helpful)
146+
description: |
147+
Share technical insights that could help planning:
148+
- Implementation approach or architecture changes
149+
- Performance implications
150+
- Compatibility concerns
151+
- Systems that might be affected
152+
- Potential blockers you can foresee
153+
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"
154+
155+
- type: textarea
156+
id: trade-offs-and-risks
157+
attributes:
158+
label: Trade-offs and risks (optional)
159+
description: |
160+
What could go wrong or what alternatives did you consider?
161+
- Alternative approaches and why you chose this one
162+
- Potential negative impacts (performance, UX, etc.)
163+
- Breaking changes or migration concerns
164+
- Edge cases that need careful handling
165+
placeholder: 'e.g., "Alternative: use library X but it is 500KB larger", "Risk: might slow older devices", "Breaking: changes API response format"'
49166

50167
- type: textarea
51168
id: additional-context
52169
attributes:
53-
label: Additional Context & Mockups
54-
description: Add any other context, mockups, screenshots, or links that help illustrate the proposal.
170+
label: Additional context (optional)
171+
description: Mockups, screenshots, links, user quotes, or other relevant information that supports your proposal.
55172

56173
- type: checkboxes
57174
id: checklist
58175
attributes:
59-
label: Proposal Checklist
60-
description: Please confirm the following before submitting.
176+
label: Proposal checklist
61177
options:
62-
- label: I have searched existing Issues and Discussions to ensure this proposal is not a duplicate.
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
63181
required: true
64-
- label: This proposal is for a specific, actionable change intended for implementation (not a general idea).
182+
- label: I've included concrete acceptance criteria
65183
required: true
66-
- label: I understand that this proposal requires review and approval before any development work begins.
184+
- label: I understand this needs approval before implementation begins
67185
required: true
68186

69187
- type: checkboxes
70188
id: willingness-to-contribute
71189
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)
190+
label: Interested in implementing this?
191+
description: Optional - doesn't affect proposal consideration
74192
options:
75-
- label: Yes, I would like to contribute to implementing this feature.
76-
required: false
193+
- label: Yes, I'd like to help implement this feature
194+
required: false

.github/workflows/marketplace-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- name: Package Extension
3737
run: |
3838
current_package_version=$(node -p "require('./src/package.json').version")
39-
pnpm build
39+
pnpm vsix
4040
4141
# Save VSIX contents to a temporary file to avoid broken pipe issues.
4242
unzip -l bin/roo-cline-${current_package_version}.vsix > /tmp/roo-code-vsix-contents.txt

.github/workflows/nightly-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
console.log(`🔖 Nightly version set to ${pkg.version}`);
4747
EOF
4848
- name: Build VSIX
49-
run: pnpm build:nightly # Produces bin/roo-code-nightly-0.0.[count].vsix
49+
run: pnpm vsix:nightly # Produces bin/roo-code-nightly-0.0.[count].vsix
5050
- name: Publish to VS Code Marketplace
5151
env:
5252
VSCE_PAT: ${{ secrets.VSCE_PAT }}

MONOREPO.md

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ pnpm install
2424
If things are in good working order then you should be able to build a vsix and install it in VSCode:
2525

2626
```sh
27-
pnpm build -- --out ../bin/roo-code-main.vsix && \
27+
pnpm vsix -- --out ../bin/roo-code-main.vsix && \
2828
code --install-extension bin/roo-code-main.vsix
2929
```
3030

@@ -34,9 +34,40 @@ To fully stress the monorepo setup, run the following:
3434
pnpm clean && pnpm lint
3535
pnpm clean && pnpm check-types
3636
pnpm clean && pnpm test
37-
pnpm clean && pnpm bundle
3837
pnpm clean && pnpm build
38+
pnpm clean && pnpm bundle
39+
pnpm clean && pnpm bundle:nightly
40+
3941
pnpm clean && pnpm npx turbo watch:bundle
4042
pnpm clean && pnpm npx turbo watch:tsc
41-
cd apps/vscode-e2e && pnpm test:ci
43+
44+
pnpm --filter @roo-code/vscode-e2e test:ci
45+
46+
pnpm clean && \
47+
pnpm vsix -- --out ../bin/roo-code.vsix && \
48+
code --install-extension bin/roo-code.vsix
49+
50+
pnpm clean && \
51+
pnpm vsix:nightly -- --out ../../../bin/roo-code-nightly.vsix && \
52+
code --install-extension bin/roo-code-nightly.vsix
4253
```
54+
55+
### Turborepo
56+
57+
Note that this excludes the `build` task for next.js apps (@roo-code/web-\*).
58+
59+
Tasks: `build` -> `bundle` -> `vsix`
60+
61+
build:
62+
63+
- `@roo-code/build` [input: src, package.json, tsconfig.json | output: dist]
64+
- `@roo-code/types` [input: src, package.json, tsconfig.json, tsup.config.ts | output: dist]
65+
- `@roo-code/webview-ui` [input: src, package.json, tsconfig.json, vite.config.ts | output: ../src/webview-ui]
66+
67+
bundle:
68+
69+
- `roo-cline` [input: * | output: dist]
70+
71+
vsix:
72+
73+
- `roo-cline` [input: dist | output: bin]

0 commit comments

Comments
 (0)