Skip to content

Commit 391582f

Browse files
committed
fix: reduce VS Code extension lag by truncating CHANGELOG
- Create script to generate truncated CHANGELOG (10 most recent versions) - Remove release images from VS Code CHANGELOG - Reduce CHANGELOG size from 114KB to 4.8KB (95.8% reduction) - Add link to full changelog on GitHub Fixes #8527
1 parent 85b0e8a commit 391582f

File tree

3 files changed

+194
-12
lines changed

3 files changed

+194
-12
lines changed

CHANGELOG.vscode.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Roo Code Changelog
2+
3+
## [3.28.15] - 2025-10-03
4+
5+
- Add new DeepSeek and GLM models with detailed descriptions to the Chutes provider (thanks @mohammad154!)
6+
- Fix: properly reset cost limit tracking when user clicks "Reset and Continue" (#6889 by @alecoot, PR by app/roomote)
7+
- Fix: improve save button activation in prompts settings (#5780 by @beccare, PR by app/roomote)
8+
- Fix: overeager 'there are unsaved changes' dialog in settings (thanks @brunobergher!)
9+
- Fix: show send button when only images are selected in chat textarea (thanks app/roomote!)
10+
- Fix: Claude Sonnet 4.5 compatibility improvements (thanks @mrubens!)
11+
- Add UsageStats schema and type for better analytics tracking (thanks app/roomote!)
12+
- Include reasoning messages in cloud tasks (thanks @mrubens!)
13+
- Security: update dependency vite to v6.3.6 (thanks app/renovate!)
14+
- Deprecate free grok 4 fast model (thanks @mrubens!)
15+
- Remove unsupported Gemini 2.5 Flash Image Preview free model (thanks @SannidhyaSah!)
16+
- Add structured data to the homepage for better SEO (thanks @mrubens!)
17+
- Update dependency glob to v11.0.3 (thanks app/renovate!)
18+
19+
## [3.28.14] - 2025-09-30
20+
21+
- Add support for GLM-4.6 model for z.ai provider (#8406 by @dmarkey, PR by @roomote)
22+
23+
## [3.28.13] - 2025-09-29
24+
25+
- Fix: Remove topP parameter from Bedrock inference config (#8377 by @ronyblum, PR by @daniel-lxs)
26+
- Fix: Correct Vertex AI Sonnet 4.5 model configuration (#8387 by @nickcatal, PR by @mrubens!)
27+
28+
## [3.28.12] - 2025-09-29
29+
30+
- Fix: Correct Anthropic Sonnet 4.5 model ID and add Bedrock 1M context checkbox (thanks @daniel-lxs!)
31+
32+
## [3.28.11] - 2025-09-29
33+
34+
- Fix: Correct AWS Bedrock Claude Sonnet 4.5 model identifier (#8371 by @sunhyung, PR by @app/roomote)
35+
- Fix: Correct Claude Sonnet 4.5 model ID format (thanks @daniel-lxs!)
36+
37+
## [3.28.10] - 2025-09-29
38+
39+
- Feat: Add Sonnet 4.5 support (thanks @daniel-lxs!)
40+
- Fix: Resolve max_completion_tokens issue for GPT-5 models in LiteLLM provider (#6979 by @lx1054331851, PR by @roomote)
41+
- Fix: Make chat icons properly sized with shrink-0 class (thanks @mrubens!)
42+
- Enhancement: Track telemetry settings changes for better analytics (thanks @mrubens!)
43+
- Web: Add testimonials section to website (thanks @brunobergher!)
44+
- CI: Refresh contrib.rocks cache workflow for contributor badges (thanks @hannesrudolph!)
45+
46+
## [3.28.9] - 2025-09-26
47+
48+
- The free Supernova model now has a 1M token context window (thanks @mrubens!)
49+
- Experiment to show the Roo provider on the welcome screen (thanks @mrubens!)
50+
- Web: Website improvements to https://roocode.com/ (thanks @brunobergher!)
51+
- Fix: Remove <thinking> tags from prompts for cleaner output and fewer tokens (#8318 by @hannesrudolph, PR by @app/roomote)
52+
- Correct tool use suggestion to improve model adherence to suggestion (thanks @hannesrudolph!)
53+
- feat: log out from cloud when resetting extension state (thanks @app/roomote!)
54+
- feat: Add telemetry tracking to DismissibleUpsell component (thanks @app/roomote!)
55+
- refactor: remove pr-reviewer mode (thanks @daniel-lxs!)
56+
- Removing user hint when refreshing models (thanks @requesty-JohnCosta27!)
57+
58+
## [3.28.8] - 2025-09-25
59+
60+
- Fix: Resolve frequent "No tool used" errors by clarifying tool-use rules (thanks @hannesrudolph!)
61+
- Fix: Include initial ask in condense summarization (thanks @hannesrudolph!)
62+
- Add support for more free models in the Roo provider (thanks @mrubens!)
63+
- Show cloud switcher and option to add a team when logged in (thanks @mrubens!)
64+
- Add Opengraph image for web (thanks @brunobergher!)
65+
66+
## [3.28.7] - 2025-09-23
67+
68+
- UX: Collapse thinking blocks by default with UI settings to always show them (thanks @brunobergher!)
69+
- Fix: Resolve checkpoint restore popover positioning issue (#8219 by @NaccOll, PR by @app/roomote)
70+
- Add cloud account switcher functionality (thanks @mrubens!)
71+
- Add support for zai-org/GLM-4.5-turbo model in Chutes provider (#8155 by @mugnimaestra, PR by @app/roomote)
72+
73+
## [3.28.6] - 2025-09-23
74+
75+
- Feat: Add GPT-5-Codex model (thanks @daniel-lxs!)
76+
- Feat: Add keyboard shortcut for toggling auto-approve (Cmd/Ctrl+Alt+A) (thanks @brunobergher!)
77+
- Fix: Improve reasoning block formatting for better readability (thanks @daniel-lxs!)
78+
- Fix: Respect Ollama Modelfile num_ctx configuration (#7797 by @hannesrudolph, PR by @app/roomote)
79+
- Fix: Prevent checkpoint text from wrapping in non-English languages (#8206 by @NaccOll, PR by @app/roomote)
80+
- Remove language selection and word wrap toggle from CodeBlock (thanks @mrubens!)
81+
- Feat: Add package.nls.json checking to find-missing-translations script (thanks @app/roomote!)
82+
- Fix: Bare metal evals fixes (thanks @cte!)
83+
- Fix: Follow-up questions should trigger the "interactive" state (thanks @cte!)
84+
85+
---
86+
87+
_For the complete changelog with all 11 releases, please visit the [GitHub repository](https://github.com/RooCodeInc/Roo-Code/blob/main/CHANGELOG.md)._
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
#!/usr/bin/env node
2+
3+
const fs = require("fs")
4+
const path = require("path")
5+
6+
/**
7+
* Generate a truncated CHANGELOG for VS Code extension
8+
* This reduces the file size to improve performance when viewing the extension details
9+
*/
10+
function generateVSCodeChangelog() {
11+
const changelogPath = path.join(__dirname, "..", "CHANGELOG.md")
12+
const outputPath = path.join(__dirname, "..", "CHANGELOG.vscode.md")
13+
14+
if (!fs.existsSync(changelogPath)) {
15+
console.error("CHANGELOG.md not found")
16+
process.exit(1)
17+
}
18+
19+
const content = fs.readFileSync(changelogPath, "utf8")
20+
const lines = content.split("\n")
21+
22+
const truncatedLines = []
23+
let versionCount = 0
24+
const maxVersions = 10 // Keep only the 10 most recent versions
25+
let inVersion = false
26+
27+
for (const line of lines) {
28+
// Check if this is a version header
29+
if (line.startsWith("## [")) {
30+
versionCount++
31+
if (versionCount > maxVersions) {
32+
break
33+
}
34+
inVersion = true
35+
}
36+
37+
// Skip image lines (they reference release images)
38+
if (line.includes("![") && line.includes("/releases/")) {
39+
continue
40+
}
41+
42+
// Add the line if we're within the version limit
43+
if (versionCount === 0 || (inVersion && versionCount <= maxVersions)) {
44+
truncatedLines.push(line)
45+
}
46+
}
47+
48+
// Add a note at the end
49+
truncatedLines.push("")
50+
truncatedLines.push("---")
51+
truncatedLines.push("")
52+
truncatedLines.push(
53+
`*For the complete changelog with all ${versionCount} releases, please visit the [GitHub repository](https://github.com/RooCodeInc/Roo-Code/blob/main/CHANGELOG.md).*`,
54+
)
55+
56+
const truncatedContent = truncatedLines.join("\n")
57+
fs.writeFileSync(outputPath, truncatedContent, "utf8")
58+
59+
const originalSize = Buffer.byteLength(content, "utf8")
60+
const truncatedSize = Buffer.byteLength(truncatedContent, "utf8")
61+
const reduction = (((originalSize - truncatedSize) / originalSize) * 100).toFixed(1)
62+
63+
console.log(`✅ Generated CHANGELOG.vscode.md`)
64+
console.log(` Original size: ${(originalSize / 1024).toFixed(1)} KB`)
65+
console.log(` Truncated size: ${(truncatedSize / 1024).toFixed(1)} KB`)
66+
console.log(` Size reduction: ${reduction}%`)
67+
68+
return outputPath
69+
}
70+
71+
// Run if called directly
72+
if (require.main === module) {
73+
generateVSCodeChangelog()
74+
}
75+
76+
module.exports = { generateVSCodeChangelog }

src/esbuild.mjs

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import * as path from "path"
44
import { fileURLToPath } from "url"
55
import process from "node:process"
66
import * as console from "node:console"
7+
import { execSync } from "child_process"
78

89
import { copyPaths, copyWasms, copyLocales, setupLocaleWatcher } from "@roo-code/build"
910

@@ -47,18 +48,36 @@ async function main() {
4748
name: "copyFiles",
4849
setup(build) {
4950
build.onEnd(() => {
50-
copyPaths(
51-
[
52-
["../README.md", "README.md"],
53-
["../CHANGELOG.md", "CHANGELOG.md"],
54-
["../LICENSE", "LICENSE"],
55-
["../.env", ".env", { optional: true }],
56-
["node_modules/vscode-material-icons/generated", "assets/vscode-material-icons"],
57-
["../webview-ui/audio", "webview-ui/audio"],
58-
],
59-
srcDir,
60-
buildDir,
61-
)
51+
// Generate truncated CHANGELOG for VS Code extension
52+
let changelogGenerated = false
53+
try {
54+
console.log("[extension] Generating truncated CHANGELOG for VS Code...")
55+
execSync("node ../scripts/generate-vscode-changelog.js", {
56+
cwd: srcDir,
57+
stdio: "inherit"
58+
})
59+
changelogGenerated = true
60+
} catch (error) {
61+
console.error("[extension] Failed to generate truncated CHANGELOG:", error.message)
62+
console.log("[extension] Falling back to original CHANGELOG.md")
63+
}
64+
65+
const filesToCopy = [
66+
["../README.md", "README.md"],
67+
["../LICENSE", "LICENSE"],
68+
["../.env", ".env", { optional: true }],
69+
["node_modules/vscode-material-icons/generated", "assets/vscode-material-icons"],
70+
["../webview-ui/audio", "webview-ui/audio"],
71+
]
72+
73+
// Use truncated CHANGELOG if it was generated, otherwise use original
74+
if (changelogGenerated && fs.existsSync(path.join(srcDir, "..", "CHANGELOG.vscode.md"))) {
75+
filesToCopy.splice(1, 0, ["../CHANGELOG.vscode.md", "CHANGELOG.md"])
76+
} else {
77+
filesToCopy.splice(1, 0, ["../CHANGELOG.md", "CHANGELOG.md"])
78+
}
79+
80+
copyPaths(filesToCopy, srcDir, buildDir)
6281
})
6382
},
6483
},

0 commit comments

Comments
 (0)