From 85768097d716cd1cf3835930c932764e3135c40b Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Tue, 11 Feb 2025 10:25:50 -0500 Subject: [PATCH] Bring back checkpoints on Windows --- src/core/Cline.ts | 2 +- src/services/checkpoints/CheckpointService.ts | 4 -- .../__tests__/CheckpointService.test.ts | 14 ------- .../src/components/settings/SettingsView.tsx | 40 +++++++++---------- 4 files changed, 20 insertions(+), 40 deletions(-) diff --git a/src/core/Cline.ts b/src/core/Cline.ts index 58be39a11bc..eb500eb87c4 100644 --- a/src/core/Cline.ts +++ b/src/core/Cline.ts @@ -143,7 +143,7 @@ export class Cline { this.fuzzyMatchThreshold = fuzzyMatchThreshold ?? 1.0 this.providerRef = new WeakRef(provider) this.diffViewProvider = new DiffViewProvider(cwd) - this.checkpointsEnabled = process.platform !== "win32" && !!enableCheckpoints + this.checkpointsEnabled = enableCheckpoints ?? false if (historyItem) { this.taskId = historyItem.id diff --git a/src/services/checkpoints/CheckpointService.ts b/src/services/checkpoints/CheckpointService.ts index 871179d500f..53f0647a67c 100644 --- a/src/services/checkpoints/CheckpointService.ts +++ b/src/services/checkpoints/CheckpointService.ts @@ -312,10 +312,6 @@ export class CheckpointService { } public static async create({ taskId, git, baseDir, log = console.log }: CheckpointServiceOptions) { - if (process.platform === "win32") { - throw new Error("Checkpoints are not supported on Windows.") - } - git = git || simpleGit({ baseDir }) const version = await git.version() diff --git a/src/services/checkpoints/__tests__/CheckpointService.test.ts b/src/services/checkpoints/__tests__/CheckpointService.test.ts index caa0952fa1d..9165da332af 100644 --- a/src/services/checkpoints/__tests__/CheckpointService.test.ts +++ b/src/services/checkpoints/__tests__/CheckpointService.test.ts @@ -14,7 +14,6 @@ describe("CheckpointService", () => { let git: SimpleGit let testFile: string let service: CheckpointService - let originalPlatform: string const initRepo = async ({ baseDir, @@ -49,19 +48,6 @@ describe("CheckpointService", () => { return { git, testFile } } - beforeAll(() => { - originalPlatform = process.platform - Object.defineProperty(process, "platform", { - value: "darwin", - }) - }) - - afterAll(() => { - Object.defineProperty(process, "platform", { - value: originalPlatform, - }) - }) - beforeEach(async () => { const baseDir = path.join(os.tmpdir(), `checkpoint-service-test-${Date.now()}`) const repo = await initRepo({ baseDir }) diff --git a/webview-ui/src/components/settings/SettingsView.tsx b/webview-ui/src/components/settings/SettingsView.tsx index c60bbfd1364..307ac250da6 100644 --- a/webview-ui/src/components/settings/SettingsView.tsx +++ b/webview-ui/src/components/settings/SettingsView.tsx @@ -701,29 +701,27 @@ const SettingsView = ({ onDone }: SettingsViewProps) => { )} - {process.platform !== "win32" && ( -
-
- ⚠️ - { - setCheckpointsEnabled(e.target.checked) - }}> - Enable experimental checkpoints - -
-

+

+ ⚠️ + { + setCheckpointsEnabled(e.target.checked) }}> - When enabled, Roo will save a checkpoint whenever a file in the workspace is - modified, added or deleted, letting you easily revert to a previous state. -

+ Enable experimental checkpoints +
- )} +

+ When enabled, Roo will save a checkpoint whenever a file in the workspace is modified, + added or deleted, letting you easily revert to a previous state. +

+
{Object.entries(experimentConfigsMap) .filter((config) => config[0] !== "DIFF_STRATEGY")