Dashboard › opencode-lore › Distillation
a26e0130-82d6-4123-81a4-e5e4afd3aa31["lore_tm_v1_wvqjfuajaTFnTjgXpOPxK9WHPJ0FmwgYFtMeJsmbPcA","lore_tm_v1_CrAhRcM75_rs2ka6YDH9U82dkf7Ub37Zoqdg15DCVA4","lore_tm_v1_8GoSh8GWgKndk8KsuKOrI_KHVWyjICdBijH_OSel0ac","lore_tm_v1_lA5iRd1mbISFU_lZ9sCNUNKNAwseeNzMI1vRl-U51Gc","lore_tm_v1_1aYCmXahIIoEqHWPKTxBVH1RRyvNsjrTz3XO8TAAbC0","lore_tm_v1_aM8NcP5IwOFlMFAXSQmHxSpC7L9EBODNOeyU67SNLC0","lore_tm_v1_nIVbwM4MM22FqHweaPe-f8hzrH02fLz1OqffmBFigLw","lore_tm_v1_p62kN4TdAYnnulYmPs-PXF5Hoo3TMiywDLXNTMfD0p0","lore_tm_v1_AHCVYhYedaIgr6F4FvXlVCHe1r5-JhOp5W2Dvv6odUs","lore_tm_v1_tEj-MqowOdmAsm9l0egbDhGhYUJnHHw2Qc7nqGY5dzY","lore_tm_v1_vKFxOrsV8xcF9CUs-QM0eO38HNe_VcpigsZa5_X6984","lore_tm_v1_GxLIXUqDSIPMPVayatC1nw6M8bXL31L2FlpRlZsA4Jw","lore_tm_v1_T-Sa6544dryaM9qAQEVrpI02fxcAfd2fw96JZD4FR2E","lore_tm_v1__RUxPykJZHvgOauRDziXToBAVwV0LBg4XeenaVxs2ts","lore_tm_v1_wu7rcWYVK7Ongab9nVs10IHtub2xNerMLps9ojjMoTg","lore_tm_v1_bZQtYWLKdldOKLdsdKiFZS6E9iKUxLAhRVhV8Nb7zLo","lore_tm_v1_9dQENp6gJyAY8fQqzq1mZi_SyEqHtrUcGngeS1gVFmE","lore_tm_v1_Y2oZYP-974XjmAmvDx2MUZe1ZXzI3Vm2TSiJlCwnWos"]
Date: Sep 16, 2026
packages/gateway/src/pipeline.ts:12064-12071, it is parsed only to preserve validated usage metadata before throwing NonStreamCompletionError.2cbf40060c67df229731cf1b9e34d5bf22ec2145; head change spyyzvyyyqxs; head commit 3f3ae768fde5b08b5c8e5dced647e361fddfd5aa; clean empty child rkqkzwmozkxz at e8fbf605d765379e541ce09cd5f2f9b8c126d883, whose parent was the expected head. The base-to-head candidate range had no conflicts, though Jujutsu warned that unrelated bookmark fix/responses-private-references was conflicted.0bb7846a803d07be809d2cbd5220ad78aa8503c56eddb3efcd5c5dea8c29beed; it remained identical before and after validation, and the working copy remained clean.packages/gateway/src/codex-rate-limits.ts; modified packages/gateway/src/pipeline.ts, packages/gateway/src/recall.ts, packages/gateway/src/stream/openai-responses.ts, packages/gateway/src/translate/openai-responses.ts, packages/gateway/test/codex-usage-metadata.test.ts, packages/gateway/test/openai-responses-recall-aware-stream.test.ts, packages/gateway/test/pipeline-streaming.test.ts, packages/gateway/test/recall-buffered-transaction.test.ts, packages/gateway/test/recall-exhaustion.test.ts, and packages/gateway/test/recall.test.ts.packages/gateway/test/foreground-body-limit.test.ts failures found the root cause: candidate-added assertSuccessfulResponsesCompletion() at packages/gateway/src/stream/openai-responses.ts:255-282, specifically lines 274-280, rejected every output item with a defined status other than "completed". Existing valid fixtures used "failed" for function_call at lines 292-298 and image_generation_call at lines 300-303; the check was reached through packages/gateway/src/pipeline.ts:12163.assertSuccessfulResponsesCompletion() validates response.usage with validateResponsesUsage(), requires response status "completed", nonempty id and model, an array output, numeric input_tokens and output_tokens, and no non-null error; it additionally required each output item to be a record with either no status or status "completed".packages/gateway/src/pipeline.ts:12039-12084 parses OpenAI Responses non-stream envelopes with parseResponsesNonStreamEnvelope(). Status "completed" or "incomplete" invokes assertValidNonStreamCompletion(); non-"completed" status throws ResponsesTerminalError, while preserveIncompleteResponsesTerminal() returns the response only for status "incomplete".packages/gateway/src/pipeline.ts:12148-12264 requires supported, nonempty, unique output-item identities. message items require role "assistant", valid status, and output_text/refusal content; function_call requires unique nonempty call_id, nonempty name, string arguments, and valid status; reasoning allows omitted or valid status and validates summary_text, reasoning_text, and optional string encrypted_content; standalone non-stream item_reference is rejected because it cannot be resolved against a streamed lifecycle and would silently erase provider output during normalization.packages/gateway/src/stream/openai-responses.ts imported appendCodexRateLimitEvent from ../codex-rate-limits; applyResponsesEvent() now returns an accepted normalized Codex rate-limit event or undefined, replacing inline copying of plan_type, rate_limits, credits, metered_limit_name, and limit_name. onValidatedEvent forwards codex.rate_limits only when accepted and serializes the accepted normalized event.requireSuccessfulCompletion?: boolean; when enabled, terminal response.completed or response.done events must contain a record-valued parsed.response that passes assertSuccessfulResponsesCompletion(), otherwise "upstream Responses request did not complete" is thrown.packages/gateway/test/cli-signal-lifecycle.test.ts uses production bundle packages/gateway/dist/bin.cjs, TEST_TIMEOUT_MS = 30_000, and real child processes. waitForExit() sends SIGKILL and rejects after TEST_TIMEOUT_MS - 1000; cleanup kills surviving children, destroys sockets, and recursively removes temporary directories.NODE_ENV=test, LORE_DB_PATH=<temp-dir>/lore.db, XDG_DATA_HOME=<temp-dir>, LORE_NO_UPDATE_CHECK=1, and SENTRY_ENABLED=0. The stalled-connection test additionally sets LORE_SHUTDOWN_TIMEOUT_MS=500, opens a partial GET /health HTTP/1.1 socket, and sends authenticated POST /_lore/control.core/test 184, core/eval 3, gateway/test 286, opencode/test 7, and pi/test 6.vitest.config.ts:29 to load packages/core/test/setup.ts; setup.ts:11-12 creates /tmp/lore-test-* and sets LORE_DB_PATH to its test.db. No production database was accessed./tmp/lore-test-* directories were created between 2026-09-16T19:40:04 and 2026-09-16T19:57:32: 13 retained test.db, test.db-shm, and test.db-wal, while 17 were empty. They were intentionally left untouched.WORKSPACE_WORKER_COUNT was 0.python executable: /usr/bin/bash: line 1: python: command not found.packages/gateway/dist/index.cjs=1f59aa6b1d436bb0c9ab39507b5b06cbd41a94e0866195f966b2bef6f922471e; packages/gateway/dist/index.cjs.map=e9d6b53a0492a11f351ab4359851013d98e0449cca76c14531223f4f3eefc789; packages/gateway/dist/index.bun.js=4be3104a3b1b970ea2d7927194fe8587c038945d27e02382374d1b60ded6510b; packages/gateway/dist/embedding-worker.cjs=23e8d7b5a7ce15bfa769fd948d75fb616599a3e13b84cc056932ef0abd9f2393; packages/gateway/dist/embedding-worker.js=73335bf3711ff7ea9b693206c44b99db734d4e2f2f1f0d962276d28b77790276; packages/gateway/dist/vector-worker.cjs=5697d0d8cfdfa8ed0bb992901f21bd35a03a8ee95c9157557222161ae9833900; packages/gateway/dist/vector-worker.js=41d02c00055a0220aa5b40a20235439f88534c2e8cbb0a76b39dd6f84d4f49d3; packages/gateway/dist/ort-wasm-simd-threaded.mjs=43c25054b6b9ac000f786c65545ff83a45f871e0e310e8c2f4d48a363bb66db4; packages/gateway/dist/ort-wasm-simd-threaded.wasm=f061472c6e77d6d50d079aacdc0ff9b63fee287ddd2cbf46cf62438d3891de2b; packages/gateway/dist/bin.cjs=17fb4c7c81ae02493349a6be7dbf55f2f2ac9bbdbe0ed67423149ab9022e367f; packages/gateway/dist/index.d.cts=4088c397157706b002531581dd770be40200a0b4c2744f527552794057954597.index.cjs and index.bun.js sizes.repo-setup skill was unavailable in the tool inventory, so repository instructions and scripts were read directly instead.