Dashboard › opencode-lore › Distillation
9d0865de-36e1-450e-8023-acde884f2e2b["lore_tm_v1__GlEXC7Imyii22ZFDhNy2JLPZKT_q62bfyt49AsmWWI","lore_tm_v1_mTDxGGoV20-GVKYO4_SZ2bl2ibC5jeSHrKlCPzixaMI","lore_tm_v1_AcnIyGZqsl7NUvdniDkvp08y9oXB1CAG63XwBGKQojM","lore_tm_v1_Ao09cfd9G5FJYnavBqYu6dMJu9rGnZ-l6HR5iSnS_c0","lore_tm_v1_shLg-C5QGAyq88fsPbj943YoiymnhlMF18HVpAAJIEA","lore_tm_v1_3ZvHqd4xck7EyAHZzJmUPjjSb8zLFW8ndE8qcv0HHwE","lore_tm_v1_D0ypdaClKmdpXSK-muTloOMRWPwmHAiHUn-8FfBo5Fo","lore_tm_v1_4gBLTrJOC3ZptaJTOqiHslM51XbRrrHhPbie9xcOY3A","lore_tm_v1_wENvEkPMhTJDJHAPmengepGxt5Fxh-Gu3ucMC5QaaJE","lore_tm_v1_ZOVvSRo_B6k1t0jt55Xh7_Eecwu6GyHDrA_R3nO2Pjo","lore_tm_v1_LB3azT_trBDAMP1JUQjSdxUG55spIw2NySx0vD2WgVo","lore_tm_v1_HaWS6Kg0ZWcpHR53euWKux8k_at4KB_HyXmnPjAcuEE","lore_tm_v1_EnjESqJ7u4e_Qy3UF8cHqKQKqhb8nFFv4NhZA-msCis","lore_tm_v1_NNKlmfRJ5uu8pS1xLJ6CHLqDtt9YHtzwXWOtRiRe5bo","lore_tm_v1_eR_FpEmP_rHzGOiCWk2qyiU3-ZiucYeCyEaEoCSRb1Q","lore_tm_v1_U2xWuYn8EnzSaCNdDaa06EEQVYGmFe54Gsqa44ZJvrY","lore_tm_v1_mMnprP2xkw6lcmrP3GDfOrdw9AMcEcXTTt-LAJAao_I","lore_tm_v1_M1rSYcQAxgwW6gDhdCrTBM6b4cx_R1exYipdBiwXxBk","lore_tm_v1_XnGknCcXX-P_8qDtdT32tnMESqYkplaFrCLJGCwIuoE"]
Date: Sep 16, 2026
response.failed is forwarded verbatim in packages/gateway/src/pipeline.ts:10639-10674; packages/gateway/test/openai-responses-recall-aware-stream.test.ts:507-532 expects private message "provider failed" publicly; synthetic non-resource failures use buildOutputItems(...) at packages/gateway/src/pipeline.ts:11939-11976; and malformed-terminal coverage at test lines 2254-2268 requires prior output in the failure.codex.rate_limits event after recall detection can still reach onComplete after later failure despite never being emitted to the client. finish() spreads the full response and clears only content and rawOutputItems at packages/gateway/src/pipeline.ts:9738-9746, retaining codexRateLimits; unvalidated allowlisted provider values are copied at packages/gateway/src/stream/openai-responses.ts:588-603 and exported at lines 888-900.response.failed to the fixed public error with output: []; construct unsuccessful callback data from an explicit minimal projection containing only validated usage and required protocol identity, rather than spreading accumulated response state.materializeCompletedCodexMessages() handles only messages at packages/gateway/src/pipeline.ts:7985-7996; absent output causes assertTerminalOutputMatches() to return at lines 9461-9466, and empty output performs no reconciliation.assertOutputLifecyclesComplete() never checks unfinished text-part lifecycles and permits unfinished Codex reasoning without string ciphertext at packages/gateway/src/pipeline.ts:9349-9373; principal recall can then begin at lines 10723-10748, while continuation can reach nested recall at lines 11225-11245 and 11500-11538.reasoning_summary_text.delta without its .done, a completed recall call, then response.completed with absent or empty output; recall executes despite the unfinished reasoning lifecycle. If .done exists, its valid final value is still lost from the finalized accumulator.output_item.done, validate every tracked reasoning/content part, reject unfinished deltas and part lifecycles, and materialize completed reasoning summary/content into canonical state. Add principal and continuation tests for absent and empty terminal output, covering positive completed parts and negative unfinished parts.safeEnqueue() waits for capacity at packages/gateway/src/pipeline.ts:10158-10187, while failure invokes finish(failedResponse, false) only after enqueue at lines 11939-11980. A client can leave response.created unread, allow hidden recall/continuation work, trigger failure, then cancel while delivery is blocked.packages/gateway/src/pipeline.ts:11999-12015, so the integration callback at lines 18903-18908 never registers unsuccessful accounting; even when registered, finishUnsuccessfulStreaming() waits for downstream settlement at lines 18827-18855. Accounting therefore occurs zero times rather than exactly once.packages/gateway/src/pipeline.ts:8560-8576, making large valid streams quadratic; the 63,000-item test at packages/gateway/test/openai-responses-recall-aware-stream.test.ts:7668-7732 bypasses production behavior by mocking Map.prototype[Symbol.iterator] and only proves the replacement maximum-index calculation avoids argument-spread overflow.packages/gateway/src/pipeline.ts:7971-7996, and finalization walks holes at packages/gateway/src/stream/openai-responses.ts:821-846; many messages with one part near index 99,999 can cause billions of hole iterations while remaining within frame and retained-byte ceilings.packages/gateway/src/pipeline.ts:10408-10474 and 11029-11094; sparse coordinates are bounded before mutation at lines 8386-8421, including shifted continuation coordinates; resource-limit public envelopes use empty output and unsuccessful callbacks clear content/raw output; present terminal reasoning arrays reject untracked, contradictory, malformed, or unfinished parts before recall; continuation usage has a one-shot guard; unsuccessful transactions roll back before onComplete; telemetry uses fixed failure categories with no new raw query, argument, reasoning, or provider-error logging.stryker.config.mjs:37-43 excludes both changed source files, pipeline.ts and stream/openai-responses.ts; added tests discriminate several intended guards but provide no executed fail-first or guard-removal evidence and miss the four MUST-FIX cases.2cbf40060c67df229731cf1b9e34d5bf22ec2145; candidate tklkqxytmpkzzryqlolnpvxouropxznp; head ce88c614c0ae55d229cb605aa7c7369d918d3650; clean empty child d890b184d786a4348e30bcdac7412baa7ae01ae9; no candidate-range conflicts; exactly 3 changed files; plain diff SHA-256 02d06b2f84d7d2d8cfa5f22443384d12a2a9bc922ade879449de9b0b9d971d1c. The warning concerned an unrelated conflicted bookmark, and no files, VCS state, network, server, or production database were touched.DO-NOT-MERGE.codexRateLimits/codex.rate_limits matches: merge logic in packages/gateway/src/pipeline.ts:18590-18593; type declaration in packages/gateway/src/translate/types.ts:349; emission in packages/gateway/src/translate/openai-responses.ts:1281-1282; and accumulation/export in packages/gateway/src/stream/openai-responses.ts:60, 588-603, and 897-898.applyResponsesEvent() in packages/gateway/src/stream/openai-responses.ts:582-603 handles codex.rate_limits by retaining a quota object with type and any present values for plan_type, rate_limits, credits, metered_limit_name, and limit_name; comments say arbitrary events/diagnostic fields are not retained and byte/frame limits bound the list.buildTerminal() in packages/gateway/src/pipeline.ts:9815-9865 rebuilds the terminal event and sets created_at from terminalResponse?.created_at ?? Math.floor(Date.now() / 1000), confirming malformed/missing provider timestamps can be retained or normalized without strict validation.buildOutputItemsWithIndices() in packages/gateway/src/pipeline.ts:9874-9882 constructs a union of state.rawItems.keys() and state.items.keys() and numerically sorts it, identifying the repeated projection-sort boundary targeted for bounded-work changes.coverage is never emitted to the client; the field is documented as “Private source coverage; never emitted to the client” in packages/gateway/src/pipeline.ts:7854-7855.outputIdentities is declared as new Set<string>() at packages/gateway/src/pipeline.ts:7880, populated at lines 8460 and 8940 and during continuation at line 11233; despite this index, function completion still scans all state.rawItems at lines 8582-8588 for duplicate identities.