Skip to content

Commit bc2181d

Browse files
authored
Merge branch 'RooCodeInc:main' into main
2 parents 72b8c79 + 7cd6520 commit bc2181d

File tree

345 files changed

+12486
-3234
lines changed

Some content is hidden

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

345 files changed

+12486
-3234
lines changed

.github/workflows/code-qa.yml

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -86,22 +86,38 @@ jobs:
8686
- name: Create .env.local file
8787
working-directory: apps/vscode-e2e
8888
run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.local
89+
- name: Set VS Code test version
90+
run: echo "VSCODE_VERSION=1.101.2" >> $GITHUB_ENV
91+
- name: Cache VS Code test runtime
92+
uses: actions/cache@v4
93+
with:
94+
path: apps/vscode-e2e/.vscode-test
95+
key: ${{ runner.os }}-vscode-test-${{ env.VSCODE_VERSION }}
96+
- name: Pre-download VS Code test runtime with retry
97+
working-directory: apps/vscode-e2e
98+
run: |
99+
for attempt in 1 2 3; do
100+
echo "Download attempt $attempt of 3..."
101+
node -e "
102+
const { downloadAndUnzipVSCode } = require('@vscode/test-electron');
103+
downloadAndUnzipVSCode({ version: process.env.VSCODE_VERSION || '1.101.2' })
104+
.then(() => {
105+
console.log('✅ VS Code test runtime downloaded successfully');
106+
process.exit(0);
107+
})
108+
.catch(err => {
109+
console.error('❌ Failed to download VS Code (attempt $attempt):', err);
110+
process.exit(1);
111+
});
112+
" && break || {
113+
if [ $attempt -eq 3 ]; then
114+
echo "All download attempts failed"
115+
exit 1
116+
fi
117+
echo "Retrying in 5 seconds..."
118+
sleep 5
119+
}
120+
done
89121
- name: Run integration tests
90122
working-directory: apps/vscode-e2e
91123
run: xvfb-run -a pnpm test:ci
92-
93-
notify-slack-on-failure:
94-
runs-on: ubuntu-latest
95-
needs: [check-translations, knip, compile, unit-test, integration-test]
96-
if: ${{ always() && github.event_name == 'push' && github.ref == 'refs/heads/main' && contains(needs.*.result, 'failure') }}
97-
steps:
98-
- name: Checkout code
99-
uses: actions/checkout@v4
100-
101-
- name: Send Slack notification on failure
102-
uses: ./.github/actions/slack-notify
103-
with:
104-
webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
105-
channel: "#ci"
106-
workflow-name: "Code QA"
107-
failed-jobs: ${{ toJSON(needs) }}

.github/workflows/discord-pr-notify.yml

Lines changed: 0 additions & 26 deletions
This file was deleted.

.roo/commands/release.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,19 @@ argument-hint: patch | minor | major
2626
- Without issue: "- Add support for Gemini 2.5 Pro caching (thanks @contributor!)"
2727
- 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.
2828

29-
6. If a major or minor release:
29+
6. If the generate_image tool is available, create a release image at `releases/[version]-release.png`
30+
- The image should feature a realistic-looking kangaroo doing something human-like that relates to the main highlight of the release
31+
- Pass `releases/template.png` as the reference image for aspect ratio and kangaroo style
32+
- Add the generated image to .changeset/v[version].md before the list of changes with format: `![X.Y.Z Release - Description](/releases/X.Y.Z-release.png)`
33+
7. If a major or minor release:
3034
- Ask the user what the three most important areas to highlight are in the release
3135
- 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)
3236
- Ask the user to confirm that the English version looks good to them before proceeding
3337
- 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)
34-
7. Create a new branch for the release preparation: `git checkout -b release/v[version]`
35-
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]`
36-
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]`
37-
10. The GitHub Actions workflow will automatically:
38+
8. Create a new branch for the release preparation: `git checkout -b release/v[version]`
39+
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]`
40+
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]`
41+
11. The GitHub Actions workflow will automatically:
3842
- Create a version bump PR when changesets are merged to main
3943
- Update the CHANGELOG.md with proper formatting
4044
- Publish the release when the version bump PR is merged

.roo/rules-merge-resolver/1_workflow.xml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030
<tools>
3131
<tool>gh pr checkout [PR_NUMBER] --force</tool>
3232
<tool>git fetch origin main</tool>
33-
<tool>git rebase origin/main</tool>
33+
<tool>GIT_EDITOR=true git rebase origin/main</tool>
3434
</tools>
3535
<details>
3636
Force checkout the PR branch to ensure clean state
3737
Fetch the latest main branch
3838
Attempt to rebase onto main to reveal conflicts
39+
Use GIT_EDITOR=true to ensure non-interactive rebase
3940
</details>
4041
</step>
4142

