From cea6022d563f679cd97cb7f5d9653ede3ec5a7aa Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Wed, 2 Jul 2025 12:39:21 -0400 Subject: [PATCH 1/2] Add .vscode/ to the list of write-protected files/directories --- src/core/protect/RooProtectedController.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/protect/RooProtectedController.ts b/src/core/protect/RooProtectedController.ts index b74b6a9bb96..86122c76608 100644 --- a/src/core/protect/RooProtectedController.ts +++ b/src/core/protect/RooProtectedController.ts @@ -18,6 +18,7 @@ export class RooProtectedController { ".roorules*", ".clinerules*", ".roo/**", + ".vscode/**", ".rooprotected", // For future use ] From 023f83b30191d12dce37bfb5804ea1c4ec08dbe8 Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Wed, 2 Jul 2025 13:07:13 -0400 Subject: [PATCH 2/2] Fix tests --- src/core/protect/__tests__/RooProtectedController.spec.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/core/protect/__tests__/RooProtectedController.spec.ts b/src/core/protect/__tests__/RooProtectedController.spec.ts index 63d88092852..6c998e365a4 100644 --- a/src/core/protect/__tests__/RooProtectedController.spec.ts +++ b/src/core/protect/__tests__/RooProtectedController.spec.ts @@ -38,6 +38,12 @@ describe("RooProtectedController", () => { expect(controller.isWriteProtected(".clinerules.md")).toBe(true) }) + it("should protect files in .vscode directory", () => { + expect(controller.isWriteProtected(".vscode/settings.json")).toBe(true) + expect(controller.isWriteProtected(".vscode/launch.json")).toBe(true) + expect(controller.isWriteProtected(".vscode/tasks.json")).toBe(true) + }) + it("should not protect other files starting with .roo", () => { expect(controller.isWriteProtected(".roosettings")).toBe(false) expect(controller.isWriteProtected(".rooconfig")).toBe(false) @@ -134,6 +140,7 @@ describe("RooProtectedController", () => { ".roorules*", ".clinerules*", ".roo/**", + ".vscode/**", ".rooprotected", ]) })