Skip to content

Commit 99472b5

Browse files
committed
Merge remote-tracking branch 'upstream/main' into vertical-settings-tabs
2 parents 79bfc08 + 7863303 commit 99472b5

File tree

384 files changed

+16799
-9456
lines changed

Some content is hidden

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

384 files changed

+16799
-9456
lines changed

.changeset/curly-frogs-pull.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+
Use gemini provider when using Gemini on vertex ai

.changeset/five-pumpkins-carry.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+
Overhaul CodeBlock rendering

.changeset/many-boats-hunt.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+
Use a fallback terminal if VSCode shell integration fails

.changeset/odd-ligers-press.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"roo-cline": minor
3+
---
4+
5+
Add Reasoning Effort setting for OpenAI Compatible provider

.roomodes

Lines changed: 15 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,19 @@
3434
]
3535
],
3636
"source": "project"
37+
},
38+
{
39+
"slug": "release-engineer",
40+
"name": "🚀 Release Engineer",
41+
"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.",
42+
"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\"roo-cline\": patch|minor|major\n---\n\n# Changelog: v[current] → v[new]\n\n## 🔧 Fixes\n[fixes with categorization]\n\n## 🚀 Features\n[features with categorization]\n\n## ⚙️ Internal Changes\n[internal changes]\n\n- Always include contributor attribution using format: (thanks @username!)\n- Provide brief descriptions under each item to explain the change\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",
43+
"groups": [
44+
"read",
45+
"edit",
46+
"command",
47+
"browser"
48+
],
49+
"source": "project"
3750
}
3851
]
3952
}

README.md

Lines changed: 25 additions & 25 deletions
Large diffs are not rendered by default.

e2e/src/suite/subtasks.test.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import type { ClineMessage } from "../../../src/exports/roo-code"
44

55
import { sleep, waitFor, waitUntilCompleted } from "./utils"
66