@@ -108,8 +109,8 @@
108109
</command>
109110

110111
<command name="rebase_main">
111-
<syntax>git rebase origin/main</syntax>
112-
<purpose>Rebase current branch onto main to reveal conflicts</purpose>
112+
<syntax>GIT_EDITOR=true git rebase origin/main</syntax>
113+
<purpose>Rebase current branch onto main to reveal conflicts (non-interactive)</purpose>
113114
</command>
114115

115116
<command name="get_blame_info">
@@ -133,6 +134,20 @@
133134
</command>
134135
</git_commands>
135136

137+
<command name="continue_rebase">
138+
<syntax>GIT_EDITOR=true git rebase --continue</syntax>
139+
<purpose>Continue rebase after resolving conflicts (non-interactive)</purpose>
140+
</command>
141+
</git_commands>
142+
143+
<environment_variables>
144+
<variable name="GIT_EDITOR">
145+
<value>true</value>
146+
<purpose>Set to 'true' (a no-op command) to prevent interactive prompts during rebase operations</purpose>
147+
<usage>Prefix git rebase commands with GIT_EDITOR=true to ensure non-interactive execution</usage>
148+
</variable>
149+
</environment_variables>
150+
136151
<completion_criteria>
137152
<criterion>All merge conflicts have been resolved</criterion>
138153
<criterion>Resolved files have been staged</criterion>

.roo/rules-merge-resolver/3_tool_usage.xml

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
<practice>Chain git commands with && for efficiency</practice>
2727
<practice>Use --format options for structured output</practice>
2828
<practice>Capture command output for parsing</practice>
29+
<practice>Use GIT_EDITOR=true for non-interactive git rebase operations</practice>
30+
<practice>Set environment variables inline to avoid prompts during automation</practice>
2931
</best_practices>
3032

3133
<common_commands>
@@ -46,7 +48,7 @@
4648

4749
<command>
4850
<purpose>Rebase onto main to reveal conflicts</purpose>
49-
<syntax>git rebase origin/main</syntax>
51+
<syntax>GIT_EDITOR=true git rebase origin/main</syntax>
5052
</command>
5153

5254
<command>
@@ -71,7 +73,7 @@
7173

