Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
a79c3d0
Follow symlinks in rooignore checks (#7405)
mrubens Aug 26, 2025
572fa50
Sonic -> Grok Code Fast (#7426)
mrubens Aug 26, 2025
f9921ff
chore: add changeset for v3.26.0 (#7428)
mrubens Aug 26, 2025
7c91e4f
Changeset version bump (#7429)
github-actions[bot] Aug 26, 2025
934bfd0
feat: Add Vercel AI Gateway provider integration (#7396)
joshualipman123 Aug 26, 2025
11c454f
feat: Enable on-disk storage for Qdrant vectors and HNSW index (#7182)
daniel-lxs Aug 26, 2025
ff1f4f0
fix: use anthropic protocol for token counting when using anthropic m…
daniel-lxs Aug 27, 2025
3528f51
fix: remove duplicate cache display in task header (#7443)
mrubens Aug 27, 2025
f02a2bb
Random chat text area cleanup (#7436)
cte Aug 27, 2025
02f551c
Update @roo-code/cloud to enable roomote control for cloud agents (#7…
cte Aug 27, 2025
c479678
Always set remoteControlEnabled to true for cloud agents (#7448)
cte Aug 27, 2025
46b6fdd
chore: add changeset for v3.26.1 (#7459)
mrubens Aug 27, 2025
faf5734
feat: show model ID in API configuration dropdown (#7423)
daniel-lxs Aug 27, 2025
33a8573
feat: update tooltip component to match native VSCode tooltip shadow …
roomote-v0[bot] Aug 27, 2025
1ad2129
Add support for Vercel embeddings (#7445)
mrubens Aug 27, 2025
94f3b2a
Remove dot before model display (#7461)
mrubens Aug 27, 2025
68e4629
Update contributors list (#7109)
github-actions[bot] Aug 27, 2025
bf9e447
Update 3.26.1 changeset (#7463)
mrubens Aug 27, 2025
d23bc01
Changeset version bump (#7460)
github-actions[bot] Aug 27, 2025
0f6079a
Add type for RooCodeEventName.TaskSpawned (#7465)
mrubens Aug 27, 2025
3cb489d
fix: hide .rooignore'd files from environment details by default (#7369)
roomote-v0[bot] Aug 27, 2025
d4a16f4
fix: exclude browser scroll actions from repetition detection (#7471)
roomote-v0[bot] Aug 28, 2025
2204457
Fix GPT-5 Responses API issues with condensing and image support (#7067)
daniel-lxs Aug 28, 2025
d1122ea
Bump cloud to 0.25.0 (#7475)
mrubens Aug 28, 2025
2092fb1
feat: add image generation tool with OpenRouter integration (#7474)
daniel-lxs Aug 28, 2025
548d3b4
Make the default image filename more generic (#7479)
mrubens Aug 28, 2025
43597b3
Release v3.26.2 (#7490)
mrubens Aug 28, 2025
bea0684
Support free imagegen (#7493)
mrubens Aug 28, 2025
8e66607
feat: update OpenRouter API to support input/output modalities and fi…
daniel-lxs Aug 28, 2025
6ef9dbd
Add padding to image model picker (#7494)
mrubens Aug 28, 2025
622da63
fix: prevent dirty state on initial mount in ImageGenerationSettings …
daniel-lxs Aug 28, 2025
8840902
Changeset version bump (#7491)
github-actions[bot] Aug 28, 2025
aee531a
Show console logging in vitests when the --no-silent flag is set (#7467)
hassoncs Aug 28, 2025
cd9e92f
Move @roo-code/cloud to the Roo-Code repo (#7503)
cte Aug 28, 2025
1e4c46f
Refactor the extension bridge (#7515)
cte Aug 29, 2025
1d46bd1
Implement deferred task subscriptions (#7517)
cte Aug 29, 2025
b22a618
feat: add optional input image parameter to image generation tool (#7…
roomote-v0[bot] Aug 29, 2025
01458f1
feat: sync extension bridge settings with cloud (#7535)
roomote-v0[bot] Aug 29, 2025
c3d84d2
refactor: flatten image generation settings structure (#7536)
daniel-lxs Aug 29, 2025
63e40d2
chore: add changeset for v3.26.3 (#7541)
mrubens Aug 29, 2025
a1f9b7d
Changeset version bump (#7542)
github-actions[bot] Aug 29, 2025
20929b0
Mode and provider profile selector (#7545)
cte Aug 29, 2025
0e95f93
Putting the Roo in Roo-leases (#7546)
mrubens Aug 30, 2025
c7d7ad8
Fix evals (#7547)
cte Aug 30, 2025
88bb813
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Aug 30, 2025
47f594f
fix: special tokens should not break task processing (#7540)
pwilkin Aug 30, 2025
4557000
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Aug 30, 2025
958df13
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Aug 30, 2025
c9ff380
docs: update PR template branding from Roo Code to Costrict
mini2s Aug 30, 2025
fad219e
feat: optimize memory usage for image handling in webview (#7556)
daniel-lxs Aug 30, 2025
f5e0525
feat: rename Account tab to Cloud tab (#7558)
roomote-v0[bot] Aug 30, 2025
63b71d8
feat: add Ollama API key support for Turbo mode (#7425)
roomote-v0[bot] Aug 30, 2025
5746dfc
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Aug 31, 2025
e0bd19d
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Aug 31, 2025
c970274
Disconnect extension bridge on logout (#7563)
mrubens Sep 1, 2025
97cfb96
Fix claudeCode.notFound translation key (#7571)
chrarnoldus Sep 1, 2025
00d26ee
v3.26.4 (#7579)
mrubens Sep 1, 2025
5092cdf
Update contributors list (#7462)
github-actions[bot] Sep 1, 2025
ae8a639
Changeset version bump (#7580)
github-actions[bot] Sep 1, 2025
fe2b612
feat: add configurable embedding batch size for code indexing (#7464)
roomote-v0[bot] Sep 2, 2025
2e59347
Shows a pill with the base Roo Code Cloud URL when not pointing to pr…
brunobergher Sep 2, 2025
d396555
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Sep 2, 2025
23fcc30
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 2, 2025
59d6e74
Cloud: fix provider syncing (#7603)
jr Sep 2, 2025
d1baa6e
fix: add cache reporting support for OpenAI-Native provider (#7602)
hannesrudolph Sep 2, 2025
7e24600
feat: add auto-approve support for MCP access_resource tool (#7606)
daniel-lxs Sep 3, 2025
5196c75
Move message queue to the extension host (#7604)
cte Sep 3, 2025
641c058
Send custom modes to the extension bridge (#7612)
cte Sep 3, 2025
f8973d9
Never give up in socket transport (#7616)
mrubens Sep 3, 2025
1c17366
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Sep 3, 2025
c1509da
Fix socket-io client event handling (#7618)
cte Sep 3, 2025
aa4144e
More socket-io client fixes from PR feedback (#7619)
cte Sep 3, 2025
bcb71db
More socket-io client logging improvements (#7620)
cte Sep 3, 2025
43ff486
Publish subtask events (#7626)
cte Sep 3, 2025
c3e748b
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 3, 2025
cb81377
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 3, 2025
84bc703
Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (#7578)
mohammad154 Sep 3, 2025
7f5d82f
chore: add changeset for v3.26.5 (#7628)
mrubens Sep 3, 2025
c0b9e7a
Update contributors list (#7629)
github-actions[bot] Sep 3, 2025
130ce29
Changeset version bump (#7630)
github-actions[bot] Sep 3, 2025
d789692
feat: add run_slash_command tool for executing slash commands (#7473)
roomote-v0[bot] Sep 3, 2025
280b75d
Focus the extension when receiving bridge commands (#7633)
cte Sep 3, 2025
8dbd30a
Release: v1.73.0 (#7636)
mrubens Sep 3, 2025
f12f193
Cloud: remove extension_bridge_enabled for personal users (#7638)
jr Sep 3, 2025
c25cfde
Publish token usage metrics (#7637)
cte Sep 3, 2025
1f5ee43
fix: preserve scroll position when switching tabs in settings (#7587)
DC-Dancao Sep 3, 2025
0126c5d
feat: add Kimi K2 Turbo model configuration to moonshotModels (#7593)
wangxiaolong100 Sep 4, 2025
e7f599b
fix: use askApproval wrapper in insert_content and search_and_replace…
roomote-v0[bot] Sep 4, 2025
e2c1a20
Release v3.26.6 (#7650)
mrubens Sep 4, 2025
08a825f
Changeset version bump (#7651)
github-actions[bot] Sep 4, 2025
a0384f3
Delete .github/workflows/discord-pr-notify.yml
mrubens Sep 4, 2025
e1dfe25
Remove unused slack notif (#7655)
mrubens Sep 4, 2025
966ed76
Handle zsh process substitution correctly (#7658)
mrubens Sep 4, 2025
b50104c
Handle zsh glob qualifiers correctly (#7667)
mrubens Sep 4, 2025
b48b0be
Minor zh-TW Traditional Chinese locale typo fix (#7672)
PeterDaveHello Sep 4, 2025
72502d8
feat: Add DeepInfra as a model provider in Roo Code (#7677)
Thachnh Sep 4, 2025
7935c94
fix: validate MCP tool exists before execution (#7632)
roomote-v0[bot] Sep 4, 2025
65146b1
fix: add error transform to cryptic openAI SDK errors when API key is…
roomote-v0[bot] Sep 5, 2025
571d1a4
feat: OpenAI Responses API service tiers (flex/priority) β€” UI selecto…
hannesrudolph Sep 5, 2025
de12ec1
fix: prevent countdown timer from showing in history for answered fol…
daniel-lxs Sep 5, 2025
bca6e86
fix: Fix the issue of Moonshot's maximum return token count being lim…
wangxiaolong100 Sep 5, 2025
d9f80f1
feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (#7663)
CellenLee Sep 5, 2025
2b73251
Fix test
mrubens Sep 5, 2025
282a75b
Release v3.26.7 (#7691)
mrubens Sep 5, 2025
146d849
Delete .changeset/petite-rats-admire.md
mrubens Sep 5, 2025
4ad1a26
feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks provide…
daniel-lxs Sep 5, 2025
467c9f5
Use an allowlist to keep the prompt default shell sane (#7681)
jr Sep 5, 2025
90e7d09
Changeset version bump (#7690)
github-actions[bot] Sep 5, 2025
55ea328
Fix: Improve WelcomeView styling and readability (#7682)
daniel-lxs Sep 5, 2025
2c8c140
feat: add Kimi K2-0905 model to Chutes provider (#7701)
roomote-v0[bot] Sep 5, 2025
2b53399
fix: handle array paths from VSCode terminal profiles (#7697)
roomote-v0[bot] Sep 5, 2025
e559ac6
Edit/Delete User Message (#7447)
NaccOll Sep 5, 2025
0510c03
fix: prevent stack overflow in codebase indexing for large projects (…
daniel-lxs Sep 5, 2025
1e403a7
fix: identify mcp and slash command config path in multiple folder wo…
NaccOll Sep 5, 2025
687b379
fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (#…
daniel-lxs Sep 5, 2025
c206da4
fix: Tackling Race/State condition issue by Changing the Code Design …
HahaBill Sep 5, 2025
49b50c8
fix: preserve context by retrying with full conversation on invalid p…
daniel-lxs Sep 5, 2025
ae01a90
chore: add changeset for v3.26.8 (#7715)
mrubens Sep 5, 2025
ed765a3
feat(checkpoints): create checkpoint when user sends a message (#7713)
roomote-v0[bot] Sep 5, 2025
e3facc1
Bump to 3.27.0 (#7719)
mrubens Sep 5, 2025
8864651
Changeset version bump (#7716)
github-actions[bot] Sep 5, 2025
e8deedd
fix: update DeepSeek pricing to new unified rates effective Sept 5, 2…
roomote-v0[bot] Sep 5, 2025
079b37a
feat: replace cloud waitlist ad with direct Cloud link in navigation …
roomote-v0[bot] Sep 6, 2025
9378a4e
feat: show dash instead of zero for missing data on evals page (#7748)
roomote-v0[bot] Sep 6, 2025
18cf33f
Feature/update vertex ai models and regions (#7727)
ssweens Sep 7, 2025
247da38
Add model info to eval runs table (#7749)
cte Sep 7, 2025
28d46cd
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Sep 7, 2025
480670e
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 7, 2025
888bd2d
chore(deps): update dependency eslint-config-prettier to v10.1.8 (#6464)
renovate[bot] Sep 7, 2025
408ea44
chore(deps): update dependency esbuild to v0.25.9 (#5455)
renovate[bot] Sep 7, 2025
8f2d40d
chore(deps): update dependency @changesets/cli to v2.29.6 (#7376)
renovate[bot] Sep 7, 2025
4e5e3ed
chore(deps): update dependency nock to v14.0.10 (#6465)
renovate[bot] Sep 7, 2025
2571781
chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (#7764)
renovate[bot] Sep 8, 2025
b4d34df
refactor(utils): simplify shell detection logic
mini2s Sep 8, 2025
de2f3fc
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 8, 2025
97c3257
test: update shell detection test expectation and mocks
mini2s Sep 8, 2025
acd07b0
test: add mock cleanup in shell detection tests
mini2s Sep 8, 2025
42e316b
test: update shell detection tests to prioritize PowerShell 7
mini2s Sep 8, 2025
a3f61d1
fix(workspace-event-monitor): increase max retries and improve retry …
mini2s Sep 8, 2025
d46c50b
refactor(codebase): improve error handling and workspace validation
mini2s Sep 8, 2025
f7d814c
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 8, 2025
212badc
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Sep 8, 2025
0ce4e89
Revert PR #7188 - Restore temperature parameter to fix TabbyApi/ExLla…
daniel-lxs Sep 8, 2025
0188159
fix: reduce CodeBlock button z-index to prevent overlap with popovers…
daniel-lxs Sep 9, 2025
76c6745
Make ollama models info transport work like lmstudio (#7679)
ItsOnlyBinary Sep 9, 2025
195f4eb
feat: add click-to-edit, ESC-to-cancel, and fix padding consistency f…
roomote-v0[bot] Sep 9, 2025
5d3e603
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Sep 9, 2025
5780659
Let people paste in the auth redirect url (#7805)
mrubens Sep 9, 2025
3c79656
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 9, 2025
a8d903f
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 9, 2025
433e249
test: change console.error to console.warn in tests
mini2s Sep 9, 2025
88b5d66
fix: resolve chat message edit/delete duplication issues (#7793)
daniel-lxs Sep 9, 2025
39030bf
fix: add GIT_EDITOR env var to merge-resolver mode for non-interactiv…
daniel-lxs Sep 9, 2025
bbd3d98
UI: Render reasoning as plain italic (match <thinking>) (#7752)
roomote-v0[bot] Sep 9, 2025
dbb4fed
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 9, 2025
de0cd99
Add taskSyncEnabled to userSettingsConfigSchema (#7827)
roomote-v0[bot] Sep 9, 2025
d2e07ec
Release: v1.75.0 (#7829)
jr Sep 9, 2025
48d592f
fix: prevent negative cost values and improve label visibility in eva…
roomote-v0[bot] Sep 9, 2025
18d16a7
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Sep 10, 2025
7cd6520
Fix Groq context window display (#7839)
mrubens Sep 10, 2025
18c3116
Merge remote-tracking branch 'upstream/main' into roo-to-main
mini2s Sep 10, 2025
ad61a6c
test: enhance vscode mock implementations and error handling
mini2s Sep 10, 2025
c0dd987
feat(chat): replace edit button with copy functionality
mini2s Sep 10, 2025
d572681
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Sep 10, 2025
2d576f9
Merge branch 'main' of github.com:zgsm-ai/costrict into roo-to-main
mini2s Sep 10, 2025
b033fbf
refactor(core): enhance binary file detection and encoding handling
mini2s Sep 10, 2025
0da9ac5
feat(chat): add chat search functionality with highlighting
mini2s Sep 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .roo/commands/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ argument-hint: patch | minor | major
6. If the generate_image tool is available, create a release image at `releases/[version]-release.png`
- The image should feature a realistic-looking kangaroo doing something human-like that relates to the main highlight of the release
- Pass `releases/template.png` as the reference image for aspect ratio and kangaroo style
- Add the generated image to .changeset/v[version].md before the list of changes with format: `![X.Y.Z Release - Description](releases/X.Y.Z-release.png)`
- Add the generated image to .changeset/v[version].md before the list of changes with format: `![X.Y.Z Release - Description](/releases/X.Y.Z-release.png)`
7. If a major or minor release:
- Ask the user what the three most important areas to highlight are in the 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)
Expand Down
82 changes: 41 additions & 41 deletions locales/es/README.md

Large diffs are not rendered by default.

82 changes: 41 additions & 41 deletions locales/zh-CN/README.md

Large diffs are not rendered by default.

82 changes: 41 additions & 41 deletions locales/zh-TW/README.md

Large diffs are not rendered by default.

8 changes: 7 additions & 1 deletion packages/cloud/src/bridge/BridgeOrchestrator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,19 @@ export class BridgeOrchestrator {
public static async connectOrDisconnect(
userInfo: CloudUserInfo | null,
remoteControlEnabled: boolean | undefined,
options: BridgeOrchestratorOptions,
options?: BridgeOrchestratorOptions,
): Promise<void> {
const isEnabled = BridgeOrchestrator.isEnabled(userInfo, remoteControlEnabled)
const instance = BridgeOrchestrator.instance

if (isEnabled) {
if (!instance) {
if (!options) {
console.error(
`[BridgeOrchestrator#connectOrDisconnect] Cannot connect: options are required for connection`,
)
return
}
try {
console.log(`[BridgeOrchestrator#connectOrDisconnect] Connecting...`)
BridgeOrchestrator.instance = new BridgeOrchestrator(options)
Expand Down
Binary file added releases/3.26.4-release.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 24 additions & 3 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ try {
console.warn("Failed to load environment variables:", e)
}

// import type { CloudUserInfo } from "@roo-code/types"
// import type { CloudUserInfo, AuthState } from "@roo-code/types"
// import { CloudService, BridgeOrchestrator } from "@roo-code/cloud"
import { TelemetryService, PostHogTelemetryClient } from "@roo-code/telemetry"

Expand Down Expand Up @@ -56,7 +56,7 @@ let outputChannel: vscode.OutputChannel
let extensionContext: vscode.ExtensionContext
// let cloudService: CloudService | undefined

// let authStateChangedHandler: (() => void) | undefined
// let authStateChangedHandler: ((data: { state: AuthState; previousState: AuthState }) => Promise<void>) | undefined
// let settingsUpdatedHandler: (() => void) | undefined
// let userInfoHandler: ((data: { userInfo: CloudUserInfo }) => Promise<void>) | undefined

Expand Down Expand Up @@ -129,7 +129,28 @@ export async function activate(context: vscode.ExtensionContext) {

// // Initialize Roo Code Cloud service.
// const postStateListener = () => ClineProvider.getVisibleInstance()?.postStateToWebview()
// authStateChangedHandler = postStateListener

// authStateChangedHandler = async (data: { state: AuthState; previousState: AuthState }) => {
// postStateListener()

// // Check if user has logged out
// if (data.state === "logged-out") {
// try {
// // Disconnect the bridge when user logs out
// // When userInfo is null and remoteControlEnabled is false, BridgeOrchestrator
// // will disconnect. The options parameter is not needed for disconnection.
// await BridgeOrchestrator.connectOrDisconnect(null, false)

// cloudLogger("[CloudService] BridgeOrchestrator disconnected on logout")
// } catch (error) {
// cloudLogger(
// `[CloudService] Failed to disconnect BridgeOrchestrator on logout: ${
// error instanceof Error ? error.message : String(error)
// }`,
// )
// }
// }
// }

// settingsUpdatedHandler = async () => {
// const userInfo = CloudService.instance.getUserInfo()
Expand Down
2 changes: 1 addition & 1 deletion src/integrations/claude-code/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ function attemptParseChunk(data: string): ClaudeCodeMessage | null {
* Creates a user-friendly error message for Claude Code ENOENT errors
*/
function createClaudeCodeNotFoundError(claudePath: string, originalError: Error): Error {
const errorMessage = t("errors.claudeCode.notFound", {
const errorMessage = t("common:errors.claudeCode.notFound", {
claudePath,
installationUrl: CLAUDE_CODE_INSTALLATION_URL,
originalError: originalError.message,
Expand Down
7 changes: 7 additions & 0 deletions src/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -648,6 +648,13 @@
"type": "boolean",
"default": false,
"description": "%settings.newTaskRequireTodos.description%"
},
"roo-cline.codeIndex.embeddingBatchSize": {
"type": "number",
"default": 60,
"minimum": 1,
"maximum": 200,
"description": "%settings.codeIndex.embeddingBatchSize.description%"
}
}
},
Expand Down
3 changes: 2 additions & 1 deletion src/package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,6 @@
"settings.apiRequestTimeout.description": "Maximum time in seconds to wait for API responses (0 = no timeout, 1-3600s, default: 600s). Higher values are recommended for local providers like LM Studio and Ollama that may need more processing time.",
"settings.apiResponseRenderMode.description": "API response rendering speed mode (fast = minimal delay, medium = balanced, slow = maximum compatibility). Higher values provide better compatibility but may feel less responsive.",
"settings.autoCommit.description": "Automatically commit current changed files after accepting AI model changes",
"settings.newTaskRequireTodos.description": "Require todos parameter when creating new tasks with the new_task tool"
"settings.newTaskRequireTodos.description": "Require todos parameter when creating new tasks with the new_task tool",
"settings.codeIndex.embeddingBatchSize.description": "The batch size for embedding operations during code indexing. Adjust this based on your API provider's limits. Default is 60."
}
3 changes: 2 additions & 1 deletion src/package.nls.zh-CN.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion src/package.nls.zh-TW.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 19 additions & 2 deletions src/services/code-index/processors/file-watcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import { isPathInIgnoredDirectory } from "../../glob/ignore-utils"
import { TelemetryService } from "@roo-code/telemetry"
import { TelemetryEventName } from "@roo-code/types"
import { sanitizeErrorMessage } from "../shared/validation-helpers"
import { Package } from "../../../shared/package"

/**
* Implementation of the file watcher interface
Expand All @@ -38,6 +39,7 @@ export class FileWatcher implements IFileWatcher {
private batchProcessDebounceTimer?: NodeJS.Timeout
private readonly BATCH_DEBOUNCE_DELAY_MS = 500
private readonly FILE_PROCESSING_CONCURRENCY_LIMIT = 10
private readonly batchSegmentThreshold: number

private readonly _onDidStartBatchProcessing = new vscode.EventEmitter<string[]>()
private readonly _onBatchProgressUpdate = new vscode.EventEmitter<{
Expand Down Expand Up @@ -78,11 +80,26 @@ export class FileWatcher implements IFileWatcher {
private vectorStore?: IVectorStore,
ignoreInstance?: Ignore,
ignoreController?: RooIgnoreController,
batchSegmentThreshold?: number,
) {
this.ignoreController = ignoreController || new RooIgnoreController(workspacePath)
if (ignoreInstance) {
this.ignoreInstance = ignoreInstance
}
// Get the configurable batch size from VSCode settings, fallback to default
// If not provided in constructor, try to get from VSCode settings
if (batchSegmentThreshold !== undefined) {
this.batchSegmentThreshold = batchSegmentThreshold
} else {
try {
this.batchSegmentThreshold = vscode.workspace
.getConfiguration(Package.name)
.get<number>("codeIndex.embeddingBatchSize", BATCH_SEGMENT_THRESHOLD)
} catch {
// In test environment, vscode.workspace might not be available
this.batchSegmentThreshold = BATCH_SEGMENT_THRESHOLD
}
}
}

/**
Expand Down Expand Up @@ -341,8 +358,8 @@ export class FileWatcher implements IFileWatcher {
): Promise<Error | undefined> {
if (pointsForBatchUpsert.length > 0 && this.vectorStore && !overallBatchError) {
try {
for (let i = 0; i < pointsForBatchUpsert.length; i += BATCH_SEGMENT_THRESHOLD) {
const batch = pointsForBatchUpsert.slice(i, i + BATCH_SEGMENT_THRESHOLD)
for (let i = 0; i < pointsForBatchUpsert.length; i += this.batchSegmentThreshold) {
const batch = pointsForBatchUpsert.slice(i, i + this.batchSegmentThreshold)
let retryCount = 0
let upsertError: Error | undefined

Expand Down
23 changes: 21 additions & 2 deletions src/services/code-index/processors/scanner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,34 @@ import { isPathInIgnoredDirectory } from "../../glob/ignore-utils"
import { TelemetryService } from "@roo-code/telemetry"
import { TelemetryEventName } from "@roo-code/types"
import { sanitizeErrorMessage } from "../shared/validation-helpers"
import { Package } from "../../../shared/package"

export class DirectoryScanner implements IDirectoryScanner {
private readonly batchSegmentThreshold: number

constructor(
private readonly embedder: IEmbedder,
private readonly qdrantClient: IVectorStore,
private readonly codeParser: ICodeParser,
private readonly cacheManager: CacheManager,
private readonly ignoreInstance: Ignore,
) {}
batchSegmentThreshold?: number,
) {
// Get the configurable batch size from VSCode settings, fallback to default
// If not provided in constructor, try to get from VSCode settings
if (batchSegmentThreshold !== undefined) {
this.batchSegmentThreshold = batchSegmentThreshold
} else {
try {
this.batchSegmentThreshold = vscode.workspace
.getConfiguration(Package.name)
.get<number>("codeIndex.embeddingBatchSize", BATCH_SEGMENT_THRESHOLD)
} catch {
// In test environment, vscode.workspace might not be available
this.batchSegmentThreshold = BATCH_SEGMENT_THRESHOLD
}
}
}

/**
* Recursively scans a directory for code blocks in supported files.
Expand Down Expand Up @@ -153,7 +172,7 @@ export class DirectoryScanner implements IDirectoryScanner {
addedBlocksFromFile = true

// Check if batch threshold is met
if (currentBatchBlocks.length >= BATCH_SEGMENT_THRESHOLD) {
if (currentBatchBlocks.length >= this.batchSegmentThreshold) {
// Wait if we've reached the maximum pending batches
while (pendingBatchCount >= MAX_PENDING_BATCHES) {
// Wait for at least one batch to complete
Expand Down
25 changes: 24 additions & 1 deletion src/services/code-index/service-factory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ import { Ignore } from "ignore"
import { t } from "../../i18n"
import { TelemetryService } from "@roo-code/telemetry"
import { TelemetryEventName } from "@roo-code/types"
import { Package } from "../../shared/package"
import { BATCH_SEGMENT_THRESHOLD } from "./constants"

/**
* Factory class responsible for creating and configuring code indexing service dependencies.
Expand Down Expand Up @@ -156,7 +158,17 @@ export class CodeIndexServiceFactory {
parser: ICodeParser,
ignoreInstance: Ignore,
): DirectoryScanner {
return new DirectoryScanner(embedder, vectorStore, parser, this.cacheManager, ignoreInstance)
// Get the configurable batch size from VSCode settings
let batchSize: number
try {
batchSize = vscode.workspace
.getConfiguration(Package.name)
.get<number>("codeIndex.embeddingBatchSize", BATCH_SEGMENT_THRESHOLD)
} catch {
// In test environment, vscode.workspace might not be available
batchSize = BATCH_SEGMENT_THRESHOLD
}
return new DirectoryScanner(embedder, vectorStore, parser, this.cacheManager, ignoreInstance, batchSize)
}

/**
Expand All @@ -170,6 +182,16 @@ export class CodeIndexServiceFactory {
ignoreInstance: Ignore,
rooIgnoreController?: RooIgnoreController,
): IFileWatcher {
// Get the configurable batch size from VSCode settings
let batchSize: number
try {
batchSize = vscode.workspace
.getConfiguration(Package.name)
.get<number>("codeIndex.embeddingBatchSize", BATCH_SEGMENT_THRESHOLD)
} catch {
// In test environment, vscode.workspace might not be available
batchSize = BATCH_SEGMENT_THRESHOLD
}
return new FileWatcher(
this.workspacePath,
context,
Expand All @@ -178,6 +200,7 @@ export class CodeIndexServiceFactory {
vectorStore,
ignoreInstance,
rooIgnoreController,
batchSize,
)
}

Expand Down
1 change: 0 additions & 1 deletion webview-ui/src/components/chat/ChatTextArea.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -774,7 +774,6 @@ export const ChatTextArea = forwardRef<HTMLTextAreaElement, ChatTextAreaProps>(
)

highlightLayerRef.current.innerHTML = processedText
console.log("processedText")

// Custom replacement for commands - only highlight valid ones
processedText = processedText.replace(commandRegexGlobal, (match, commandName) => {
Expand Down
23 changes: 22 additions & 1 deletion webview-ui/src/components/cloud/CloudView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ import { ToggleSwitch } from "@/components/ui/toggle-switch"

import { History, PiggyBank, SquareArrowOutUpRightIcon } from "lucide-react"

// Define the production URL constant locally to avoid importing from cloud package in tests
const PRODUCTION_ROO_CODE_API_URL = "https://app.roocode.com"

type CloudViewProps = {
userInfo: CloudUserInfo | null
isAuthenticated: boolean
Expand Down Expand Up @@ -56,10 +59,16 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }: Cl
// Send telemetry for cloud website visit
// NOTE: Using ACCOUNT_* telemetry events for backward compatibility with analytics
telemetryClient.capture(TelemetryEventName.ACCOUNT_CONNECT_CLICKED)
const cloudUrl = cloudApiUrl || "https://app.roocode.com"
const cloudUrl = cloudApiUrl || PRODUCTION_ROO_CODE_API_URL
vscode.postMessage({ type: "openExternal", url: cloudUrl })
}

const handleOpenCloudUrl = () => {
if (cloudApiUrl) {
vscode.postMessage({ type: "openExternal", url: cloudApiUrl })
}
}

const handleRemoteControlToggle = () => {
const newValue = !remoteControlEnabled
setRemoteControlEnabled(newValue)
Expand Down Expand Up @@ -186,6 +195,18 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone }: Cl
</div>
</>
)}
{cloudApiUrl && cloudApiUrl !== PRODUCTION_ROO_CODE_API_URL && (
<div className="mt-6 flex justify-center">
<div className="inline-flex items-center px-3 py-1 gap-1 rounded-full bg-vscode-badge-background/50 text-vscode-badge-foreground text-xs">
<span className="text-vscode-foreground/75">{t("cloud:cloudUrlPillLabel")}: </span>
<button
onClick={handleOpenCloudUrl}
className="text-vscode-textLink-foreground hover:text-vscode-textLink-activeForeground underline cursor-pointer bg-transparent border-none p-0">
{cloudApiUrl}
</button>
</div>
</div>
)}
</div>
)
}
Loading
Loading