Skip to content

fix(ts): persist recovery task output to PhaseState - #202

Closed
sksizer wants to merge 2 commits into
mainfrom
feat/quality-task-and-failure-recovery
Closed

sksizer wants to merge 2 commits into
mainfrom
feat/quality-task-and-failure-recovery

Conversation

@sksizer

@sksizer sksizer commented Apr 26, 2026

Copy link
Copy Markdown
Owner

Mirrors the parent-task state.put at lines 88-90 for the recovery branch. Placement is before the recovery success check, matching the existing 'even on failure — recovery tasks need it' rule for parents — so the fix is symmetric across all three executeTask sites in runWorkflow.

Closes review thread on runner.ts onFailure path: an agentTask used as recovery (e.g. dev-session's fix-quality) declares writes: AgentResult, but the runner never persisted it, dropping the payload silently.

Includes regression test: flaky-parent + recovery-with-writes + downstream reader. Pre-fix, downstream throws on resolve(Counter) because the recovery's value never entered state.

sksizer and others added 2 commits April 25, 2026 19:22
Mirrors the parent-task state.put at lines 88-90 for the recovery branch.
Placement is before the recovery success check, matching the existing
'even on failure — recovery tasks need it' rule for parents — so the
fix is symmetric across all three executeTask sites in runWorkflow.

Closes review thread on runner.ts onFailure path: an agentTask used as
recovery (e.g. dev-session's fix-quality) declares writes: AgentResult,
but the runner never persisted it, dropping the payload silently.

Includes regression test: flaky-parent + recovery-with-writes + downstream
reader. Pre-fix, downstream throws on resolve(Counter) because the
recovery's value never entered state.
@sksizer sksizer closed this Apr 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant