Compare commits

...

4 Commits

Author SHA1 Message Date
Saoud Rizwan e66b7bd4df Create slow-hornets-flash.md 2025-04-11 22:16:37 -07:00
Saoud Rizwan 4c3624d630 Fix duplicate checkpoints bug 2025-04-11 22:14:31 -07:00
Saoud Rizwan 9a55576060 Fix bug where hovering mouse over checkpoint and not moving would make popover disappear 2025-04-11 22:02:06 -07:00
Saoud Rizwan 5f300114c9 Fix browser tool actions not being grouped because of checkpoints 2025-04-11 21:55:54 -07:00
4 changed files with 34 additions and 6 deletions
+7
View File
@@ -0,0 +1,7 @@
---
"claude-dev": patch
---
Fix duplicate checkpoints bug
Fix bug where hovering mouse over checkpoint and not moving would make popover disappear
Fix browser tool actions not being grouped because of checkpoints
+7 -1
View File
@@ -1044,6 +1044,12 @@ export class Task {
})
if (!isAttemptCompletionMessage) {
// ensure we aren't creating a duplicate checkpoint
const lastMessage = this.clineMessages.at(-1)
if (lastMessage?.say === "checkpoint_created") {
return
}
// For non-attempt completion we just say checkpoints
await this.say("checkpoint_created")
this.checkpointTracker?.commit().then(async (commitHash) => {
@@ -2382,7 +2388,7 @@ export class Task {
browserActionResult.screenshot ? [browserActionResult.screenshot] : [],
),
)
await this.saveCheckpoint()
// await this.saveCheckpoint()
break
case "close":
pushToolResult(
+11 -3
View File
@@ -553,13 +553,21 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie
const isBrowserSessionMessage = (message: ClineMessage): boolean => {
// which of visible messages are browser session messages, see above
// NOTE: any messages we want to make as part of a browser session should be included here
// There was an issue where we added checkpoints after browser actions, and it resulted in browser sessions being disrupted.
if (message.type === "ask") {
return ["browser_action_launch"].includes(message.ask!)
}
if (message.type === "say") {
return ["browser_action_launch", "api_req_started", "text", "browser_action", "browser_action_result"].includes(
message.say!,
)
return [
"browser_action_launch",
"api_req_started",
"text",
"browser_action",
"browser_action_result",
"checkpoint_created",
].includes(message.say!)
}
return false
}
@@ -180,6 +180,13 @@ export const CheckmarkControl = ({ messageTs, isCheckpointCheckedOut, isLastRow
additionalCheck?.()
}
const handleIndicatorMouseLeave = (e: React.MouseEvent) => {
if (e.currentTarget.contains(e.relatedTarget as Node)) {
return
}
handleDebounceMouseLeave()
}
const handleControlsMouseLeave = (e: React.MouseEvent) => {
const tooltipElement = tooltipRef.current
@@ -221,10 +228,10 @@ export const CheckmarkControl = ({ messageTs, isCheckpointCheckedOut, isLastRow
$isCheckedOut={isCheckpointCheckedOut}
$isHovered={shouldShowHoveredLine}
onMouseEnter={() => setIsLineHovered(true)}
onMouseLeave={() => handleDebounceMouseLeave()}
onMouseLeave={handleIndicatorMouseLeave}
/>
<HoverArea onMouseEnter={() => setIsLineHovered(true)} onMouseLeave={() => handleDebounceMouseLeave()} />
<HoverArea onMouseEnter={() => setIsLineHovered(true)} onMouseLeave={handleIndicatorMouseLeave} />
{showExpandedUI && (
<ExpandedUI