Repository navigation
Reconcile verified task creation recovery before outcome reporting - #647
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
git diff --checkpassed.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.