Skip to content

Commit f57a2e9

Browse files
committed
Merge branch 'main' into refactor-mcp
# Conflicts: # src/core/Cline.ts
2 parents 95377c4 + b3065d2 commit f57a2e9

File tree

176 files changed

+3601
-2145
lines changed

Some content is hidden

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

176 files changed

+3601
-2145
lines changed

CHANGELOG.md

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

3+
## [3.13.0] - 2025-04-17
4+
5+
- UI improvements to task header, chat view, history preview, and welcome view (thanks @sachasayan!)
6+
- Add append_to_file tool for appending content to files (thanks @samhvw8!)
7+
- Add Gemini 2.5 Flash Preview to Gemini and Vertex providers (thanks @nbihan-mediware!)
8+
- Fix image support in Bedrock (thanks @Smartsheet-JB-Brown!)
9+
- Make diff edits more resilient to models passing in incorrect parameters
10+
11+
## [3.12.3] - 2025-04-17
12+
13+
- Fix character escaping issues in Gemini diff edits
14+
- Support dragging and dropping tabs into the chat box (thanks @NyxJae!)
15+
- Make sure slash commands only fire at the beginning of the chat box (thanks @logosstone!)
16+
17+
## [3.12.2] - 2025-04-16
18+
19+
- Add OpenAI o3 & 4o-mini (thanks @PeterDaveHello!)
20+
- Improve file/folder context mention UI (thanks @elianiva!)
21+
- Improve diff error telemetry
22+
323
## [3.12.1] - 2025-04-16
424

525
- Bugfix to Edit button visibility in the select dropdowns

README.md

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

assets/images/roo-logo.svg

Lines changed: 3 additions & 0 deletions
Loading

evals/apps/cli/src/index.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,12 @@ const runExercise = async ({ run, task, server }: { run: Run; task: Task; server
275275
})
276276
}
277277

278-
if (eventName === RooCodeEventName.TaskCompleted || eventName === RooCodeEventName.TaskAborted) {
278+
if (eventName === RooCodeEventName.TaskCompleted && taskMetricsId) {
279+
const toolUsage = payload[2]
280+
await updateTaskMetrics(taskMetricsId, { toolUsage })
281+
}
282+
283+
if (eventName === RooCodeEventName.TaskAborted || eventName === RooCodeEventName.TaskCompleted) {
279284
taskFinishedAt = Date.now()
280285
await updateTask(task.id, { finishedAt: new Date() })
281286
}

evals/apps/web/src/app/home.tsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { Ellipsis, Rocket } from "lucide-react"
88
import type { Run, TaskMetrics } from "@evals/db"
99

1010
import { deleteRun } from "@/lib/server/runs"
11-
import { formatCurrency, formatDuration, formatTokens } from "@/lib"
11+
import { formatCurrency, formatDuration, formatTokens, formatToolUsageSuccessRate } from "@/lib/formatters"
1212
import {
1313
Button,
1414
Table,
@@ -59,7 +59,8 @@ export function Home({ runs }: { runs: (Run & { taskMetrics: TaskMetrics | null
5959
<TableHead>Passed</TableHead>
6060
<TableHead>Failed</TableHead>
6161
<TableHead>% Correct</TableHead>
62-
<TableHead className="text-center">Tokens In / Out</TableHead>
62+
<TableHead>Tokens In / Out</TableHead>
63+
<TableHead>Diff Edits</TableHead>
6364
<TableHead>Cost</TableHead>
6465
<TableHead>Duration</TableHead>
6566
<TableHead />
@@ -79,12 +80,21 @@ export function Home({ runs }: { runs: (Run & { taskMetrics: TaskMetrics | null
7980
</TableCell>
8081
<TableCell>
8182
{taskMetrics && (
82-
<div className="flex items-center justify-evenly">
83+
<div className="flex items-center gap-1.5">
8384
<div>{formatTokens(taskMetrics.tokensIn)}</div>/
8485
<div>{formatTokens(taskMetrics.tokensOut)}</div>
8586
</div>
8687
)}
8788
</TableCell>
89+
<TableCell>
90+
{taskMetrics?.toolUsage?.apply_diff && (
91+
<div className="flex flex-row items-center gap-1.5">
92+
<div>{taskMetrics.toolUsage.apply_diff.attempts}</div>
93+
<div>/</div>
94+
<div>{formatToolUsageSuccessRate(taskMetrics.toolUsage.apply_diff)}</div>
95+
</div>
96+
)}
97+
</TableCell>
8898
<TableCell>{taskMetrics && formatCurrency(taskMetrics.cost)}</TableCell>
8999
<TableCell>{taskMetrics && formatDuration(taskMetrics.duration)}</TableCell>
90100
<TableCell>

evals/apps/web/src/app/runs/[id]/run.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { LoaderCircle } from "lucide-react"
55

66
import * as db from "@evals/db"
77

8-
import { formatCurrency, formatDuration, formatTokens } from "@/lib"
8+
import { formatCurrency, formatDuration, formatTokens } from "@/lib/formatters"
99
import { useRunStatus } from "@/hooks/use-run-status"
1010
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui"
1111

evals/apps/web/src/app/runs/new/new-run.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ export function NewRun() {
158158
.parse(JSON.parse(await file.text()))
159159

160160
const providerSettings = providerProfiles.apiConfigs[providerProfiles.currentApiConfigName] ?? {}
161+
161162
const {
162163
apiProvider,
163164
apiModelId,
@@ -177,6 +178,7 @@ export function NewRun() {
177178
case "gemini":
178179
case "mistral":
179180
case "openai-native":
181+
case "xai":
180182
case "vertex":
181183
setValue("model", apiModelId ?? "")
182184
break

evals/apps/web/src/lib/format-currency.ts

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

evals/apps/web/src/lib/format-duration.ts

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

evals/apps/web/src/lib/format-tokens.ts

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

0 commit comments

Comments
 (0)