Repository navigation
feat: import upstream v3.8.51 retained-core routing, translation, and security updates - #17
Merged
Merged
Conversation
claw-io
pushed a commit
that referenced
this pull request
Oct 4, 2026
…#13481 PR #17 (upstream #13481) keyed persisted call_logs rows on the chatCore traceId instead of the pending-request id, but the list endpoint still deduped the finalized in-memory detail against persisted rows by id only. The two id spaces are disjoint (`${now}-${uuid6}` vs a 6-char trace id), so every request emitted a duplicate row sharing its correlationId: the log UI showed a bogus "· 2 attempts" badge, and a genuine 2-attempt retry showed "4 attempts". The same split made the detail modal lose the in-memory request/response payloads for persisted rows when detailed logging is off. Carry the chatCore traceId onto the pending detail as `callLogId` so the in-memory copy shares the persisted row's id space, and match in-memory copies on `callLogId` with a correlation-key fallback (correlationId + model + provider, deliberately excluding connectionId because the in-memory copy keeps the starting account while the persisted row keeps the post-rotation one). Only in-memory copies are ever skipped, so persisted rows sharing a correlationId — real retries — all survive. The persisted write (`id: traceId`) is unchanged.
claw-io
added a commit
that referenced
this pull request
Oct 5, 2026
…#13481 (#18) PR #17 (upstream #13481) keyed persisted call_logs rows on the chatCore traceId instead of the pending-request id, but the list endpoint still deduped the finalized in-memory detail against persisted rows by id only. The two id spaces are disjoint (`${now}-${uuid6}` vs a 6-char trace id), so every request emitted a duplicate row sharing its correlationId: the log UI showed a bogus "· 2 attempts" badge, and a genuine 2-attempt retry showed "4 attempts". The same split made the detail modal lose the in-memory request/response payloads for persisted rows when detailed logging is off. Carry the chatCore traceId onto the pending detail as `callLogId` so the in-memory copy shares the persisted row's id space, and match in-memory copies on `callLogId` with a correlation-key fallback (correlationId + model + provider, deliberately excluding connectionId because the in-memory copy keeps the starting account while the persisted row keeps the post-rotation one). Only in-memory copies are ever skipped, so persisted rows sharing a correlationId — real retries — all survive. The persisted write (`id: traceId`) is unchanged. Co-authored-by: b3nw <189466+b3nw@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Imports 68 selected, verified upstream pull requests from the
v3.8.51release tranche into OmniRoute-Slim retained core, plus preserves the deployed Flash-Lite thinking budget hotfix (7d587efd/bde3756e) and fixes upstream issue #14165 (/v1betaformat detection via PR #14185).Key Changes
Protocol Translators & Routing:
/v1betaingress bodies as OpenAI format rather than misidentifying as Claude (#14165).false,0,"") without 400 rejection.tool_choice: "none"across Claude <-> OpenAI translations.functionCallwithout precedinguserturn.Security & Isolation (P0):
/v1/responsessubpath.Schema Sanitization & Tools:
prefixItemsandadditionalItemsfrom Gemini tool schemas.~optional).SSE & Streaming Lifecycle:
Memory Mitigations & Context Compression:
<system-reminder>and instruction blocks from lossy compression.Verification & Validation
npm run typecheck:coreandnpm run check:open-sse-typecheckpass.omniroute-slim-dev.omnirouteondocker.dfw.