Repository navigation
fix: Parse canonical Codex rollouts with bounded reconciliation - #817
Draft
buildingjoshbetter wants to merge 1 commit into
Draft
buildingjoshbetter wants to merge 1 commit into
buildingjoshbetter wants to merge 1 commit into
Conversation
5 of 53 tasks
This branch has not been deployed
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.
Scope
Related to #762. Stacked on #815. Parse canonical native Codex user and assistant response items while preserving file order, repeated IDs and repeated text as separate occurrences.
The supported grammar follows official Codex commit 0b755b1945bf4a31560df2ce1469aeb044dccbc9, including ordinary Legacy/Paginated lifecycle and terminal projections.
Reconciliation cost
Each eligible canonical occurrence contributes eight index keys. Matching keeps a monotonic cursor per role and uses at most two binary searches per event. Canonical messages are never deduplicated or reordered.
At 400 unmatched or metadata-incompatible echoes, instrumented work fell from 160,000–480,000 operations in rejected v1 to 16,380–17,980 with the index. These are operation-count measurements. Independent comparison against a linear oracle covered 38,880 selector/cursor cases.
Validation
378b8f726b89ff2d0f808deade181c3f9e248d08.b5dbde5037f583bac81a968042b9876e0ef0bae5.f6acbe9a3491fbea274c9fb19ac50e8abb666e7b4bd5d8c460bfa9628bb970a1.8bbf1b046d949d6f057c85a5c9899e40c8f19eaad32b0e6b1816c3c677720569.Earlier failures remain recorded. V1 was rejected for quadratic matching and lossy generic-family dispatch. V2 was rejected for misclassifying known legacy exclusions with incidental payloads. The final exclusion regression fails 27 assertions against v2, with zero errors. The fixture's forced foreground config reread still fails its original assertion.
Remaining requirements
Capture still uses the list parser API and does not consume detailed coverage outcomes. C05 path admission, C07 native hook delivery and #768 durable completion policy remain open. Citation and proposed-plan transformations remain partial. Parser support alone does not establish complete automatic capture.
No model, reranker, dimensions or retrieval limits changed. No personal chats or memories were used. Draft only; no issue closure, main merge or release.