Show 'Start New Task' button if user tries to resume completed task

This commit is contained in:
Saoud Rizwan
2024-08-17 09:09:05 -04:00
parent c4ce3f0495
commit c277f7625f
3 changed files with 21 additions and 3 deletions

View File

@@ -473,8 +473,16 @@ export class ClaudeDev {
const lastClaudeMessage = this.claudeMessages
.slice()
.reverse()
.find((m) => m.ask !== "resume_task") // could be multiple resume tasks
const { response, text, images } = await this.ask("resume_task") // calls poststatetowebview
.find((m) => !(m.ask === "resume_task" || m.ask === "resume_completed_task")) // could be multiple resume tasks
let askType: ClaudeAsk
if (lastClaudeMessage?.ask === "completion_result") {
askType = "resume_completed_task"
} else {
askType = "resume_task"
}
const { response, text, images } = await this.ask(askType) // calls poststatetowebview
let newUserContent: UserContent = []
if (response === "messageResponse") {

View File

@@ -41,6 +41,7 @@ export type ClaudeAsk =
| "tool"
| "api_req_failed"
| "resume_task"
| "resume_completed_task"
export type ClaudeSay =
| "task"

View File

@@ -150,6 +150,13 @@ const ChatView = ({
setPrimaryButtonText("Resume Task")
setSecondaryButtonText(undefined)
break
case "resume_completed_task":
setTextAreaDisabled(false)
setClaudeAsk("resume_completed_task")
setEnableButtons(true)
setPrimaryButtonText("Start New Task")
setSecondaryButtonText(undefined)
break
}
break
case "say":
@@ -213,6 +220,7 @@ const ChatView = ({
case "command_output": // user can send input to command stdin
case "completion_result": // if this happens then the user has feedback for the completion result
case "resume_task":
case "resume_completed_task":
vscode.postMessage({
type: "askResponse",
askResponse: "messageResponse",
@@ -247,6 +255,7 @@ const ChatView = ({
vscode.postMessage({ type: "askResponse", askResponse: "yesButtonTapped" })
break
case "completion_result":
case "resume_completed_task":
// extension waiting for feedback. but we can just present a new task button
startNewTask()
break
@@ -406,8 +415,8 @@ const ChatView = ({
}
break
case "api_req_failed": // this message is used to update the latest api_req_started that the request failed
return false
case "resume_task":
case "resume_completed_task":
return false
}
switch (message.say) {