Skip to content

Reconcile verified task creation recovery before outcome reporting - #647

Merged
witbrock merged 1 commit into
mainfrom
codex/von-bd2de61702f45053
Sep 12, 2026
Merged

witbrock merged 1 commit into
mainfrom
codex/von-bd2de61702f45053

Conversation

@witbrock

Copy link
Copy Markdown
Member

Merge decision: ready — a verified recovery now leaves task creation complete, preserves the model's answer, and keeps unrelated failed effects visible.

User outcome

Fix contradictory task-creation reporting for Von task #V#task_agent_86ece61a83e4edd34524f46719fed181. An INVALID_DATA / Unknown task type attempt followed by a verified successful create previously became a partial turn despite successful recovery.

Material changes

execute_adaptive_turn.finish() reconciles attempts before computing terminal status. Its existing projection covered ontology postconditions and task-field updates, but not task creation. Distinct create effect IDs therefore left the rejected attempt incomplete. That triggered _build_effect_outcome_report(), replacing the answer with a generic partial report and embedding the correct answer as a non-authoritative draft; narration also inherited those unreconciled facts. Execution-record aggregation then retained the independent failed effect.

Extend that existing projection to match unchanged failed creation attempts against a later verified record with matching creation arguments. Only an explicitly rejected unknown task type permits correction of the type argument. Assignment/reporting must match canonical fields, including subsequent verified updates on the same task. Preserve original attempt receipts and emit existing recovery metadata, which the terminal-status, narration/report and execution-summary paths already consume. No new prompt, workflow or authority gate is introduced.

Also retain verified no-change successes in partial reports, so idempotent task replay remains visible alongside an unrelated failure.

Evidence

  • 25 targeted adaptive-turn tests passed: direct creation, invalid-type recovery, create-then-assign, idempotent replay, partial multi-effect actions (including replay), genuine failure, object/scope/field mismatches, missing verification, possible changes and later reassignment; existing ontology reconciliation and narration tests also pass.
  • 70 execution-summary tests passed. The new end-to-end tests additionally feed reconciled invocations into execution aggregation and verify all requested recovered effects are satisfied.
  • git diff --check passed.
  • Broader adaptive-turn run stopped after 91 passes at an unrelated ontology-authorisation test attempting unauthenticated MongoDB access. No credentials or database configuration were changed.

Ship boundary

Tier 1: stubbed model and bounded handler receipts exercise the actual final-response path. Recovered task results must preserve the successful answer, and unrelated failures must remain failures in both report and narration facts. No live conversation replay is claimed: the assignment has no accessible source-conversation locator.

Matching is deliberately bounded to the same creation arguments, with supported assignment recovery and the diagnosed invalid-type correction; semantic equivalence of rewritten task descriptions is outside this patch. No deployment was requested. The controller owns task-state updates and requester messaging.

@witbrock
witbrock merged commit d0a8b83 into main Sep 12, 2026
2 checks passed
@witbrock
witbrock deleted the codex/von-bd2de61702f45053 branch September 12, 2026 19:42
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