@@ -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