Skip to content

Commit 040e1b0

Browse files
committed
fix: improve checkpoint service initialization handling
1 parent 1821a7f commit 040e1b0

File tree

1 file changed

+11
-23
lines changed

1 file changed

+11
-23
lines changed

src/core/checkpoints/index.ts

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ export async function getCheckpointService(
3636
}
3737
}
3838

39+
console.log("[Task#getCheckpointService] initializing checkpoints service")
40+
3941
try {
4042
const workspaceDir = getWorkspacePath()
4143

@@ -63,35 +65,28 @@ export async function getCheckpointService(
6365
await pWaitFor(
6466
() => {
6567
console.log("[Task#getCheckpointService] waiting for service to initialize")
66-
return cline.checkpointService?.isInitialized === true
68+
return !!cline.checkpointService && !!cline?.checkpointService?.isInitialized
6769
},
6870
{ interval, timeout },
6971
)
72+
if (cline?.checkpointService?.isInitialized !== true) {
73+
cline.enableCheckpoints = false
74+
return undefined
75+
}
7076
return cline.checkpointService
7177
}
7278
if (!cline.enableCheckpoints) {
7379
return undefined
7480
}
75-
console.log("[Task#getCheckpointService] initializing checkpoints service")
76-
cline.checkpointServiceInitializing = true
7781
const service = RepoPerTaskCheckpointService.create(options)
82+
cline.checkpointServiceInitializing = true
83+
await checkGitInstallation(cline, service, log, provider)
7884
cline.checkpointService = service
79-
80-
// Check if Git is installed before initializing the service
81-
// Only assign the service after successful initialization
82-
try {
83-
await checkGitInstallation(cline, service, log, provider)
84-
return service
85-
} catch (err) {
86-
// Clean up on failure
87-
cline.enableCheckpoints = false
88-
cline.checkpointServiceInitializing = false
89-
cline.checkpointService = undefined
90-
throw err
91-
}
85+
return service
9286
} catch (err) {
9387
log(`[Task#getCheckpointService] ${err.message}`)
9488
cline.enableCheckpoints = false
89+
cline.checkpointServiceInitializing = false
9590
return undefined
9691
}
9792
}
@@ -170,13 +165,6 @@ export async function checkpointSave(cline: Task, force = false) {
170165
return
171166
}
172167

173-
if (!service.isInitialized) {
174-
const provider = cline.providerRef.deref()
175-
provider?.log("[checkpointSave] checkpoints didn't initialize in time, disabling checkpoints for this task")
176-
cline.enableCheckpoints = false
177-
return
178-
}
179-
180168
TelemetryService.instance.captureCheckpointCreated(cline.taskId)
181169

182170
// Start the checkpoint process in the background.

0 commit comments

Comments
 (0)