7274
<command>
7375
<purpose>Continue rebase after resolution</purpose>
74-
<syntax>git rebase --continue</syntax>
76+
<syntax>GIT_EDITOR=true git rebase --continue</syntax>
7577
</command>
7678
</common_commands>
7779
</tool>
@@ -152,7 +154,7 @@ const config = {
152154
<step>execute_command - Get PR info with gh CLI</step>
153155
<step>execute_command - Checkout PR with gh pr checkout --force</step>
154156
<step>execute_command - Fetch origin main</step>
155-
<step>execute_command - Rebase onto origin/main</step>
157+
<step>execute_command - Rebase onto origin/main with GIT_EDITOR=true</step>
156158
<step>execute_command - Check for conflicts with git status</step>
157159
</sequence>
158160
</pattern>
@@ -178,13 +180,22 @@ const config = {
178180
<pattern name="complete_rebase">
179181
<sequence>
180182
<step>execute_command - Check all conflicts resolved</step>
181-
<step>execute_command - Continue rebase with git rebase --continue</step>
183+
<step>execute_command - Continue rebase with GIT_EDITOR=true git rebase --continue</step>
182184
<step>execute_command - Verify clean status</step>
183185
</sequence>
184186
</pattern>
185187
</tool_combination_patterns>
186188

187189
<error_handling>
190+
<scenario name="interactive_prompt_blocking">
191+
<description>Git commands waiting for interactive input</description>
192+
<approach>
193+
Use GIT_EDITOR=true to bypass editor prompts
194+
Set GIT_SEQUENCE_EDITOR=true for sequence editing
195+
Consider --no-edit flag for commit operations
196+
</approach>
197+
</scenario>
198+
188199
<scenario name="no_conflicts_after_rebase">
189200
<description>Rebase completes without conflicts</description>
190201
<approach>
@@ -225,4 +236,42 @@ const config = {
225236
</approach>
226237
</scenario>
227238
</error_handling>
239+
240+
<non_interactive_operations>
241+
<overview>
242+
Ensuring git operations run without requiring user interaction is critical
243+
for automated conflict resolution. The mode uses environment variables to
244+
bypass interactive prompts.
245+
</overview>
246+
247+
<techniques>
248+
<technique name="GIT_EDITOR">
249+
<description>Set to 'true' (a no-op command) to skip editor prompts</description>
250+
<usage>GIT_EDITOR=true git rebase --continue</usage>
251+
<when>During rebase operations that would normally open an editor</when>
252+
</technique>
253+
254+
<technique name="GIT_SEQUENCE_EDITOR">
255+
<description>Skip interactive rebase todo editing</description>
256+
<usage>GIT_SEQUENCE_EDITOR=true git rebase -i HEAD~3</usage>
257+
<when>When interactive rebase is triggered but no editing needed</when>
258+
</technique>
259+
260+
<technique name="commit_flags">
261+
<description>Use flags to avoid interactive prompts</description>
262+
<examples>
263+
<example>git commit --no-edit (use existing message)</example>
264+
<example>git merge --no-edit (skip merge message editing)</example>
265+
<example>git cherry-pick --no-edit (keep original message)</example>
266+
</examples>
267+
</technique>
268+
</techniques>
269+
270+
<best_practices>
271+
<practice>Always test commands locally first to identify potential prompts</practice>
272+
<practice>Combine environment variables when multiple editors might be invoked</practice>
273+
<practice>Document why non-interactive mode is used in comments</practice>
274+
<practice>Have fallback strategies if automation fails</practice>
275+
</best_practices>
276+
</non_interactive_operations>
228277
</merge_resolver_tool_usage>

.roo/rules-merge-resolver/4_complete_example.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ From github.com:user/repo
5454

5555
<tool_use><![CDATA[
5656
<execute_command>
57-
<command>git rebase origin/main</command>
57+
<command>GIT_EDITOR=true git rebase origin/main</command>
5858
</execute_command>
5959
]]></tool_use>
6060
<expected_output><![CDATA[
@@ -251,7 +251,7 @@ abc123 Fix: Add listener cleanup to prevent memory leak
251251

252252
<tool_use><![CDATA[
253253
<execute_command>
254-
<command>git rebase --continue</command>
254+
<command>GIT_EDITOR=true git rebase --continue</command>
255255
</execute_command>
256256
]]></tool_use>
257257
<expected_output><![CDATA[
@@ -309,7 +309,8 @@ Both the feature refactor and the critical bugfix have been preserved in the res
309309
<takeaway>Use git blame and commit messages to understand the history</takeaway>
310310
<takeaway>Combine non-conflicting improvements when possible</takeaway>
311311
<takeaway>Prioritize bugfixes while accommodating refactors</takeaway>
312-
<takeaway>Complete the rebase process with git rebase --continue</takeaway>
312+
<takeaway>Use GIT_EDITOR=true to ensure non-interactive rebase operations</takeaway>
313+
<takeaway>Complete the rebase process with GIT_EDITOR=true git rebase --continue</takeaway>
313314
<takeaway>Validate that both sets of changes work together</takeaway>
314315
</key_takeaways>
315316
</merge_resolver_example>

CHANGELOG.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,85 @@
11
# Roo Code Changelog
22

3+
## [3.27.0] - 2025-09-05
4+
5+
![3.27.0 Release - Bug Fixes and Improvements](/releases/3.27.0-release.png)
6+
7+
- Add: User message editing and deletion functionality (thanks @NaccOll!)
8+
- Add: Kimi K2-0905 model support in Chutes provider (#7700 by @pwilkin, PR by @app/roomote)
9+
- Fix: Prevent stack overflow in codebase indexing for large projects (#7588 by @StarTrai1, PR by @daniel-lxs)
10+
- Fix: Resolve race condition in Gemini Grounding Sources by improving code design (#6372 by @daniel-lxs, PR by @HahaBill)
11+
- Fix: Preserve conversation context by retrying with full conversation on invalid previous_response_id (thanks @daniel-lxs!)
12+
- Fix: Identify MCP and slash command config path in multiple folder workspaces (#6720 by @kfuglsang, PR by @NaccOll)
13+
- Fix: Handle array paths from VSCode terminal profiles correctly (#7695 by @Amosvcc, PR by @app/roomote)
14+
- Fix: Improve WelcomeView styling and readability (thanks @daniel-lxs!)
15+
- Fix: Resolve CI e2e test ETIMEDOUT errors when downloading VS Code (thanks @daniel-lxs!)
16+
17+
## [3.26.7] - 2025-09-04
18+
19+
![3.26.7 Release - OpenAI Service Tiers](/releases/3.26.7-release.png)
20+
21+
- Feature: Add OpenAI Responses API service tiers (flex/priority) with UI selector and pricing (thanks @hannesrudolph!)
22+
- Feature: Add DeepInfra as a model provider in Roo Code (#7661 by @Thachnh, PR by @Thachnh)
23+
- Feature: Update kimi-k2-0905-preview and kimi-k2-turbo-preview models on the Moonshot provider (thanks @CellenLee!)
24+
- Feature: Add kimi-k2-0905-preview to Groq, Moonshot, and Fireworks (thanks @daniel-lxs and Cline!)
25+
- Fix: Prevent countdown timer from showing in history for answered follow-up questions (#7624 by @XuyiK, PR by @daniel-lxs)
26+
- Fix: Moonshot's maximum return token count limited to 1024 issue resolved (#6936 by @greyishsong, PR by @wangxiaolong100)
27+
- Fix: Add error transform to cryptic OpenAI SDK errors when API key is invalid (#7483 by @A0nameless0man, PR by @app/roomote)
28+
- Fix: Validate MCP tool exists before execution (#7631 by @R-omk, PR by @app/roomote)
29+
- Fix: Handle zsh glob qualifiers correctly (thanks @mrubens!)
30+
- Fix: Handle zsh process substitution correctly (thanks @mrubens!)
31+
- Fix: Minor zh-TW Traditional Chinese locale typo fix (thanks @PeterDaveHello!)
32+
33+
## [3.26.6] - 2025-09-03
34+
35+
![3.26.6 Release - Bug Fixes and Tool Improvements](/releases/3.26.6-release.png)
36+
37+
- Add experimental run_slash_command tool to let the model initiate slash commands (thanks @app/roomote!)
38+
- Fix: use askApproval wrapper in insert_content and search_and_replace tools (#7648 by @hannesrudolph, PR by @app/roomote)
39+
- Add Kimi K2 Turbo model configuration to moonshotModels (thanks @wangxiaolong100!)
40+
- Fix: preserve scroll position when switching tabs in settings (thanks @DC-Dancao!)
41+
42+
## [3.26.5] - 2025-09-03
43+
44+
![3.26.5 Release - Enhanced AI Thinking Capabilities](/releases/3.26.5-release.png)
45+
46+
- feat: Add support for Qwen3 235B A22B Thinking 2507 model in chutes (thanks @mohammad154!)
47+
- feat: Add auto-approve support for MCP access_resource tool (#7565 by @m-ibm, PR by @daniel-lxs)
48+
- feat: Add configurable embedding batch size for code indexing (#7356 by @BenLampson, PR by @app/roomote)
49+
- fix: Add cache reporting support for OpenAI-Native provider (thanks @hannesrudolph!)
50+
- feat: Move message queue to the extension host for better performance (thanks @cte!)
51+
52+
## [3.26.4] - 2025-09-01
53+
54+
![3.26.4 Release - Memory Optimization](/releases/3.26.4-release.png)
55+
56+
- Optimize memory usage for image handling in webview (thanks @daniel-lxs!)
57+
- Fix: Special tokens should not break task processing (#7539 by @pwilkin, PR by @pwilkin)
58+
- Add Ollama API key support for Turbo mode (#7147 by @LivioGama, PR by @app/roomote)
59+
- Rename Account tab to Cloud tab for clarity (thanks @app/roomote!)
60+
- Add kangaroo-themed release image generation (thanks @mrubens!)
61+
362
## [3.26.3] - 2025-08-29
463

64+
![3.26.3 Release - Kangaroo Photo Editor](/releases/3.26.3-release.png)
65+
566
- Add optional input image parameter to image generation tool (thanks @roomote!)
667
- Refactor: Flatten image generation settings structure (thanks @daniel-lxs!)
768
- Show console logging in vitests when the --no-silent flag is set (thanks @hassoncs!)
869

970
## [3.26.2] - 2025-08-28
1071

72+
![3.26.2 Release - Kangaroo Digital Artist](/releases/3.26.2-release.png)
73+
1174
- feat: Add experimental image generation tool with OpenRouter integration (thanks @daniel-lxs!)
1275
- Fix: Resolve GPT-5 Responses API issues with condensing and image support (#7334 by @nlbuescher, PR by @daniel-lxs)
1376
- Fix: Hide .rooignore'd files from environment details by default (#7368 by @AlexBlack772, PR by @app/roomote)
1477
- Fix: Exclude browser scroll actions from repetition detection (#7470 by @cgrierson-smartsheet, PR by @app/roomote)
1578

1679
## [3.26.1] - 2025-08-27
1780

81+
![3.26.1 Release - Kangaroo Network Engineer](/releases/3.26.1-release.png)
82+
1883
- Add Vercel AI Gateway provider integration (thanks @joshualipman123!)
1984
- Add support for Vercel embeddings (thanks @mrubens!)
2085
- Enable on-disk storage for Qdrant vectors and HNSW index (thanks @daniel-lxs!)
@@ -25,6 +90,8 @@
2590

2691
## [3.26.0] - 2025-08-26
2792

93+
![3.26.0 Release - Kangaroo Speed Racer](/releases/3.26.0-release.png)
94+
2895
- Sonic -> Grok Code Fast
2996
- feat: Add Qwen Code CLI API Support with OAuth Authentication (thanks @evinelias and Cline!)
3097
- feat: Add Deepseek v3.1 to Fireworks AI provider (#7374 by @dmarkey, PR by @app/roomote)

0 commit comments

Comments
 (0)