Skip to content

Commit b26eef2

Browse files
committed
Merge remote-tracking branch 'origin/main' into file-content-tracking
2 parents 084b5ed + 82bf3dc commit b26eef2

File tree

33 files changed

+675
-359
lines changed

33 files changed

+675
-359
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# German (de) Translation Guidelines
2+
3+
**Key Rule:** Always use informal speech ("du" form) in all German translations without exception.
4+
5+
## Quick Reference
6+
7+
| Category | Formal (Avoid) | Informal (Use) | Example |
8+
| ----------- | ------------------------- | ------------------- | ----------------- |
9+
| Pronouns | Sie | du | you |
10+
| Possessives | Ihr/Ihre/Ihrem | dein/deine/deinem | your |
11+
| Verbs | können Sie, müssen Sie | kannst du, musst du | you can, you must |
12+
| Imperatives | Geben Sie ein, Wählen Sie | Gib ein, Wähle | Enter, Choose |
13+
14+
**Technical terms** like "API", "token", "prompt" should not be translated.

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
nodejs 20.18.1
1+
nodejs v20.18.1

CHANGELOG.md

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

3+
## [3.11.12] - 2025-04-09
4+
5+
- Make Grok3 streaming work with OpenAI Compatible (thanks @amittell!)
6+
- Tweak diff editing logic to make it more tolerant of model errors
7+
8+
## [3.11.11] - 2025-04-09
9+
10+
- Fix highlighting interaction with mode/profile dropdowns (thanks @atlasgong!)
11+
- Add the ability to set Host header and legacy OpenAI API in the OpenAI-compatible provider for better proxy support
12+
- Improvements to TypeScript, C++, Go, Java, Python tree-sitter parsers (thanks @KJ7LNW!)
13+
- Fixes to terminal working directory logic (thanks @KJ7LNW!)
14+
- Improve readFileTool XML output format (thanks @KJ7LNW!)
15+
- Add o1-pro support (thanks @arthurauffray!)
16+
- Follow symlinked rules files/directories to allow for more flexible rule setups
17+
- Focus Roo Code in the sidebar when running tasks in the sidebar via the API
18+
- Improve subtasks UI
19+
320
## [3.11.10] - 2025-04-08
421

522
- Fix bug where nested .roo/rules directories are not respected properly (thanks @taisukeoe!)

README.md

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

evals/apps/cli/src/index.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import { getExercises } from "./exercises.js"
3636
type TaskResult = { success: boolean; retry: boolean }
3737
type TaskPromise = Promise<TaskResult>
3838

39-
const MAX_CONCURRENCY = 20
39+
const MAX_CONCURRENCY = 5
4040
const TASK_TIMEOUT = 10 * 60 * 1_000
4141
const UNIT_TEST_TIMEOUT = 60 * 1_000
4242