7-
suite("Roo Code Subtasks", () => {
7+
suite.skip("Roo Code Subtasks", () => {
88
test("Should handle subtask cancellation and resumption correctly", async () => {
99
const api = globalThis.api
1010

@@ -17,18 +17,17 @@ suite("Roo Code Subtasks", () => {
1717
}
1818
})
1919

20-
await api.setConfiguration({
21-
mode: "ask",
22-
alwaysAllowModeSwitch: true,
23-
alwaysAllowSubtasks: true,
24-
autoApprovalEnabled: true,
25-
enableCheckpoints: false,
26-
})
27-
2820
const childPrompt = "You are a calculator. Respond only with numbers. What is the square root of 9?"
2921

3022
// Start a parent task that will create a subtask.
3123
const parentTaskId = await api.startNewTask({
24+
configuration: {
25+
mode: "ask",
26+
alwaysAllowModeSwitch: true,
27+
alwaysAllowSubtasks: true,
28+
autoApprovalEnabled: true,
29+
enableCheckpoints: false,
30+
},
3231
text:
3332
"You are the parent task. " +
3433
`Create a subtask by using the new_task tool with the message '${childPrompt}'.` +

esbuild.js

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -32,41 +32,33 @@ const copyWasmFiles = {
3232
const nodeModulesDir = path.join(__dirname, "node_modules")
3333
const distDir = path.join(__dirname, "dist")
3434

35-
// tiktoken
35+
// tiktoken WASM file
3636
fs.copyFileSync(
3737
path.join(nodeModulesDir, "tiktoken", "tiktoken_bg.wasm"),
3838
path.join(distDir, "tiktoken_bg.wasm"),
3939
)
4040

41-
// tree-sitter WASM
41+
// Main tree-sitter WASM file
4242
fs.copyFileSync(
4343
path.join(nodeModulesDir, "web-tree-sitter", "tree-sitter.wasm"),
4444
path.join(distDir, "tree-sitter.wasm"),
4545
)
4646

47-
// language-specific tree-sitter WASMs
48-
const languageWasmDir = path.join(nodeModulesDir, "tree-sitter-wasms", "out")
49-
const languages = [
50-
"typescript",
51-
"tsx",
52-
"python",
53-
"rust",
54-
"javascript",
55-
"go",
56-
"cpp",
57-
"c",
58-
"c_sharp",
59-
"ruby",
60-
"java",
61-
"php",
62-
"swift",
63-
"kotlin",
64-
]
65-
66-
languages.forEach((lang) => {
67-
const filename = `tree-sitter-${lang}.wasm`
68-
fs.copyFileSync(path.join(languageWasmDir, filename), path.join(distDir, filename))
69-
})
47+
// Copy language-specific WASM files
48+
const languageWasmDir = path.join(__dirname, "node_modules", "tree-sitter-wasms", "out")
49+
50+
// Dynamically read all WASM files from the directory instead of using a hardcoded list
51+
if (fs.existsSync(languageWasmDir)) {
52+
const wasmFiles = fs.readdirSync(languageWasmDir).filter((file) => file.endsWith(".wasm"))
53+
54+
console.log(`Copying ${wasmFiles.length} tree-sitter WASM files to dist directory`)
55+
56+
wasmFiles.forEach((filename) => {
57+
fs.copyFileSync(path.join(languageWasmDir, filename), path.join(distDir, filename))
58+
})
59+
} else {
60+
console.warn(`Tree-sitter WASM directory not found: ${languageWasmDir}`)
61+
}
7062
})
7163
},
7264
}
@@ -181,7 +173,7 @@ const extensionConfig = {
181173
{
182174
name: "alias-plugin",
183175
setup(build) {
184-
build.onResolve({ filter: /^pkce-challenge$/ }, (args) => {
176+
build.onResolve({ filter: /^pkce-challenge$/ }, (_args) => {
185177
return { path: require.resolve("pkce-challenge/dist/index.browser.js") }
186178
})
187179
},
@@ -195,22 +187,31 @@ const extensionConfig = {
195187
external: ["vscode"],
196188
}
197189

190+
const workerConfig = {
191+
bundle: true,
192+
minify: production,
193+
sourcemap: !production,
194+
logLevel: "silent",
195+
entryPoints: ["src/workers/countTokens.ts"],
196+
format: "cjs",
197+
sourcesContent: false,
198+
platform: "node",
199+
outdir: "dist/workers",
200+
}
201+
198202
async function main() {
199-
const extensionCtx = await esbuild.context(extensionConfig)
203+
const [extensionCtx, workerCtx] = await Promise.all([
204+
esbuild.context(extensionConfig),
205+
esbuild.context(workerConfig),
206+
])
200207

201208
if (watch) {
202-
// Start the esbuild watcher
203-
await extensionCtx.watch()
204-
205-
// Copy and watch locale files
206-
console.log("Copying locale files initially...")
209+
await Promise.all([extensionCtx.watch(), workerCtx.watch()])
207210
copyLocaleFiles()
208-
209-
// Set up the watcher for locale files
210211
setupLocaleWatcher()
211212
} else {
212-
await extensionCtx.rebuild()
213-
await extensionCtx.dispose()
213+
await Promise.all([extensionCtx.rebuild(), workerCtx.rebuild()])
214+
await Promise.all([extensionCtx.dispose(), workerCtx.dispose()])
214215
}
215216
}
216217

evals/packages/types/src/roo-code.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,6 @@ export const clineAsks = [
706706
"mistake_limit_reached",
707707
"browser_action_launch",
708708
"use_mcp_server",
709-
"finishTask",
710709
] as const
711710

712711
export const clineAskSchema = z.enum(clineAsks)
@@ -716,7 +715,6 @@ export type ClineAsk = z.infer<typeof clineAskSchema>
716715
// ClineSay
717716

718717
export const clineSays = [
719-
"task",
720718
"error",
721719
"api_req_started",
722720
"api_req_finished",
@@ -729,15 +727,12 @@ export const clineSays = [
729727
"user_feedback",
730728
"user_feedback_diff",
731729
"command_output",
732-
"tool",
733730
"shell_integration_warning",
734731
"browser_action",
735732
"browser_action_result",
736-
"command",
737733
"mcp_server_request_started",
738734
"mcp_server_response",
739-
"new_task_started",
740-
"new_task",
735+
"subtask_result",
741736
"checkpoint_saved",
742737
"rooignore_error",
743738
"diff_error",

knip.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"evals/**",
1818
"src/activate/**",
1919
"src/exports/**",
20+
"src/workers/**",
2021
"src/schemas/ipc.ts",
2122
"src/extension.ts",
2223
"scripts/**"

0 commit comments

Comments
 (0)