fix: recover observer shell during workbench quick verify

This commit is contained in:
Codex
2026-06-27 09:10:48 +00:00
parent 8b2e730909
commit 07b541e5a5
3 changed files with 255 additions and 22 deletions
+6 -4
View File
@@ -3778,14 +3778,16 @@ function quickVerifyPromptWaitScript(stateDir: string, promptIndex: number, time
" const promptTraceId = commandTraceId(prompt);",
" if (!done || !promptTraceId) return { ok: true, round: promptIndex, status: 'command-pending', commandId: prompt.commandId || null, traceId: promptTraceId || null, finalResponseEmpty: true, commandPhase: prompt.phase || null, traceMissing: !promptTraceId, valuesRedacted: true };",
" const segment = segmentFor(samples, prompts, promptIndex - 1);",
" const traceId = promptTraceId || chooseTraceId(segment, prompt);",
" const status = statusFor(segment, traceId);",
" const sampleForTrace = traceId ? segment.filter((sample) => traceIdsFromSamples([sample]).includes(traceId)).slice(-1)[0] || null : null;",
" const controlSegment = segment.filter((sample) => sample.pageRole === 'control');",
" const statusSegment = controlSegment.length > 0 ? controlSegment : segment;",
" const traceId = promptTraceId || chooseTraceId(statusSegment, prompt) || chooseTraceId(segment, prompt);",
" const status = statusFor(statusSegment, traceId);",
" const sampleForTrace = traceId ? statusSegment.filter((sample) => traceIdsFromSamples([sample]).includes(traceId)).slice(-1)[0] || segment.filter((sample) => traceIdsFromSamples([sample]).includes(traceId)).slice(-1)[0] || null : null;",
" const lastSample = sampleForTrace || segment.slice(-1)[0] || null;",
" const composerSample = segment.filter((sample) => sample.pageRole === 'control').slice(-1)[0] || lastSample;",
" const composer = composerSample?.composer || {};",
" const composerReadyForTurn = composer.inputPresent === true && composer.inputDisabled !== true && composer.submitPresent === true && composer.warningPresent !== true && composer.submitAction === 'turn';",
" return { ok: true, round: promptIndex, status, traceId, finalResponseEmpty: finalResponseEmpty(segment, traceId), lastSeq: numOrNull(lastSample?.seq), lastTs: lastSample?.ts || null, composerReadyForTurn, composerAction: composer.submitAction || null, source: 'observe-artifact-wait-script', valuesRedacted: true };",
" return { ok: true, round: promptIndex, status, traceId, finalResponseEmpty: finalResponseEmpty(statusSegment, traceId), lastSeq: numOrNull(lastSample?.seq), lastTs: lastSample?.ts || null, composerReadyForTurn, composerAction: composer.submitAction || null, sampleScope: controlSegment.length > 0 ? 'control' : 'all', segmentSampleCount: segment.length, statusSampleCount: statusSegment.length, source: 'observe-artifact-wait-script', valuesRedacted: true };",
"}",
"function norm(value) { return String(value || '').trim().toLowerCase().replace(/_/gu, '-'); }",
"function successful(value) { return ['completed', 'succeeded', 'success'].includes(norm(value)); }",