@@ -115,8 +115,9 @@ const run = async (toolbox: GluegunToolbox) => {
115115

116116
// Retries aren't implemented yet, but the return values are set up to
117117
// support them.
118-
const processTask = async (task: Task) => {
118+
const processTask = async (task: Task, delay = 0) => {
119119
if (task.finishedAt === null) {
120+
await new Promise((resolve) => setTimeout(resolve, delay))
120121
const { retry } = await runExercise({ run, task, server })
121122

122123
if (retry) {
@@ -141,12 +142,15 @@ const run = async (toolbox: GluegunToolbox) => {
141142
}
142143
}
143144

145+
let delay = 0
144146
for (const task of tasks) {
145-
const promise = processTask(task)
147+
const promise = processTask(task, delay)
148+
delay = delay + 5_000
146149
runningPromises.push(promise)
147150
promise.then(() => processTaskResult(task, promise))
148151

149-
if (runningPromises.length > MAX_CONCURRENCY) {
152+
if (runningPromises.length >= MAX_CONCURRENCY) {
153+
delay = 0
150154
await Promise.race(runningPromises)
151155
}
152156
}

evals/packages/db/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
"db:check": "pnpm drizzle-kit check",
1616
"db:up": "pnpm drizzle-kit up",
1717
"db:studio": "pnpm drizzle-kit studio",
18-
"db:enable-wal": "dotenvx run -f ../../.env -- tsx scripts/enable-wal.mts"
18+
"db:enable-wal": "dotenvx run -f ../../.env -- tsx scripts/enable-wal.mts",
19+
"db:copy-run": "dotenvx run -f ../../.env -- tsx scripts/copy-run.mts"
1920
},
2021
"dependencies": {
2122
"@evals/types": "workspace:^",
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import { drizzle } from "drizzle-orm/libsql"
2+
import { eq } from "drizzle-orm"
3+
4+
import { db as sourceDb } from "../src/db.js"
5+
import { schema } from "../src/schema.js"
6+
7+
const copyRun = async (runId: number) => {
8+
const destDb = drizzle({
9+
schema,
10+
connection: { url: process.env.TURSO_CONNECTION_URL!, authToken: process.env.TURSO_AUTH_TOKEN! },
11+
})
12+
13+
const run = await sourceDb.query.runs.findFirst({
14+
where: eq(schema.runs.id, runId),
15+
with: { taskMetrics: true },
16+
})
17+
18+
if (!run) {
19+
throw new Error(`Run with ID ${runId} not found in source database`)
20+
}
21+
22+
if (!run.taskMetrics) {
23+
throw new Error("Run is not completed")
24+
}
25+
26+
console.log(`Copying run ${run.id}`)
27+
28+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
29+
const { id: _, ...runTaskMetricsValues } = run.taskMetrics
30+
const [newRunTaskMetrics] = await destDb.insert(schema.taskMetrics).values(runTaskMetricsValues).returning()
31+
32+
if (!newRunTaskMetrics) {
33+
throw new Error("Failed to insert run taskMetrics")
34+
}
35+
36+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
37+
const { id: __, ...runValues } = run
38+
39+
const [newRun] = await destDb
40+
.insert(schema.runs)
41+
.values({ ...runValues, taskMetricsId: newRunTaskMetrics.id })
42+
.returning()
43+
44+
if (!newRun) {
45+
throw new Error("Failed to insert run")
46+
}
47+
48+
const tasks = await sourceDb.query.tasks.findMany({
49+
where: eq(schema.tasks.runId, run.id),
50+
with: { taskMetrics: true },
51+
})
52+
53+
console.log(`Copying ${tasks.length} tasks`)
54+
55+
for (const task of tasks) {
56+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
57+
const { id: _, ...newTaskMetricsValues } = task.taskMetrics!
58+
const [newTaskMetrics] = await destDb.insert(schema.taskMetrics).values(newTaskMetricsValues).returning()
59+
60+
if (!newTaskMetrics) {
61+
throw new Error(`Failed to insert taskMetrics for task ${task.id}`)
62+
}
63+
64+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
65+
const { id: __, ...newTaskValues } = task
66+
67+
const [newTask] = await destDb
68+
.insert(schema.tasks)
69+
.values({ ...newTaskValues, runId: newRun.id, taskMetricsId: newTaskMetrics.id })
70+
.returning()
71+
72+
if (!newTask) {
73+
throw new Error(`Failed to insert task ${task.id}`)
74+
}
75+
}
76+
77+
console.log(`Successfully copied run ${runId} with ${tasks.length} tasks`)
78+
}
79+
80+
const main = async () => {
81+
const runId = parseInt(process.argv[2], 10)
82+
83+
if (isNaN(runId)) {
84+
console.error("Run ID must be a number")
85+
process.exit(1)
86+
}
87+
88+
try {
89+
await copyRun(runId)
90+
process.exit(0)
91+
} catch (error) {
92+
console.error(error)
93+
process.exit(1)
94+
}
95+
}
96+
97+
main()

evals/scripts/setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ if [[ ! -d "../../evals" ]]; then
280280
read -p "🔗 Would you like to be able to share eval results? (Y/n): " fork_evals
281281

282282
if [[ "$fork_evals" =~ ^[Yy]|^$ ]]; then
283-
gh repo fork cte/evals ../../evals || exit 1
283+
gh repo fork cte/evals --clone ../../evals || exit 1
284284
else
285285
gh repo clone cte/evals ../../evals || exit 1
286286
fi

evals/turbo.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
"OPENROUTER_MODEL_ID",
1010
"PROMPT_PATH",
1111
"WORKSPACE_PATH",
12-
"BENCHMARKS_DB_PATH"
12+
"BENCHMARKS_DB_PATH",
13+
"TURSO_CONNECTION_URL",
14+
"TURSO_AUTH_TOKEN"
1315
],
1416
"tasks": {
1517
"lint": {},

0 commit comments

Comments
 (0)