mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-26 09:52:11 +03:00
fix in-flight request payload sync (#3940)
Integrated into release/v3.8.26 — keep pendingById in sync with the queue detail (Object.assign in place). Validated alongside #3937: typecheck:core clean, 42/42 request-logger + lifecycle tests, eslint 0 errors, file-size OK.
This commit is contained in:
@@ -305,7 +305,7 @@ export function updatePendingRequest(
|
||||
const details = pendingRequests.details[connectionId]?.[modelKey];
|
||||
if (!details?.length) return;
|
||||
const lastIdx = details.length - 1;
|
||||
details[lastIdx] = { ...details[lastIdx], ...normalizePendingMetadata(metadata) };
|
||||
Object.assign(details[lastIdx], normalizePendingMetadata(metadata));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -87,6 +87,40 @@ test("updatePendingRequestStreamChunks stores stream chunks in the detail", () =
|
||||
assert.equal(detail.streamChunks.provider[0], 'data: {"a":1}');
|
||||
});
|
||||
|
||||
test("updatePendingRequest keeps pending detail API view in sync", () => {
|
||||
usageHistory.clearPendingRequests();
|
||||
const requestId = usageHistory.trackPendingRequest(
|
||||
"claude-sonnet-4-6",
|
||||
"cc-test",
|
||||
"conn-1",
|
||||
true,
|
||||
{
|
||||
clientRequest: { model: "cc-test/claude-sonnet-4-6", reasoning_effort: "xhigh" },
|
||||
providerRequest: { model: "claude-sonnet-4-6", reasoning_effort: "xhigh" },
|
||||
}
|
||||
);
|
||||
assert.ok(requestId, "trackPendingRequest should return an id");
|
||||
|
||||
usageHistory.updatePendingRequest("claude-sonnet-4-6", "cc-test", "conn-1", {
|
||||
providerRequest: { model: "claude-sonnet-4-6", reasoning_effort: "high" },
|
||||
stage: "provider_response_started",
|
||||
});
|
||||
|
||||
const modelKey = "claude-sonnet-4-6 (cc-test)";
|
||||
const detailFromQueue = usageHistory.getPendingRequests().details["conn-1"]?.[modelKey]?.[0];
|
||||
const detailFromId = usageHistory.getPendingById().get(requestId);
|
||||
|
||||
assert.equal(detailFromId, detailFromQueue);
|
||||
assert.deepEqual(detailFromId?.providerRequest, {
|
||||
model: "claude-sonnet-4-6",
|
||||
reasoning_effort: "high",
|
||||
});
|
||||
assert.deepEqual(detailFromId?.clientRequest, {
|
||||
model: "cc-test/claude-sonnet-4-6",
|
||||
reasoning_effort: "xhigh",
|
||||
});
|
||||
});
|
||||
|
||||
test("updatePendingRequestStreamChunks stores empty streamChunks object (not null)", () => {
|
||||
usageHistory.clearPendingRequests();
|
||||
usageHistory.trackPendingRequest("gpt-4", "openai", "conn-1", true);
|
||||
|
||||
Reference in New Issue
Block a user