@@ -180,18 +180,19 @@ function fallbackSummary(text, status, timedOut) {
180180function completeTask ( task , details ) {
181181 const finishedAt = new Date ( ) . toISOString ( ) ;
182182 const startedAt = taskTime ( task , 'startedAt' ) ;
183- const parsed = details . forceFailed || details . timedOut
184- ? null
185- : parseLoopResult ( details . resultText ) ;
186- const status = details . forceFailed || details . timedOut
183+ const parsed = parseLoopResult ( details . resultText ) ;
184+ const invalidLoopResult = ! details . forceFailed && ! details . timedOut && ! parsed ;
185+ const status = details . forceFailed || details . timedOut || invalidLoopResult
187186 ? 'failed'
188- : parsed ? parsed . status : details . exitCode === 0 ? 'done' : 'failed' ;
187+ : parsed . status ;
189188 const result = {
190189 id : task . id ,
191190 status,
192- summary : parsed && parsed . summary
193- ? parsed . summary
194- : fallbackSummary ( details . resultText , status , details . timedOut ) ,
191+ summary : invalidLoopResult
192+ ? 'worker exited without a valid LOOP_RESULT'
193+ : parsed && parsed . summary
194+ ? parsed . summary
195+ : fallbackSummary ( details . resultText , status , details . timedOut ) ,
195196 resultText : trimResult ( details . resultText ) ,
196197 exitCode : details . exitCode ,
197198 durationMs : startedAt ? Math . max ( 0 , Date . now ( ) - startedAt ) : 0 ,
@@ -207,7 +208,11 @@ function completeTask(task, details) {
207208 store . writeResult ( result ) ;
208209 store . writeTask ( completedTask , 'running' ) ;
209210 store . moveTask ( task . id , 'running' , 'done' ) ;
210- store . appendEvent ( 'done' , { id : task . id , status } ) ;
211+ if ( invalidLoopResult ) {
212+ store . appendEvent ( 'fail' , { id : task . id , reason : 'invalid_loop_result' } ) ;
213+ } else {
214+ store . appendEvent ( 'done' , { id : task . id , status } ) ;
215+ }
211216 } catch ( error ) {
212217 console . error ( `Failed to finish ${ task . id } : ${ error . message } ` ) ;
213218 } finally {
0 commit comments