Skip to content

fix: reject empty DAG outputs consistently during recovery #550

Description

@LeXwDeX

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions