Skip to content

Commit 91ef217

Browse files
committed
fix: fail tasks without a valid loop result
1 parent c651c63 commit 91ef217

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

src/daemon.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -180,18 +180,19 @@ function fallbackSummary(text, status, timedOut) {
180180
function 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

Comments
 (0)