diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index 9259bae761..ee3df2c2c2 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -267,6 +267,7 @@ export class Task extends EventEmitter implements TaskLike { enableCheckpoints: boolean checkpointService?: RepoPerTaskCheckpointService checkpointServiceInitializing = false + ongoingCheckpointSaves?: Set // Task Bridge enableBridge: boolean diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 15d5fa51a3..914a837b5b 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -118,6 +118,7 @@ export class ClineProvider private mdmService?: MdmService private taskCreationCallback: (task: Task) => void private taskEventListeners: WeakMap void>> = new WeakMap() + private fileChangeManager?: any // FileChangeManager instance private recentTasksCache?: string[] @@ -1654,6 +1655,7 @@ export class ClineProvider return { version: this.context.extension?.packageJSON?.version ?? "", + filesChangedEnabled: false, // Add this property apiConfiguration, customInstructions, alwaysAllowReadOnly: alwaysAllowReadOnly ?? false, @@ -1864,6 +1866,7 @@ export class ClineProvider // Return the same structure as before. return { + filesChangedEnabled: false, // Add this property apiConfiguration: providerSettings, lastShownAnnouncementId: stateValues.lastShownAnnouncementId, customInstructions: stateValues.customInstructions, @@ -2013,6 +2016,20 @@ export class ClineProvider return this.contextProxy.getValue(key) } + // File Change Manager methods + public getFileChangeManager(): any { + return this.fileChangeManager + } + + public ensureFileChangeManager(): any { + if (!this.fileChangeManager) { + // Import and create FileChangeManager instance + const { FileChangeManager } = require("../../services/file-changes/FileChangeManager") + this.fileChangeManager = new FileChangeManager() + } + return this.fileChangeManager + } + public async setValue(key: K, value: RooCodeSettings[K]) { await this.contextProxy.setValue(key, value) } diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index 165b829b7a..81caed9123 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -52,6 +52,8 @@ export interface WebviewMessage { | "webviewDidLaunch" | "webviewReady" | "filesChangedRequest" + | "filesChangedEnabled" + | "filesChangedBaselineUpdate" | "viewDiff" | "acceptFileChange" | "rejectFileChange" @@ -274,6 +276,8 @@ export interface WebviewMessage { visibility?: ShareVisibility // For share visibility hasContent?: boolean // For checkRulesDirectoryResult checkOnly?: boolean // For deleteCustomMode check + fileChanges?: any[] // For filesChanged message + baseline?: string // For filesChangedBaselineUpdate codeIndexSettings?: { // Global state settings codebaseIndexEnabled: boolean