diff --git a/README.md b/README.md index 12741f6a1e..9e98cd8845 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@
-
-
-
+
@@ -37,7 +35,7 @@
- [简体中文](locales/zh-CN/README.md)
- [繁體中文](locales/zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/ca/README.md b/locales/ca/README.md
index f5c33b0c67..b8feb8a99a 100644
--- a/locales/ca/README.md
+++ b/locales/ca/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/de/README.md b/locales/de/README.md
index e0322da970..d63dfdf955 100644
--- a/locales/de/README.md
+++ b/locales/de/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/es/README.md b/locales/es/README.md
index 90e3af4b7d..af7666d106 100644
--- a/locales/es/README.md
+++ b/locales/es/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/fr/README.md b/locales/fr/README.md
index 5eb2b42a57..b92535f9e7 100644
--- a/locales/fr/README.md
+++ b/locales/fr/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/hi/README.md b/locales/hi/README.md
index a9b3153d77..4499feac72 100644
--- a/locales/hi/README.md
+++ b/locales/hi/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/id/README.md b/locales/id/README.md
index feeff54c5e..9c46a5ca2e 100644
--- a/locales/id/README.md
+++ b/locales/id/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/it/README.md b/locales/it/README.md
index a67dbd74f4..71bbda7c81 100644
--- a/locales/it/README.md
+++ b/locales/it/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/ja/README.md b/locales/ja/README.md
index f17bc615fe..1bf753546a 100644
--- a/locales/ja/README.md
+++ b/locales/ja/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/ko/README.md b/locales/ko/README.md
index 9740a09567..8b8f45ebb5 100644
--- a/locales/ko/README.md
+++ b/locales/ko/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/nl/README.md b/locales/nl/README.md
index eb0c170148..983318aa81 100644
--- a/locales/nl/README.md
+++ b/locales/nl/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/pl/README.md b/locales/pl/README.md
index dcc77205f1..94e23b2980 100644
--- a/locales/pl/README.md
+++ b/locales/pl/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/pt-BR/README.md b/locales/pt-BR/README.md
index f40ddabd24..abca12ffb7 100644
--- a/locales/pt-BR/README.md
+++ b/locales/pt-BR/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/ru/README.md b/locales/ru/README.md
index 1a596bc7b5..d2689da5cf 100644
--- a/locales/ru/README.md
+++ b/locales/ru/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/tr/README.md b/locales/tr/README.md
index d480560e08..c095677851 100644
--- a/locales/tr/README.md
+++ b/locales/tr/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/vi/README.md b/locales/vi/README.md
index f9eef31447..5b8100eb2b 100644
--- a/locales/vi/README.md
+++ b/locales/vi/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/zh-CN/README.md b/locales/zh-CN/README.md
index de95ee3a82..162e787a2b 100644
--- a/locales/zh-CN/README.md
+++ b/locales/zh-CN/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/locales/zh-TW/README.md b/locales/zh-TW/README.md
index dfa65152a1..05d46aca68 100644
--- a/locales/zh-TW/README.md
+++ b/locales/zh-TW/README.md
@@ -1,5 +1,5 @@
-
+
@@ -35,7 +35,7 @@
- [简体中文](../zh-CN/README.md)
- [繁體中文](../zh-TW/README.md)
- ...
-
+
---
diff --git a/src/api/providers/featherless.ts b/src/api/providers/featherless.ts
index 56d7177de7..2a985e2a87 100644
--- a/src/api/providers/featherless.ts
+++ b/src/api/providers/featherless.ts
@@ -1,4 +1,9 @@
-import { DEEP_SEEK_DEFAULT_TEMPERATURE, type FeatherlessModelId, featherlessDefaultModelId, featherlessModels } from "@roo-code/types"
+import {
+ DEEP_SEEK_DEFAULT_TEMPERATURE,
+ type FeatherlessModelId,
+ featherlessDefaultModelId,
+ featherlessModels,
+} from "@roo-code/types"
import { Anthropic } from "@anthropic-ai/sdk"
import OpenAI from "openai"
diff --git a/src/services/checkpoints/__tests__/ShadowCheckpointService.spec.ts b/src/services/checkpoints/__tests__/ShadowCheckpointService.spec.ts
index 3ed98d0625..5172a37369 100644
--- a/src/services/checkpoints/__tests__/ShadowCheckpointService.spec.ts
+++ b/src/services/checkpoints/__tests__/ShadowCheckpointService.spec.ts
@@ -825,93 +825,93 @@ describe.each([[RepoPerTaskCheckpointService, "RepoPerTaskCheckpointService"]])(
})
it("isolates checkpoint operations from GIT_DIR environment variable", async () => {
- // This test verifies the fix for the issue where GIT_DIR environment variable
- // causes checkpoint commits to go to the wrong repository.
- // In the real-world Dev Container scenario, GIT_DIR is set BEFORE Roo starts,
- // so we need to set it BEFORE creating the checkpoint service.
+ // This test verifies the fix for the issue where GIT_DIR environment variable
+ // causes checkpoint commits to go to the wrong repository.
+ // In the real-world Dev Container scenario, GIT_DIR is set BEFORE Roo starts,
+ // so we need to set it BEFORE creating the checkpoint service.
- // Create a separate git directory to simulate GIT_DIR pointing elsewhere
- const externalGitDir = path.join(tmpDir, `external-git-${Date.now()}`)
- await fs.mkdir(externalGitDir, { recursive: true })
- const externalGit = simpleGit(externalGitDir)
- await externalGit.init()
- await externalGit.addConfig("user.name", "External User")
- await externalGit.addConfig("user.email", "external@example.com")
+ // Create a separate git directory to simulate GIT_DIR pointing elsewhere
+ const externalGitDir = path.join(tmpDir, `external-git-${Date.now()}`)
+ await fs.mkdir(externalGitDir, { recursive: true })
+ const externalGit = simpleGit(externalGitDir)
+ await externalGit.init()
+ await externalGit.addConfig("user.name", "External User")
+ await externalGit.addConfig("user.email", "external@example.com")
- // Create and commit a file in the external repo
- const externalFile = path.join(externalGitDir, "external.txt")
- await fs.writeFile(externalFile, "External content")
- await externalGit.add(".")
- await externalGit.commit("External commit")
+ // Create and commit a file in the external repo
+ const externalFile = path.join(externalGitDir, "external.txt")
+ await fs.writeFile(externalFile, "External content")
+ await externalGit.add(".")
+ await externalGit.commit("External commit")
- // Store the original commit count in the external repo
- const externalLogBefore = await externalGit.log()
- const externalCommitCountBefore = externalLogBefore.total
+ // Store the original commit count in the external repo
+ const externalLogBefore = await externalGit.log()
+ const externalCommitCountBefore = externalLogBefore.total
- // Initialize the workspace repo BEFORE setting GIT_DIR
- // (In Dev Containers, the workspace repo already exists before GIT_DIR is set)
- const testShadowDir = path.join(tmpDir, `shadow-git-dir-test-${Date.now()}`)
- const testWorkspaceDir = path.join(tmpDir, `workspace-git-dir-test-${Date.now()}`)
- const testRepo = await initWorkspaceRepo({ workspaceDir: testWorkspaceDir })
+ // Initialize the workspace repo BEFORE setting GIT_DIR
+ // (In Dev Containers, the workspace repo already exists before GIT_DIR is set)
+ const testShadowDir = path.join(tmpDir, `shadow-git-dir-test-${Date.now()}`)
+ const testWorkspaceDir = path.join(tmpDir, `workspace-git-dir-test-${Date.now()}`)
+ const testRepo = await initWorkspaceRepo({ workspaceDir: testWorkspaceDir })
- // Set GIT_DIR to point to the external repository BEFORE creating the service
- // This simulates the Dev Container environment where GIT_DIR is already set
- const originalGitDir = process.env.GIT_DIR
- const externalDotGit = path.join(externalGitDir, ".git")
- process.env.GIT_DIR = externalDotGit
-
- try {
- // Create a new checkpoint service with GIT_DIR already set
- // This is the key difference - we're creating the service
- // while GIT_DIR is set, just like in a real Dev Container
- const testService = await klass.create({
- taskId: `test-git-dir-${Date.now()}`,
- shadowDir: testShadowDir,
- workspaceDir: testWorkspaceDir,
- log: () => {},
- })
- await testService.initShadowGit()
-
- // Make a change in the workspace and save a checkpoint
- const testWorkspaceFile = path.join(testWorkspaceDir, "test.txt")
- await fs.writeFile(testWorkspaceFile, "Modified with GIT_DIR set")
- const commit = await testService.saveCheckpoint("Checkpoint with GIT_DIR set")
- expect(commit?.commit).toBeTruthy()
-
- // Verify the checkpoint was saved in the shadow repo, not the external repo
- // Temporarily clear GIT_DIR to check the external repo
- delete process.env.GIT_DIR
- const externalGitCheck = simpleGit(externalGitDir)
- const externalLogAfter = await externalGitCheck.log()
- const externalCommitCountAfter = externalLogAfter.total
- // Restore GIT_DIR
+ // Set GIT_DIR to point to the external repository BEFORE creating the service
+ // This simulates the Dev Container environment where GIT_DIR is already set
+ const originalGitDir = process.env.GIT_DIR
+ const externalDotGit = path.join(externalGitDir, ".git")
process.env.GIT_DIR = externalDotGit
- // External repo should have the same number of commits (no new commits)
- expect(externalCommitCountAfter).toBe(externalCommitCountBefore)
+ try {
+ // Create a new checkpoint service with GIT_DIR already set
+ // This is the key difference - we're creating the service
+ // while GIT_DIR is set, just like in a real Dev Container
+ const testService = await klass.create({
+ taskId: `test-git-dir-${Date.now()}`,
+ shadowDir: testShadowDir,
+ workspaceDir: testWorkspaceDir,
+ log: () => {},
+ })
+ await testService.initShadowGit()
- // Verify the checkpoint is accessible in the shadow repo
- const diff = await testService.getDiff({ to: commit!.commit })
- expect(diff).toHaveLength(1)
- expect(diff[0].paths.relative).toBe("test.txt")
- expect(diff[0].content.after).toBe("Modified with GIT_DIR set")
+ // Make a change in the workspace and save a checkpoint
+ const testWorkspaceFile = path.join(testWorkspaceDir, "test.txt")
+ await fs.writeFile(testWorkspaceFile, "Modified with GIT_DIR set")
+ const commit = await testService.saveCheckpoint("Checkpoint with GIT_DIR set")
+ expect(commit?.commit).toBeTruthy()
- // Verify we can restore the checkpoint
- await fs.writeFile(testWorkspaceFile, "Another modification")
- await testService.restoreCheckpoint(commit!.commit)
- expect(await fs.readFile(testWorkspaceFile, "utf-8")).toBe("Modified with GIT_DIR set")
- } finally {
- // Restore original GIT_DIR
- if (originalGitDir !== undefined) {
- process.env.GIT_DIR = originalGitDir
- } else {
+ // Verify the checkpoint was saved in the shadow repo, not the external repo
+ // Temporarily clear GIT_DIR to check the external repo
delete process.env.GIT_DIR
- }
+ const externalGitCheck = simpleGit(externalGitDir)
+ const externalLogAfter = await externalGitCheck.log()
+ const externalCommitCountAfter = externalLogAfter.total
+ // Restore GIT_DIR
+ process.env.GIT_DIR = externalDotGit
- // Clean up external git directory
- await fs.rm(externalGitDir, { recursive: true, force: true })
- }
- })
+ // External repo should have the same number of commits (no new commits)
+ expect(externalCommitCountAfter).toBe(externalCommitCountBefore)
+
+ // Verify the checkpoint is accessible in the shadow repo
+ const diff = await testService.getDiff({ to: commit!.commit })
+ expect(diff).toHaveLength(1)
+ expect(diff[0].paths.relative).toBe("test.txt")
+ expect(diff[0].content.after).toBe("Modified with GIT_DIR set")
+
+ // Verify we can restore the checkpoint
+ await fs.writeFile(testWorkspaceFile, "Another modification")
+ await testService.restoreCheckpoint(commit!.commit)
+ expect(await fs.readFile(testWorkspaceFile, "utf-8")).toBe("Modified with GIT_DIR set")
+ } finally {
+ // Restore original GIT_DIR
+ if (originalGitDir !== undefined) {
+ process.env.GIT_DIR = originalGitDir
+ } else {
+ delete process.env.GIT_DIR
+ }
+
+ // Clean up external git directory
+ await fs.rm(externalGitDir, { recursive: true, force: true })
+ }
+ })
})
},
)
diff --git a/src/services/mcp/McpHub.ts b/src/services/mcp/McpHub.ts
index f5ddf3e57b..2db26332fa 100644
--- a/src/services/mcp/McpHub.ts
+++ b/src/services/mcp/McpHub.ts
@@ -1378,8 +1378,8 @@ export class McpHub {
await this.deleteConnection(serverName, serverSource)
// Re-add as a disabled connection
// Re-read config from file to get updated disabled state
- const updatedConfig = await this.readServerConfigFromFile(serverName, serverSource)
- await this.connectToServer(serverName, updatedConfig, serverSource)
+ const updatedConfig = await this.readServerConfigFromFile(serverName, serverSource)
+ await this.connectToServer(serverName, updatedConfig, serverSource)
} else if (!disabled && connection.server.status === "disconnected") {
// If enabling a disabled server, connect it
// Re-read config from file to get updated disabled state
diff --git a/src/services/tree-sitter/queries/c-sharp.ts b/src/services/tree-sitter/queries/c-sharp.ts
index 350c24fff6..46f9651b36 100644
--- a/src/services/tree-sitter/queries/c-sharp.ts
+++ b/src/services/tree-sitter/queries/c-sharp.ts
@@ -63,5 +63,3 @@ export default `
; LINQ expressions
(query_expression) @definition.linq_expression
`
-
-
\ No newline at end of file
diff --git a/webview-ui/src/components/chat/TaskHeader.tsx b/webview-ui/src/components/chat/TaskHeader.tsx
index 242db5bb91..b06d6e64f5 100644
--- a/webview-ui/src/components/chat/TaskHeader.tsx
+++ b/webview-ui/src/components/chat/TaskHeader.tsx
@@ -265,7 +265,7 @@ const TaskHeader = ({
{t("chat:task.contextWindow")}