Repository navigation
fix: reject reasoning-only completion and bound recovery - #65
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 50a5e8a3f5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if attempt >= 1 { | ||
| return skip("incomplete_response_attempts_exhausted") | ||
| } | ||
| return retryDecision{Retry: true, Fingerprint: "incomplete_response", Hint: "Inspect the existing results first. Continue only missing work and provide a final response. Do not repeat completed side effects; verify uncertain submissions before retrying them."} |
There was a problem hiding this comment.
Preserve the typed failure without adding Core recovery
When incomplete_response occurs with automatic retries enabled (the default), this branch causes autoRetry to submit a new user message containing Core-authored recovery instructions. This introduces a new Core retry path and changes model input, contrary to the explicit boundary in root AGENTS.md, which prohibits both. The existing retry machinery does not exempt this newly added behavior. Keep the typed failure terminal in Core and leave native execution recovery with the Harness adapter.
AGENTS.md reference: AGENTS.md:L51-L51
Useful? React with 👍 / 👎.
A native Codex Turn can end as completed after a reasoning-only response, despite having no final answer. Earlier commentary then looks like successful completion. Detect this root-turn tail independently of reasoning visibility and emit the neutral
incomplete_responseclassification. Preserve normal answers, unphased messages, tool-only completions, cancellation, usage and native history; allow at most one continuation within the existing retry budget.Add safe completion-decision evidence in the adapter and Runtime terminal receipt logs in Core. Business delivery remains application-owned. Includes the previously unmerged closed-Runtime retry fix
aff6400dfrom the PR #64 branch.Validation: affected Go packages, targeted race tests, Runtime contract checks and daemon build passed; independent review found no actionable issues. Dedicated local live-provider prerequisites were unavailable; production rollout must qualify a fresh Runtime and model Turn. No schema migrations or native package-pin changes.