Dashboard › opencode-lore › Distillation
d8a5476a-e34b-42ee-a38a-e4f93bd4d7d6["lore_tm_v1_QvbyvXwVQIu8Z_kPd8FZNZAUEzVennkrvIOwqmoEFCM","lore_tm_v1_EoJe5eBD9NoJpD3ZiC4MNXgamfx7Nw6GZL_0YlgnVkc","lore_tm_v1_vJs18b3T1PJImQK7jkpga2riJ_-jtgWsGx_Wzumf_Do","lore_tm_v1_abl95e71LbJqnjAeuduFOPul4WHd1A7cT7VRdlray8Q"]
Date: Sep 16, 2026
PASS for identity/integrity verification but concluded DO-NOT-MERGE because of four must-fix correctness blockers.tklkqxytmpkzzryqlolnpvxouropxznp at commit ce88c614c0ae55d229cb605aa7c7369d918d3650, parent kvpmnlwnznqxomuzywlvmotqtplywzvm / 683dff02101f15198b18e3088a0b57dade290056, base 2cbf40060c67df229731cf1b9e34d5bf22ec2145, with plain range-diff SHA-256 02d06b2f84d7d2d8cfa5f22443384d12a2a9bc922ade879449de9b0b9d971d1c.packages/gateway/src/pipeline.ts, packages/gateway/src/stream/openai-responses.ts, and packages/gateway/test/openai-responses-recall-aware-stream.test.ts.fix/responses-private-references bookmark. Review started and ended on clean empty child d890b184d786a4348e30bcdac7412baa7ae01ae9.repo-setup skill was unavailable, so the reviewer loaded jj-guide and read AGENTS.md, quality/REVIEW.md, both package manifests, and gateway build/bundle scripts.<100_000 ceiling. assertSparseCoordinates() checks an output index only when the original payload owns output_index (pipeline.ts:8386-8400), and continuation validation runs before Codex normalization (pipeline.ts:11001-11013). Codex normalization can then assign an omitted index and mutate state (openai-responses.ts:1580-1623, openai-responses.ts:1757-1768), while shiftedOutputIndex() checks safe-integer arithmetic but not maxSparseIndex (pipeline.ts:9849-9855).output_index: 99_999; 2. contIndex becomes 100_000; 3. a done-only continuation item omits output_index; 4. pre-normalization sees no coordinate; 5. Codex normalization assigns local index 0; 6. forwarding/merging accepts shifted index 100_000, violating the <100_000 contract.openai-responses-recall-aware-stream.test.ts:7406-7500 use explicit coordinates and miss normalized omitted coordinates. Required fix: give the normalizer the remaining shifted coordinate space or reject the normalized coordinate before authoritative-map mutation; add principal-boundary tests for omitted done-only and data-only continuation indices.pipeline.ts:8432-8435, pipeline.ts:8702-8842, and pipeline.ts:8844-8966 accepts forged reasoning lifecycle names. Codex validation handles only exact known names and has no rejecting default (openai-responses.ts:1709-1743).response.reasoning_summary_private.done and response.reasoning_text_private.done can seed authoritative lifecycle state; a later output_item.done or terminal snapshot with matching text then passes tracked-part checks, defeating terminal-only reasoning rejection before recall execution.item_reference events return immediately after auxiliary handling in the principal path (pipeline.ts:10389-10391) and continuation path (pipeline.ts:11014-11022), bypassing applyResponsesEvent() (pipeline.ts:10408-10416, pipeline.ts:11029-11037) and retained-state checks (pipeline.ts:10465-10474, pipeline.ts:11085-11094).item_reference test at openai-responses-recall-aware-stream.test.ts:2497-2539 proves only public suppression and βnever verifies private accumulation or limit-crossing reference state.βmaterializeCompletedCodexMessages() handles only messages and only done parts (pipeline.ts:7971-7996), while missing output_item.done is accepted for nearly every Codex item without checking nested lifecycle completion (pipeline.ts:9349-9373), including when terminal output is absent (pipeline.ts:9461-9467).rawOutputItems,β causing recall continuation and post-response state to lose accepted reasoning.content array; finalizeResponsesAcc() prefers that array over accumulated text (openai-responses.ts:824-847), silently dropping the unfinished accepted delta while reporting success.openai-responses-recall-aware-stream.test.ts:3240-3362 cover only message text. Required tests: absent/empty terminal output for completed reasoning summary/content and mixed complete/incomplete message parts. Required behavior: reject unfinished lifecycles or consistently preserve every accepted semantic part.applyResponsesEvent() before evaluating retainedStateBytes (pipeline.ts:10408-10474, pipeline.ts:11029-11094), preserving done-only identity completion and limit-crossing function-call state.preserveLifecycleFailureState() reconstructs only allowlisted type and text/refusal values (pipeline.ts:10097-10138); principal and continuation lifecycle-limit matrices assert sparse holes and absence of negative leakage.finalizedMessageContent() writes by original content index (pipeline.ts:7971-7984) and finalizeResponsesAcc() skips sparse holes rather than converting them into opaque blocks (openai-responses.ts:824-843).pipeline.ts:7998-8042, pipeline.ts:9094-9163, pipeline.ts:9398-9445); tests verify principal and nested-continuation rejection before additional recall side effects.pipeline.ts:10929-10939; resource-limit catch accounting occurs at pipeline.ts:11307-11318; normal completion uses the same helper at pipeline.ts:11446; regression coverage at openai-responses-recall-aware-stream.test.ts:7794-7894 asserts exact combined usage.finish() (pipeline.ts:11689-11696), and the outer failure path rolls back at pipeline.ts:11852 before callback delivery at pipeline.ts:11979; new tests inspect rollback state inside onComplete.pipeline.ts:9742-9746), resource-limit terminals expose output: [] (pipeline.ts:11957-11959), and internal failure projections strip recall/reference identities.pipeline.ts:8560-8577 and repeated findIndex terminal matching at pipeline.ts:9498-9513.openai-responses-recall-aware-stream.test.ts:7709-7732; this proves the spread fix but not acceptable production complexity near the 100,000-frame ceiling.kvpmnlwn / 683dff02101f15198b18e3088a0b57dade290056 and produced 10 failures with 6 controls plus independent done, terminal, materializer, and reasoning-text mutations. Reported fixed, adjacent, matrix, static, and bundle runs were coherent.DO-NOT-MERGE, kept ce88c614 frozen, and planned to repair all 4 blockers in a later child with new tests that fail on the parent.Prove expanded accumulation regressions fail on frozen parent β completed; 2. Freeze and exhaustively validate accumulation correction β pending; 3. Repair accumulation review blockers with failing-first tests β pending; 4. Resolve projection security blockers in additive child β pending; 5. Fix provider metadata, accounting parity, and categorical logs β in progress; 6. Resolve recovery review blockers and revalidate β pending; 7. Resume Codex and private-reference repair lanes β pending; 8. Push reviewed candidates and update or create PRs β pending.