Why
Live execution rejects empty or whitespace-only plain-text output as provider returned empty output, while recovery converts missing text to an empty string and completes the node. DAG-A06 reproduced a recovered required node succeeding with an empty reply. This is distinct from closed #345, which restored the last assistant text but did not align empty-output settlement.
Scope
Plain-text settlement shared by live spawn and recovery, and focused live/recovery tests. Preserve existing structured-output capture semantics and failure classifications.
Approach
Assign GPT-5.6-Sol after edits to execution identity are integrated. Factor one plain-text settlement decision used by both runtime paths. Exercise missing, empty, whitespace and non-empty recovered replies using the real command/store seam.
This issue is one independently verifiable repair in the seven-finding DAG audit delivery. The authorized route is SpecGit delivery to dev, a separately tracked promotion to main, then the official release workflow. The integrator reviews each issue patch and records exact-head local and CI evidence before acceptance. Unrelated workspace modifications and deferred database maintenance #531 remain outside this delivery.
Acceptance
Missing, empty and whitespace-only recovered text fails with the same classification and reason as live execution. Non-empty replies retain their content and complete successfully. Structured output recovery remains unchanged. Recovery/spawn tests and DAG core coverage pass.
The audit baseline is cf5fd26; the DAG runtime tree is identical on dev at 711e7b5. Regression tests must assert corrected public behavior using real DAG state and deterministic boundary stubs.
Why
Live execution rejects empty or whitespace-only plain-text output as provider returned empty output, while recovery converts missing text to an empty string and completes the node. DAG-A06 reproduced a recovered required node succeeding with an empty reply. This is distinct from closed #345, which restored the last assistant text but did not align empty-output settlement.
Scope
Plain-text settlement shared by live spawn and recovery, and focused live/recovery tests. Preserve existing structured-output capture semantics and failure classifications.
Approach
Assign GPT-5.6-Sol after edits to execution identity are integrated. Factor one plain-text settlement decision used by both runtime paths. Exercise missing, empty, whitespace and non-empty recovered replies using the real command/store seam.
This issue is one independently verifiable repair in the seven-finding DAG audit delivery. The authorized route is SpecGit delivery to dev, a separately tracked promotion to main, then the official release workflow. The integrator reviews each issue patch and records exact-head local and CI evidence before acceptance. Unrelated workspace modifications and deferred database maintenance #531 remain outside this delivery.
Acceptance
Missing, empty and whitespace-only recovered text fails with the same classification and reason as live execution. Non-empty replies retain their content and complete successfully. Structured output recovery remains unchanged. Recovery/spawn tests and DAG core coverage pass.
The audit baseline is cf5fd26; the DAG runtime tree is identical on dev at 711e7b5. Regression tests must assert corrected public behavior using real DAG state and deterministic boundary stubs.