diff --git a/webview-ui/src/components/chat/checkpoints/CheckpointSaved.tsx b/webview-ui/src/components/chat/checkpoints/CheckpointSaved.tsx index 8daf0a3089e..d7393d9d70a 100644 --- a/webview-ui/src/components/chat/checkpoints/CheckpointSaved.tsx +++ b/webview-ui/src/components/chat/checkpoints/CheckpointSaved.tsx @@ -17,32 +17,55 @@ export const CheckpointSaved = ({ checkpoint, ...props }: CheckpointSavedProps) const metadata = useMemo(() => { if (!checkpoint) { + console.warn("[CheckpointSaved] No checkpoint metadata provided", { ts: props.ts, commitHash: props.commitHash }) return undefined } const result = checkpointSchema.safeParse(checkpoint) if (!result.success) { + console.warn("[CheckpointSaved] Invalid checkpoint metadata", { + checkpoint, + errors: result.error.errors, + ts: props.ts, + commitHash: props.commitHash + }) return undefined } return result.data - }, [checkpoint]) + }, [checkpoint, props.ts, props.commitHash]) - if (!metadata) { - return null - } + // Always show the checkpoint, even if metadata is invalid + // This ensures users can see that checkpoints are being created + const fallbackMetadata = useMemo(() => { + if (metadata) { + return metadata + } + + // Create fallback metadata when the original is invalid + return { + isFirst: false, // Default to regular checkpoint + from: "", // Empty string as fallback + to: props.commitHash, // Use the commit hash we have + } + }, [metadata, props.commitHash]) return (