fix: checkpoint warning now shows configured timeout instead of hardcoded 5 seconds

This commit is contained in:
Roo Code 2025-12-06 00:59:44 +00:00
parent dd92453276
commit e84ea747b4
2 changed files with 13 additions and 10 deletions

View file

@ -475,7 +475,9 @@ describe("Checkpoint functionality", () => {
const provider = mockTask.providerRef.deref()
provider?.postMessageToWebview({
type: "checkpointInitWarning",
checkpointWarning: i18nModule.t("common:errors.wait_checkpoint_long_time", { timeout: 5 }),
checkpointWarning: i18nModule.t("common:errors.wait_checkpoint_long_time", {
timeout: mockTask.checkpointTimeout,
}),
})
}
@ -486,11 +488,11 @@ describe("Checkpoint functionality", () => {
expect(simulateConditionCheck(4000)).toBe(false)
expect(mockProvider.postMessageToWebview).not.toHaveBeenCalled()
// Test: At 5 seconds, warning should be sent
// Test: At 5 seconds, warning should be sent with configured timeout (15 seconds)
expect(simulateConditionCheck(5000)).toBe(false)
expect(mockProvider.postMessageToWebview).toHaveBeenCalledWith({
type: "checkpointInitWarning",
checkpointWarning: "Checkpoint initialization is taking longer than 5 seconds...",
checkpointWarning: "Checkpoint initialization is taking longer than 15 seconds...",
})
// Test: At 6 seconds, warning should not be sent again (warningShown is true)
@ -558,10 +560,11 @@ describe("Checkpoint functionality", () => {
})
it("should use WARNING_THRESHOLD_MS constant of 5000ms", () => {
// Verify the warning threshold is 5 seconds by checking the implementation
// Verify the warning threshold is 5 seconds - this determines WHEN to show the warning
// but the timeout value shown to user should be the configured checkpointTimeout
const WARNING_THRESHOLD_MS = 5000
expect(WARNING_THRESHOLD_MS).toBe(5000)
expect(WARNING_THRESHOLD_MS / 1000).toBe(5) // Used in the i18n call
expect(WARNING_THRESHOLD_MS / 1000).toBe(5) // Used to check elapsed time
})
it("should convert checkpointTimeout to milliseconds", () => {
@ -581,11 +584,11 @@ describe("Checkpoint functionality", () => {
const i18nModule = await import("../../../i18n")
vi.clearAllMocks()
// Test warning message i18n key
const warningMessage = i18nModule.t("common:errors.wait_checkpoint_long_time", { timeout: 5 })
expect(warningMessage).toBe("Checkpoint initialization is taking longer than 5 seconds...")
// Test warning message i18n key - should use configured timeout
const warningMessage = i18nModule.t("common:errors.wait_checkpoint_long_time", { timeout: 15 })
expect(warningMessage).toBe("Checkpoint initialization is taking longer than 15 seconds...")
// Test timeout error message i18n key
// Test timeout error message i18n key - should use configured timeout
const errorMessage = i18nModule.t("common:errors.init_checkpoint_fail_long_time", { timeout: 30 })
expect(errorMessage).toBe("Checkpoint initialization failed after 30 seconds")
})

View file

@ -86,7 +86,7 @@ export async function getCheckpointService(task: Task, { interval = 250 }: { int
// Show warning if we're past the threshold and haven't shown it yet
if (!warningShown && elapsed >= WARNING_THRESHOLD_MS) {
warningShown = true
sendCheckpointInitWarn(task, "WAIT_TIMEOUT", WARNING_THRESHOLD_MS / 1000)
sendCheckpointInitWarn(task, "WAIT_TIMEOUT", task.checkpointTimeout)
}
console.log(