Dashboard › opencode-lore › Distillation
30c51cab-89d0-4bbf-b679-8230d11bf0d7["lore_tm_v1_Ck9OSK84ii67VUGCBa9sQcUO6SgwzW6S6wln5DIyoiw","lore_tm_v1_lJ9lQtjB71tf7HYNj0Eyn4LG1A3a1wMBny8-80ypLNA","lore_tm_v1_6Qz2mV0TJq6iJVFWiKbV0TEMGToOxsWo85yj4Jo59is","lore_tm_v1_LEnMVDj71tgvA1vxfWx38OGGWY0BXwMEYlffe9dumIU","lore_tm_v1_oPvOfeywzHThy0FlK_tE1m3QEq3NIr07hRUF4TEWNTQ","lore_tm_v1_-HGym2gjmRojvCg2pmiJbwzwoemInOQgprYwz4Er0yE"]
Date: Sep 16, 2026
streamResponsesRecallAware must never forward response-side item_reference lifecycle events.streamResponsesRecallAware test contracts shown in packages/gateway/test/openai-responses-recall-aware-stream.test.ts: no-recall events are forwarded live without header hold-back; immediate client cancellation after a no-recall terminal still finalizes; a principal response.failed is forwarded exactly once; parallel recalls bind to their own call IDs; repeated call IDs are rejected before recall execution; malformed ordering with arguments before item declaration fails closed; strict recall arguments reject {"query":"x","extra":true}; request-wide frame limits include failed continuation frames and cap combined principal/chained-continuation frames; a continuation’s response.incomplete is preserved.isUsableRecallContinuation() in packages/gateway/src/recall.ts:1189 rejects stop reasons "max_tokens", "pause_turn", and "model_context_window_exceeded", and rejects any tool_use block whose name is absent, non-string, or blank.isUsableRecallContinuation() accepts a continuation only if it contains at least one nonblank text block, a named non-recall tool_use, or a nonblank Responses refusal represented either by an opaque responsesItem === true block or rawOutputItems; recall tool calls alone are not usable final answers.packages/gateway/src/pipeline.ts is serialized per sessionID, yields once with setImmediate, drops operations from stale streamingPostResponseGeneration values, logs queue overflow at most once per 30_000 ms, and invokes pumpPendingSessionClaims() after cleanup.awaitStreamingPostResponse() limits waiters to MAX_STREAMING_POST_RESPONSE_WAITERS_PER_SESSION = 16, throws StreamingPostResponseWaitCapacityError("streaming post-response wait queue full") at capacity, and waits via promiseAgainstAbort(() => tail, signal).config.remoteGateway || config.hostedMode; requestStorageTenant() derives authenticated ownership with credentialTenantFingerprint(credential) and assigns unauthenticated requests an owner of the form unauthenticated:${crypto.randomUUID()}. Provisional header mappings are capped at 1024 with PROVISIONAL_HEADER_MAPPING_TTL_MS = 5 * 60_000.