Skip to content

Commit 83aebe4

Browse files
committed
Merge branch 'main' of github.com:RooVetGit/Roo-Code into fix/timeout
2 parents b04d363 + 9378a4e commit 83aebe4

File tree

67 files changed

+3252
-293
lines changed

Some content is hidden

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

67 files changed

+3252
-293
lines changed

.github/workflows/code-qa.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +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

CHANGELOG.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
11
# Roo Code Changelog
22

3-
## [3.26.7] - 2025-09-05
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
418

519
![3.26.7 Release - OpenAI Service Tiers](/releases/3.26.7-release.png)
620

apps/vscode-e2e/src/runTest.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ async function main() {
3838
extensionTestsPath,
3939
launchArgs: [testWorkspace],
4040
extensionTestsEnv,
41+
version: process.env.VSCODE_VERSION || "1.101.2",
4142
})
4243

4344
// Clean up the temporary workspace

apps/web-roo-code/next.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const nextConfig: NextConfig = {
2121
destination: "https://roocode.com/:path*",
2222
permanent: true,
2323
},
24-
// Redirect cloud waitlist to Notion page
24+
// Redirect cloud waitlist to Notion page (kept for extension compatibility)
2525
{
2626
source: "/cloud-waitlist",
2727
destination: "https://roo-code.notion.site/238fd1401b0a8087b858e1ad431507cf?pvs=105",

apps/web-roo-code/src/app/evals/evals.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,13 @@ export function Evals({
129129
<TableRow key={run.id}>
130130
<TableCell title={run.model?.description}>
131131
<div className="font-sans">{run.label}</div>
132-
<div className="text-xs opacity-50">
133-
{formatTokens(run.modelInfo?.contextWindow ?? 0)}
134-
</div>
132+
<div className="text-xs opacity-50">{formatTokens(run.modelInfo?.contextWindow)}</div>
135133
</TableCell>
136134
<TableCell className="border-r">
137135
<div className="flex flex-row gap-2">
138-
<div>{formatCurrency(run.modelInfo?.inputPrice ?? 0)}</div>
136+
<div>{formatCurrency(run.modelInfo?.inputPrice)}</div>
139137
<div className="opacity-25">/</div>
140-
<div>{formatCurrency(run.modelInfo?.outputPrice ?? 0)}</div>
138+
<div>{formatCurrency(run.modelInfo?.outputPrice)}</div>
141139
</div>
142140
</TableCell>
143141
<TableCell className="font-mono">{formatDuration(run.taskMetrics.duration)}</TableCell>

apps/web-roo-code/src/components/chromes/nav-bar.tsx

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -69,19 +69,13 @@ export function NavBar({ stars, downloads }: NavBarProps) {
6969
className="text-muted-foreground transition-transform duration-200 hover:scale-105 hover:text-foreground">
7070
Community
7171
</a>
72-
<div className="flex items-center rounded-full bg-gradient-to-r from-blue-400 to-cyan-400 p-0.5 text-xs">
73-
<div className="rounded-full bg-background px-2 py-1.5">
74-
<span className="text-muted-foreground border-r-2 border-foreground/50 pr-1.5">
75-
Roo Code Cloud is coming
76-
</span>
77-
<a
78-
href="/cloud-waitlist"
79-
rel="noopener noreferrer"
80-
className="font-medium text-primary hover:underline pl-1.5">
81-
Sign up
82-
</a>
83-
</div>
84-
</div>
72+
<a
73+
href={EXTERNAL_LINKS.CLOUD_APP}
74+
target="_blank"
75+
rel="noopener noreferrer"
76+
className="text-muted-foreground transition-transform duration-200 hover:scale-105 hover:text-foreground">
77+
Cloud
78+
</a>
8579
</nav>
8680

8781
<div className="hidden md:flex md:items-center md:space-x-4">
@@ -121,19 +115,6 @@ export function NavBar({ stars, downloads }: NavBarProps) {
121115
<div
122116
className={`absolute left-0 right-0 top-16 z-50 transform border-b border-border bg-background shadow-lg backdrop-blur-none transition-all duration-200 md:hidden ${isMenuOpen ? "translate-y-0 opacity-100" : "pointer-events-none -translate-y-2 opacity-0"}`}>
123117
<nav className="flex flex-col py-2">
124-
<div className="mx-5 mb-2 flex items-center rounded-full bg-gradient-to-r from-blue-400 to-cyan-400 p-0.5 text-xs">
125-
<div className="flex-grow text-center rounded-full bg-background px-2 py-1.5">
126-
<span className="text-muted-foreground border-r-2 border-foreground/50 pr-3">
127-
Roo Code Cloud is coming
128-
</span>
129-
<a
130-
href="/cloud-waitlist"
131-
rel="noopener noreferrer"
132-
className="font-medium text-primary hover:underline pl-3">
133-
Sign up
134-
</a>
135-
</div>
136-
</div>
137118
<ScrollButton
138119
targetId="features"
139120
className="w-full px-8 py-3 text-left text-sm font-medium text-foreground/80 transition-colors hover:bg-accent hover:text-foreground"
@@ -181,6 +162,14 @@ export function NavBar({ stars, downloads }: NavBarProps) {
181162
onClick={() => setIsMenuOpen(false)}>
182163
Community
183164
</a>
165+
<a
166+
href={EXTERNAL_LINKS.CLOUD_APP}
167+
target="_blank"
168+
rel="noopener noreferrer"
169+
className="w-full px-8 py-3 text-left text-sm font-medium text-foreground/80 transition-colors hover:bg-accent hover:text-foreground"
170+
onClick={() => setIsMenuOpen(false)}>
171+
Cloud
172+
</a>
184173

185174
<hr className="mx-8 my-2 border-t border-border/50" />
186175

apps/web-roo-code/src/lib/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export const EXTERNAL_LINKS = {
2424
OFFICE_HOURS_PODCAST: "https://www.youtube.com/@RooCodeYT/podcasts",
2525
FAQ: "https://roocode.com/#faq",
2626
TESTIMONIALS: "https://roocode.com/#testimonials",
27+
CLOUD_APP: "https://app.roocode.com",
2728
}
2829

2930
export const INTERNAL_LINKS = {

apps/web-roo-code/src/lib/format-currency.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ const formatter = new Intl.NumberFormat("en-US", {
33
currency: "USD",
44
})
55

6-
export const formatCurrency = (amount: number) => formatter.format(amount)
6+
export const formatCurrency = (amount: number | null | undefined) => {
7+
if (amount === null || amount === undefined) {
8+
return "-"
9+
}
10+
return formatter.format(amount)
11+
}
712

813
export const parsePrice = (price?: string) => (price ? parseFloat(price) * 1_000_000 : undefined)

apps/web-roo-code/src/lib/format-duration.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
export const formatDuration = (durationMs: number) => {
1+
export const formatDuration = (durationMs: number | null | undefined) => {
2+
if (durationMs === null || durationMs === undefined) {
3+
return "-"
4+
}
5+
26
const seconds = Math.floor(durationMs / 1000)
37
const hours = Math.floor(seconds / 3600)
48
const minutes = Math.floor((seconds % 3600) / 60)

apps/web-roo-code/src/lib/format-tokens.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
export const formatTokens = (tokens: number, decimals = 0) => {
1+
export const formatTokens = (tokens: number | null | undefined, decimals = 0) => {
2+
if (tokens === null || tokens === undefined) {
3+
return "-"
4+
}
5+
26
if (tokens < 1000) {
37
return tokens.toString()
48
}

0 commit comments

Comments
 (0)