From 296edfc829a7c6efc8b5dbe09aa766a9aed79598 Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Tue, 26 Aug 2025 00:09:14 -0400 Subject: [PATCH] Mark code-workspace files as protected (#7403) --- src/core/protect/RooProtectedController.ts | 3 ++- src/core/protect/__tests__/RooProtectedController.spec.ts | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core/protect/RooProtectedController.ts b/src/core/protect/RooProtectedController.ts index f4d80c4d64..d498457ffd 100644 --- a/src/core/protect/RooProtectedController.ts +++ b/src/core/protect/RooProtectedController.ts @@ -19,9 +19,10 @@ export class RooProtectedController { ".clinerules*", ".roo/**", ".vscode/**", + "*.code-workspace", ".rooprotected", // For future use "AGENTS.md", - "AGENT.md", // Alternative singular form for compatibility + "AGENT.md", ] constructor(cwd: string) { diff --git a/src/core/protect/__tests__/RooProtectedController.spec.ts b/src/core/protect/__tests__/RooProtectedController.spec.ts index f19cf17548..974ad02839 100644 --- a/src/core/protect/__tests__/RooProtectedController.spec.ts +++ b/src/core/protect/__tests__/RooProtectedController.spec.ts @@ -44,6 +44,13 @@ describe("RooProtectedController", () => { expect(controller.isWriteProtected(".vscode/tasks.json")).toBe(true) }) + it("should protect .code-workspace files", () => { + expect(controller.isWriteProtected("myproject.code-workspace")).toBe(true) + expect(controller.isWriteProtected("pentest.code-workspace")).toBe(true) + expect(controller.isWriteProtected(".code-workspace")).toBe(true) + expect(controller.isWriteProtected("folder/workspace.code-workspace")).toBe(true) + }) + it("should protect AGENTS.md file", () => { expect(controller.isWriteProtected("AGENTS.md")).toBe(true) }) @@ -149,6 +156,7 @@ describe("RooProtectedController", () => { ".clinerules*", ".roo/**", ".vscode/**", + "*.code-workspace", ".rooprotected", "AGENTS.md", "AGENT.md",