Skip to content

Commit 5312f3a

Browse files
authored
feat: enhance review task handling with completion state management and improved message processing (#548)
1 parent 347356a commit 5312f3a

File tree

1 file changed

+42
-27
lines changed

1 file changed

+42
-27
lines changed

src/core/costrict/code-review/codeReviewService.ts

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ export class CodeReviewService {
204204
const provider = this.getProvider()
205205
if (provider) {
206206
this.reset()
207+
let isCompleted = false
207208
const task = await provider.createTask(message, undefined, undefined, undefined, { mode: "review" })
208209
provider.postMessageToWebview({
209210
type: "action",
@@ -223,37 +224,48 @@ export class CodeReviewService {
223224
})
224225
})
225226
task.on(RooCodeEventName.TaskAskResponded, () => {
226-
const messageCount = task.clineMessages.length
227-
228-
let progress = 0
229-
if (messageCount <= 10) {
230-
progress = messageCount * 0.05
231-
} else {
232-
progress = Math.min(0.5 + (messageCount - 10) * 0.02, 0.95)
227+
if (!isCompleted) {
228+
const messageCount = task.clineMessages.length
229+
230+
let progress = 0
231+
if (messageCount <= 10) {
232+
progress = messageCount * 0.05
233+
} else {
234+
progress = Math.min(0.5 + (messageCount - 10) * 0.02, 0.95)
235+
}
236+
this.sendReviewTaskUpdateMessage(TaskStatus.RUNNING, {
237+
issues: [],
238+
progress: Math.round(progress * 100) / 100,
239+
})
233240
}
234-
this.sendReviewTaskUpdateMessage(TaskStatus.RUNNING, {
235-
issues: [],
236-
progress: Math.round(progress * 100) / 100,
237-
})
238241
})
239242
task.on(RooCodeEventName.TaskCompleted, async () => {
240-
this.logger.info("[CodeReview] Review Task completed")
241-
const message = task.clineMessages.find((msg) => msg.type === "say" && msg.say === "completion_result")
242-
if (message?.text) {
243-
const { issues, review_task_id } = await this.getIssues(message.text, targets)
244-
this.currentTask = {
245-
...this.currentTask,
246-
taskId: review_task_id,
247-
isCompleted: true,
248-
progress: 1,
249-
review_progress: "",
250-
total: issues.length,
243+
try {
244+
this.logger.info("[CodeReview] Review Task completed")
245+
isCompleted = true
246+
// console.log("task messages", task.clineMessages)
247+
const message = task.clineMessages.find(
248+
(msg) => msg.type === "say" && msg.text?.includes("I-AM-CODE-REVIEW-REPORT-V1"),
249+
)
250+
if (message?.text) {
251+
const { issues, review_task_id } = await this.getIssues(message.text, targets)
252+
if (issues) {
253+
this.currentTask = {
254+
...this.currentTask,
255+
taskId: review_task_id,
256+
isCompleted: true,
257+
progress: 1,
258+
review_progress: "",
259+
total: issues?.length ?? 0,
260+
}
261+
this.updateCachedIssues(issues)
262+
}
251263
}
252-
this.updateCachedIssues(issues)
264+
} finally {
265+
this.completeTask()
266+
await provider.removeClineFromStack()
267+
await provider.refreshWorkspace()
253268
}
254-
this.completeTask()
255-
await provider.removeClineFromStack()
256-
await provider.refreshWorkspace()
257269
})
258270
}
259271
}
@@ -351,7 +363,10 @@ export class CodeReviewService {
351363
workspace,
352364
review_code: targets,
353365
},
354-
requestOptions,
366+
{
367+
...requestOptions,
368+
baseURL: "http://127.0.0.1:8081",
369+
},
355370
)
356371
return (
357372
data ?? {

0 commit comments

Comments
 (0)