Repository navigation
fix(agent): support Codex evolution schemas - #111
Merged
Merged
Conversation
- Keep reflector and curator schemas within the Codex-supported JSON Schema subset - Preserve duplicate rejection through application-side response validation
- Validate response-tool and JSON-text submissions before completing an executor invocation. - Retain tool results across corrections and transport retries while isolating node conversations.
- Persist one fresh leaf retry with independent deadlines, transcripts, tools, and terminal diagnostics. - Synthesize successful child lessons past unavailable or empty branches and report skipped coverage.
- Publish each executor's bounded provider-call capacity. - Cover the coding-agent executor allowance in runtime tests.
- Reserve model and tool capacity for unfinished leaf attempts and synthesis nodes. - Rebuild envelopes from durable checkpoints and fail fast on undersized ceilings.
- Remove evolution entries added by this pull request. - Keep generated release records unchanged.
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.
Summary
Fix Codex evolution schema compatibility and harden recursive reflection so each node preserves its transcript, leaf failures do not block synthesis, and default model/tool budgets cover the unfinished reflection DAG.
Reasoning
OpenAI Structured Outputs supports
anyOf, while the existing schemas used unsupported constraints such asoneOf,const, anduniqueItems. The runtime parsers already enforce duplicate rejection and discriminator validity, so removing provider-side uniqueness constraints does not weaken persisted evolution data.Reflection also restarted response refinement with a fresh transcript and used fixed job-wide limits of 100 provider calls and 200 tool calls. Recoverable tool denials could therefore repeat, leaf work could consume capacity needed for synthesis, and a terminal leaf could stop otherwise successful branches.
Changes
uniqueItemsfrom reflector and curator response schemas.oneOfbranches with equivalent disjointanyOfbranches.constvalues with singleton enums.maxModelCallsandmaxToolCallsas hard ceilings with required-versus-available diagnostics.User impact
Testing
node ../../node_modules/vitest/dist/cli.js --run test/reflector.test.ts test/curator.test.tsnode ../../node_modules/vitest/dist/cli.js --run test/evolution-runtime.test.tsnpm run check./test.shbuild-check-test