Dashboard › opencode-lore › Session 1IWtH0pVqDJS
1IWtH0pVqDJS9FY6JImplement all accepted projection correctness/security review fixes in isolated workspace /home/byk/Code/opencode-lore-responses-projection-review-fix. This is a jj repo. Mutable working change zuyzuzlq, parent immutable zlsmzknt/a3fa555b, base 2cbf4006. Do not touch servers, production DB, other workspaces, bookmarks, or frozen parent. Use apply_patch and jj rules; do NOT commit/bookmark/rebase/push. Read AGENTS.md, quality/REVIEW.md, scripts first. Add deterministic real-wire regressions before source edits and establish fail-first on unchanged child production. Address exactly: (1) terminal-resolved sparse ordinary tools must enter public projection before deferred flush: higher-index resolution succeeds and lower-index resolution fails closed with output:[] and no exposed new item. (2) Replace broad semantic event prefix acceptance with exact event names. Public wire frames must be rebuilt from event-specific allowlists; unsupported/prefix-collision/indexed/unindexed custom frames and arbitrary extension fields on valid events/items/lifecycle frames must never reach client/callback/persistence. Buffer/drop unreviewed principal frames before late/terminal-discovered recall; never forward raw deferred principal extension frames. codex.rate_limits may accumulate only its reviewed fields. (3) Merge continuation/chained/retry codexRateLimits in exact order into authoritative state, restore them from transaction/retry baseline, and rollback failed attempts. Tests for principal+continuation+chained+retry+rollback. (4) Fix direct sparse principal live-frame vs dense terminal contradiction: record actual delivered public coordinate or hold/remap principal output transactionally until terminal-known. No-recall Codex terminal omission/empty/partial must remain consistent. Rebuild terminal whenever live projection changed. created_at must be non-negative safe integer; created/in_progress extensions never leak. ...
<skill_content name="jj-guide"> # Skill: jj-guide # jj Guide for AI Agents Jujutsu (jj) is a Git-compatible VCS with mutable commits, automatic snapshotting, no staging area, and first-class conflicts. This skill teaches you how to use it safely from a non-interactive agent environment. If `.jj/` exists in the repo root, this is a jj repo. **Use `jj` commands, not `git`.** In a colocated repo (`.jj/` *and* `.git/`), git tools can read the state, but mutations should go through `jj` so the operation log stays consistent. ## Critical Rules - **NEVER** use interactive flags (`-i`, `--interactive`). TUI prompts hang in agent environments. This applies to `jj split -i`, `jj squash -i`, `jj commit -i`, `jj resolve`, `jj diffedit`, etc. - **ALWAYS** pass `-m "msg"` when describing/committing. Without `-m`, an editor opens and hangs. - **VERIFY** mutations with `jj st` and `jj log` after `squash`, `abandon`, `rebase`, `restore`, `commit`. ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/AGENTS.md</path> <type>file</type> <content> 1: <!-- This section is maintained by the coding agent via lore (https://github.com/BYK/loreai) --> 2: ## Long-term Knowledge 3: 4: For long-term knowledge entries managed by [lore](https://github.com/BYK/loreai) (gotchas, patterns, decisions, architecture), see [`.lore.md`](.lore.md) in the project root. 5: <!-- End lore-managed section --> 6: 7: ## Review 8: 9: See [`quality/REVIEW.md`](quality/REVIEW.md) for the review heuristics and workflow — regression-test discipline, adversarial-order state setup, fan-out registry coverage, recurring bug-class batteries, and the two-reviewer rule. Every non-trivial PR requires an adversarial correctness review before merge. 10: 11: # Project Overview 12: 13: Lore is a **three-tier memory architecture** for AI coding agents. ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/quality/REVIEW.md</path> <type>file</type> <content> 1: # Review Heuristics — Lore 2: 3: This document codifies the review bar for pull requests. It exists because 4: adversarial review has repeatedly caught correctness bugs that a green test 5: suite missed — skip/early-return branches, lifecycle sequences, and fan-out 6: registry gaps. Institutionalizing these patterns so they compound. 7: 8: The review workflow (§6) is referenced from AGENTS.md. 9: 10: --- 11: 12: ## 1. Regression-test discipline 13: 14: Every adversarial-review finding that surfaces a defect **must** land a 15: deterministic regression test in the same PR. The test: 16: - fails on the base branch (proving it reproduces the bug), 17: - passes on the fix (proving the fix works), 18: - drives the *real* precondition, not an artificially-constructed state (e.g. ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/package.json</path>
<type>file</type>
<content>
1: {
2: "name": "lore-monorepo",
3: "private": true,
4: "type": "module",
5: "license": "FSL-1.1-Apache-2.0",
6: "description": "Monorepo root for Lore — three-tier memory architecture",
7: "main": "./packages/opencode/src/index.ts",
8: "exports": {
9: ".": "./packages/opencode/src/index.ts"
10: },
11: "packageManager": "pnpm@10.28.0",
12: "volta": {
13: "node": "24.16.0",
14: "pnpm": "10.28.0"
15: },
16: "pnpm": {
17: "onlyBuiltDependencies": [
18: "esbuild",
19: "onnxruntime-node",
20: "sharp"
21: ],
22: "overrides": {
23: "basic-ftp": "5.3.1",
24: "ip-address": "10.2.0",
25: "fast-xml-parser": "5.7.3",
26: "@huggingface/hub": "2.11.0",
27: "onnxruntime-node": "1.27.0",
28: "yaml": ">=2.8.3",
29: "esbuild": ">=0.28.1",
30: "@opentelemetry/core": ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/package.json</path>
<type>file</type>
<content>
1: {
2: "name": "@loreai/gateway",
3: "version": "0.40.0",
4: "type": "module",
5: "license": "FSL-1.1-Apache-2.0",
6: "description": "Lore as a transparent LLM proxy — context management for any AI coding client",
7: "main": "./dist/index.cjs",
8: "types": "./dist/index.d.cts",
9: "exports": {
10: ".": {
11: "types": "./dist/index.d.cts",
12: "bun": "./dist/index.bun.js",
13: "require": "./dist/index.cjs",
14: "default": "./dist/index.cjs"
15: }
16: },
17: "bin": {
18: "lore": "./dist/bin.cjs",
19: "lore-gateway": "./dist/bin.cjs"
20: },
21: "scripts": {
22: "typecheck": "tsc --noEmit",
23: "build": "tsx script/build.ts",
24: "bundle": "tsx script/bundle.ts",
25: "build:binary": "tsx script/build.ts --binary",
26: "build:binary:sea": "tsx script/build-binary-sea.ts",
27: ...
/home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/smoke-install.mjs /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/generate-release-checksums.mjs /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/generate-env-docs.ts /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/generate-config-docs.ts /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/extract-cch-seed.ts /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/check-social-meta.mjs /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/check-preview-links.mjs /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/check-patches.ts /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/check-docs-links.mjs /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/check-cc-version.ts /home/byk/Code/opencode-lore-responses-projection-review-fix/scripts/cch-scan.c /home/byk/Co...
The working copy has no changes. Working copy (@) : zuyzuzlq 5e86b63e (empty) fix(responses): complete hidden-output state Parent commit (@-): zlsmzknt a3fa555b fix/responses-hidden-output* | fix(responses): harden hidden-output projection Warning: These bookmarks have conflicts: fix/responses-private-references Hint: Use `jj bookmark list` to see details. Use `jj bookmark set <name> -r <rev>` to resolve. zuyzuzlqpqyy 5e86b63ea5d2 false fix(responses): complete hidden-output state zlsmzkntqzzx a3fa555bdcab false fix(responses): harden hidden-output projection pxrvwsvvkmpo 2cbf40060c67 true feat(cch): add seeds for Claude Code up to 2.1.272 (#1780)
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/script/bundle.ts</path> <type>file</type> <content> 1: /** 2: * Bundle @loreai/gateway into a self-contained CJS package for npm/npx. 3: * 4: * Produces: 5: * dist/index.cjs — single CJS bundle (gateway + core + all JS deps) 6: * dist/bin.cjs — thin CLI wrapper with Node.js version check 7: * 8: * Everything is bundled except: 9: * - node:* built-ins (resolved at runtime) 10: * 11: * Source code is pure Node.js — no `Bun.*` polyfill layer is needed. 12: * (xxHash64 lives in src/xxhash.ts as a standalone module since there is 13: * no Node.js equivalent of `Bun.hash.xxHash64`.) 14: * 15: * Debug IDs are injected into the JS + sourcemap after bundling for Sentry 16: * source map resolution. When SENTRY_AUTH_TOKEN is set, sourcemaps are 17: * uploaded to Sentry and then deleted (they shouldn't ship to users). ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/script/build.ts</path> <type>file</type> <content> 1: /** 2: * Build @loreai/gateway. 3: * 4: * Two build modes: 5: * 6: * 1. `tsx script/build.ts` (default; via `pnpm run build`) 7: * Produces dist/index.js — publishable ESM bundle for npm. 8: * @loreai/core is external (workspace dep, installed alongside). 9: * 10: * 2. `tsx script/build.ts --binary` (via `pnpm run build:binary`) 11: * Delegates to `script/build-binary-sea.ts` which produces a 12: * standalone Node SEA binary via fossilize. The legacy Bun 13: * `--compile` pipeline was removed in #551 in favor of Node SEA 14: * because Bun's WASM engine has unfixed bugs that cause ONNX 15: * embedding OOM on all platforms (oven-sh/bun#18145, #25677, #31158). 16: * 17: * Lore's build pipeline runs entirely under Node (via tsx) — it never 18: * requires the Bun runtime. ...
Found 91 matches
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/pipeline.ts:
Line 19: } from "./semantic-preparation";
Line 21: export { responsesProvenanceByMessageId } from "./semantic-preparation";
Line 2807: // one (concatenated content blocks) — semantically identical on the wire and
Line 7644: // exactly once — this just makes the consume semantics explicit.
Line 8013: let deferredTransaction:
Line 8022: state.terminalResponse = transactionBaseline.terminalResponse;
Line 8060: const isSemanticResponsesEvent = (event: string): boolean =>
Line 8073: event.startsWith("response.reasoning_summary_") ||
Line 8761: event.startsWith("response.reasoning_summary") &&
Line 8771: (event.startsWith("response.reasoning_summary") &&
Line 8780: if (event.startsWith("response.reasoning_summary")) {
Line 8785: if (event === "response.reasoning_summary_part.added") {
...
Found 100 matches (more matches available)
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/openai-responses.test.ts:
Line 235: test("replays the bounded prefix into the streaming parser", async () => {
Line 1227: test("rejects a null-only strict projection for an ill-formed recall property", () => {
Line 1454: test("non-streaming: id gets resp_ prefix if missing", async () => {
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/openai-responses-recall-aware-stream.test.ts:
Line 149: const sparseVisibleFunctionCall = (
Line 152: itemId = `fc_sparse_${outputIndex}`,
Line 153: callId = `call_sparse_${outputIndex}`,
Line 383: test("accepts a partial Codex terminal output after streamed items", async () => {
Line 386: created("resp_codex_partial_output", "gpt-5.6-terra"),
Line 391: id: "resp_codex_partial_output",
Line 670: test("bounds deferred principal ...
M packages/gateway/src/pipeline.ts M packages/gateway/test/openai-responses-recall-aware-stream.test.ts packages/gateway/src/pipeline.ts | 449 +++++++++++--- ...est/openai-responses-recall-aware-stream.test.ts | 698 +++++++++++++++++++++- 2 files changed, 1051 insertions(+), 96 deletions(-) packages/gateway/src/pipeline.ts packages/gateway/test/openai-responses-recall-aware-stream.test.ts
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/pipeline.ts</path>
<type>file</type>
<content>
7900: valueDone: boolean;
7901: finalValue?: string;
7902: partAdded: boolean;
7903: partDone: boolean;
7904: partFinalValue?: string;
7905: };
7906: type OutputLifecycle = {
7907: argumentDeltaSeen: boolean;
7908: argumentDeltas: string;
7909: argumentsDone: boolean;
7910: outputDone: boolean;
7911: reasoning: Map<number, TextPartLifecycle>;
7912: content: Map<number, TextPartLifecycle>;
7913: };
7914: const outputLifecycles = new WeakMap<
7915: ResponsesAccState,
7916: Map<number, OutputLifecycle>
7917: >();
7918: const lifecyclesFor = (
7919: acc: ResponsesAccState,
7920: ): Map<number, OutputLifecycle> => {
7921: let lifecycles = outputLifecycles.get(acc);
7922: if (!lifecycles) {
7923: lifecycles = new Map();
7924: outputLifecycles.set(acc, lifecycles);
7925: ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/pipeline.ts</path>
<type>file</type>
<content>
8540: event === "response.output_item.done" &&
8541: item?.type === "message" &&
8542: item.content === undefined &&
8543: lifecycle
8544: ) {
8545: const content = finalizedMessageContent(lifecycle);
8546: if (content.length > 0) item.content = content;
8547: }
8548: if (
8549: event === "response.output_item.done" &&
8550: (!item ||
8551: !declared ||
8552: !isValidResponsesReasoningEncryptedContent(item) ||
8553: !responsesDoneItemMatchesAdded(item, declared))
8554: ) {
8555: throw new Error(
8556: `Responses output_item.done changed item identity for index ${outputIndex}`,
8557: );
8558: }
8559: let finalFunctionIdentity: { callId: string; name: string } | undefined;
8560: if (
8561: ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/pipeline.ts</path>
<type>file</type>
<content>
9350: state.authoritativeValue)
9351: ) {
9352: throw new Error(
9353: `Responses terminal changed ${description} for index ${outputIndex}:${partIndex}`,
9354: );
9355: }
9356: }
9357: }
9358: };
9359: const assertTerminalOutputMatches = (
9360: acc: ResponsesAccState,
9361: parsed: Record<string, unknown>,
9362: onMatched?: (outputIndex: number, item: Record<string, unknown>) => void,
9363: onSynthesizedDone?: (
9364: outputIndex: number,
9365: item: Record<string, unknown>,
9366: ) => void,
9367: ): void => {
9368: const response = parsed.response as Record<string, unknown> | undefined;
9369: if (!response) throw new Error("Responses terminal event missing response");
9370: if (acc.id && response.id !== acc.id) {
9371: throw ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/pipeline.ts</path>
<type>file</type>
<content>
10165: continuationFailureReported = true;
10166: reportRecallContinuationFailure(category);
10167: };
10168: // Recall items are gateway-internal and must stay hidden on every exit,
10169: // including failures raised before marker replacement.
10170: const recallIndices = new Set<number>();
10171: const forwardedVisibleOutputIndices = new Map<number, number>();
10172: const visibleOutputIndices = new Map<number, number>();
10173: const visibleOutputSources: number[] = [];
10174: const unresolvedToolIndices = new Set<number>();
10175: const referenceIndices = new Map<number, ReferenceLifecycle>();
10176: const visibleSourcePosition = (sourceIndex: number): number => {
10177: let low = 0;
10178: let high = ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/pipeline.ts</path>
<type>file</type>
<content>
11000: }
11001: };
11002: let contOtherTool = false;
11003: let continuationCompleted = false;
11004: let continuationFailed = false;
11005: const contIndex = shiftedOutputIndex(
11006: Math.max(
11007: -1,
11008: ...state.rawItems.keys(),
11009: ...state.items.keys(),
11010: ),
11011: 1,
11012: );
11013: try {
11014: for await (const {
11015: event: ce,
11016: data: cd,
11017: } of parseSSEStream(follow.reader, {
11018: ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/pipeline.ts</path>
<type>file</type>
<content>
11890: : continuationAttempted
11891: ? (continuationFailureCategory ?? "unexpected")
11892: : classifyPrincipalFailure(err);
11893: log.error(
11894: `openai-responses recall-aware stream failed${category ? ` category=${category}` : ""}`,
11895: );
11896: }
11897: if (!signal.aborted) {
11898: if (err instanceof RecallContinuationFailure) {
11899: reportContinuationFailure(err.category);
11900: } else if (continuationAttempted) {
11901: reportContinuationFailure(
11902: continuationFailureCategory ?? ...
Found 21 matches
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/pipeline.ts:
Line 208: makeResponsesAccState,
Line 217: type ResponsesAccState,
Line 7877: let state = makeResponsesAccState();
Line 7940: normalizationState = makeResponsesAccState();
Line 10904: const contState = makeResponsesAccState();
Line 11835: state = makeResponsesAccState();
Line 18717: if (currentResp.codexRateLimits?.length) {
Line 18718: continuationResp.codexRateLimits = [
Line 18719: ...currentResp.codexRateLimits,
Line 18720: ...(continuationResp.codexRateLimits ?? []),
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/translate/types.ts:
Line 349: codexRateLimits?: Array<Record<string, unknown>>;
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/translate/openai-responses.ts:
Line 1281: ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/stream/openai-responses.ts</path> <type>file</type> <content> 1: /** 2: * OpenAI Responses API SSE stream accumulator. 3: * 4: * Parses upstream Responses API streaming events and accumulates the full 5: * response into a `GatewayResponse`. The Responses API uses a different 6: * SSE event lifecycle than Anthropic: 7: * 8: * response.created → response.in_progress → 9: * response.output_item.added → response.output_text.delta (repeated) → 10: * response.output_item.done → response.function_call_arguments.delta → 11: * response.function_call_arguments.done → 12: * response.completed 13: * 14: * Reuses `parseSSEStream` from the Anthropic stream module since the 15: * underlying SSE wire format is the same. ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/stream/openai-responses.ts</path>
<type>file</type>
<content>
530: return snapshot;
531: }
532: const finalizedContent = finalizedResponsesMessageContent(
533: outputIndex,
534: terminalContentParts,
535: ).map((part) =>
536: part.kind === "text"
537: ? { type: "output_text", text: part.value }
538: : { type: "refusal", refusal: part.value },
539: );
540: return finalizedContent.length > 0
541: ? { ...snapshot, content: finalizedContent }
542: : snapshot;
543: }
544:
545: /** Validated unsuccessful terminal, carrying usage for accounting-only paths. */
546: export class ResponsesTerminalError extends Error {
547: constructor(
548: readonly response: GatewayResponse,
549: readonly status: string,
550: ) {
551: super(`upstream Responses request ended with status ${status}`);
552: this.name = "ResponsesTerminalError";
553: }
554: ...
Found 100 matches (more matches available)
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/codex-usage-provisional.test.ts:
Line 108: incomplete ? "event: response.incomplete" : "event: response.completed",
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/codex-usage-metadata.test.ts:
Line 73: body.indexOf("event: response.completed"),
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/foreground-body-limit.test.ts:
Line 32: 'event: response.created\ndata: {"type":"response.created","response":{"id":"resp_stalled","model":"gpt-test","status":"in_progress"}}\n\n',
Line 358: 'event: response.incomplete\ndata: ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/stream/openai-responses.ts</path>
<type>file</type>
<content>
907: function validatePublicResponsesEvent(
908: state: ResponsesAccState,
909: event: string,
910: parsed: Record<string, unknown>,
911: maxSparseIndex: number,
912: ): void {
913: const outputIndex = parsed.output_index;
914: const validOutputIndex =
915: Number.isSafeInteger(outputIndex) &&
916: (outputIndex as number) >= 0 &&
917: (outputIndex as number) < maxSparseIndex;
918: const item = validOutputIndex
919: ? state.items.get(outputIndex as number)
920: : undefined;
921: const malformed = (): never => {
922: throw new Error("malformed Responses stream event");
923: };
924:
925: if (parsed.type !== undefined && parsed.type !== event) malformed();
926: if (
927: parsed.sequence_number !== undefined &&
928: (!Number.isSafeInteger(parsed.sequence_number) ||
929: ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/openai-responses-recall-aware-stream.test.ts</path>
<type>file</type>
<content>
1: /**
2: * Unit tests for `streamResponsesRecallAware` — the true-streaming,
3: * recall-aware OpenAI Responses (codex/ChatGPT) streamer.
4: *
5: * Regression for the "Provider response headers timed out after 10000ms" issue:
6: * the buffered `accumulateResponsesSSEStream` path withholds ALL client bytes
7: * until the entire (slow, reasoning-heavy) upstream completes, so opencode's
8: * 10s `ProviderHeaderTimeoutError` fired on ChatGPT sessions. This streamer
9: * forwards events live while transparently intercepting a `recall`
10: * function_call (emit marker, run follow-up, rebuild the terminal
11: * `response.completed`).
12: */
13: import { log } from "@loreai/core";
14: import { afterEach, describe, test, expect, vi } from "vitest";
15: import { streamResponsesRecallAware } from ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/pipeline.ts</path> <type>file</type> <content> 7800: rollback: () => void; 7801: }) => void; 7802: sessionID?: string; 7803: /** Emergency ceiling for the request-owned recall chain. */ 7804: maxRecallExecutions?: number; 7805: /** @deprecated Use `maxRecallExecutions`. */ 7806: maxRecallDepth?: number; 7807: noStore?: boolean; 7808: maxDeferredBytes?: number; 7809: maxHiddenRecallBytes?: number; 7810: maxRetainedStateBytes?: number; 7811: maxStreamBytes?: number; 7812: maxSSEFrames?: number; 7813: validation?: "public" | "codex"; 7814: /** Caller abort combined with the stream's client-disconnect controller. */ 7815: signal?: AbortSignal; 7816: /** Absolute request deadline inherited from the foreground abort scope. */ 7817: recallDeadlineAt?: number; 7818: /** 7819: * Reissue the byte-stable principal request after ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/src/translate/openai-responses.ts</path>
<type>file</type>
<content>
1260: `event: ${eventType}\ndata: ${JSON.stringify(data)}\n\n`,
1261: ),
1262: );
1263: }
1264:
1265: // response.created
1266: emit("response.created", {
1267: type: "response.created",
1268: response: {
1269: id: respId,
1270: object: "response",
1271: created_at: created,
1272: model: resp.model,
1273: status: "in_progress",
1274: output: [],
1275: usage: null,
1276: },
1277: });
1278:
1279: // Buffered Codex responses still carry subscription windows and credits.
1280: // These values are independent of the token usage Lore may rescale.
1281: for (const quota of resp.codexRateLimits ?? []) {
1282: emit("codex.rate_limits", quota);
1283: }
1284:
1285: ...
Found 71 matches
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/openai-responses-stream.test.ts:
Line 1965: test("rejects terminal null replacement but permits sparse enrichment", () => {
Line 1970: id: "image_terminal_sparse",
Line 1977: id: "image_terminal_sparse",
Line 1988: id: "image_terminal_sparse",
Line 1995: id: "image_terminal_sparse",
Line 2918: data: { item: { type: "message", id: "msg_sparse_terminal" } },
Line 2923: item_id: "msg_sparse_terminal",
Line 2930: data: { item_id: "msg_sparse_terminal", delta: "late" },
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/openai-responses-recall-aware-stream.test.ts:
Line 279: test("finalizes when the client cancels immediately after a no-recall terminal", async () => {
Line 2677: test("allows a terminal-discovered recall that preserves sparse ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/openai-responses-recall-aware-stream.test.ts</path>
<type>file</type>
<content>
5720: ),
5721: completed(`resp_twelve_${recalls}`),
5722: ]).body!.getReader(),
5723: };
5724: },
5725: },
5726: );
5727:
5728: const out = await drain(client);
5729: expect([recalls, followUps]).toEqual([12, 12]);
5730: expect(out).toContain("twelfth source establishes the final fact");
5731: expect(out).not.toContain(PUBLIC_RECALL_ERROR);
5732: });
5733:
5734: test("fails an exhausted continuation recall without executing it", async () => {
5735: const followUp = streamFrom([
5736: created("resp_depth_exhausted_followup", "gpt-5.6-terra"),
5737: recallCall(0, { query: "more detail" }, "fc_depth", "call_depth"),
5738: completed("resp_depth_exhausted_followup"),
5739: ]);
5740: let recalls = 0;
5741: ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/openai-responses-recall-aware-stream.test.ts</path>
<type>file</type>
<content>
8360: throw new Error("should not run");
8361: },
8362: });
8363: const output = await drain(client);
8364: expect(output).not.toContain("response.failed");
8365: expect(output).toContain("answer 63");
8366: expect(numericProjectionSorts).toBeLessThanOrEqual(4);
8367: } finally {
8368: sortSpy.mockRestore();
8369: }
8370: });
8371:
8372: test.each([
8373: {
8374: name: "custom continuation events",
8375: eventSecret: "private-custom-continuation-event",
8376: terminalSecret: undefined,
8377: },
8378: {
8379: name: "terminal extension fields",
8380: eventSecret: undefined,
8381: terminalSecret: "private-terminal-extension",
8382: },
8383: ])("allows only semantic $name after recall", async (testCase) ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/openai-responses-recall-aware-stream.test.ts</path>
<type>file</type>
<content>
8040: created("resp_strict_args", "gpt-5.6-terra"),
8041: sseEvent("response.output_item.added", {
8042: output_index: 0,
8043: item: {
8044: type: "function_call",
8045: id: "fc_strict",
8046: call_id: "call_strict",
8047: name: "recall",
8048: },
8049: }),
8050: sseEvent("response.function_call_arguments.done", {
8051: output_index: 0,
8052: item_id: "fc_strict",
8053: arguments: argumentsJSON,
8054: }),
8055: completed("resp_strict_args"),
8056: ]),
8057: {
8058: onComplete: () => {},
8059: onRecall: async () => {
8060: executed = true;
8061: return { anchorText: "", resultText: "" };
8062: },
8063: ...
Found 21 matches
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/codex-usage-provisional.test.ts:
Line 22: type: "codex.rate_limits",
Line 23: rate_limits: {
Line 48: `event: codex.rate_limits\ndata: ${JSON.stringify(quota)}\n\n${await response.text()}`,
Line 104: .filter((frame) => frame.startsWith("event: codex.rate_limits\n"))
/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/codex-usage-metadata.test.ts:
Line 11: type: "codex.rate_limits",
Line 13: rate_limits: {
Line 58: .filter((frame) => frame.startsWith("event: codex.rate_limits\n"))
Line 72: expect(body.indexOf("codex.rate_limits")).toBeLessThan(
Line 130: `${await upstream([]).text()}event: codex.rate_limits\ndata: ${JSON.stringify(limits)}\n\n`,
Line 169: type: "codex.rate_limits",
Line 171: rate_limits: { primary ...
<path>/home/byk/Code/opencode-lore-responses-projection-review-fix/packages/gateway/test/openai-responses-recall-aware-stream.test.ts</path>
<type>file</type>
<content>
6220: textItem(0, "answer"),
6221: completed("resp_transactional_limit"),
6222: ]);
6223: const client = streamResponsesRecallAware(
6224: streamFrom([
6225: created("resp_transactional_limit_principal", "gpt-5.6-terra"),
6226: recallCall(0, { query: "transactional limit" }),
6227: completed("resp_transactional_limit_principal"),
6228: ]),
6229: {
6230: // Indexed state stays small; the unindexed event must still be bounded. ...