Fix assemble runtimeContext CI follow-ups

This commit is contained in:
Codex 2026-03-21 04:54:25 +08:00
parent cee8c865f6
commit c30177a375
3 changed files with 18 additions and 11 deletions

View File

@ -1,5 +1,3 @@
import type { SessionSystemPromptReport } from "../../config/sessions/types.js";
export type EmbeddedAssembleRuntimeContext = {
systemPromptChars?: number;
systemPromptTokensEstimate?: number;
@ -13,9 +11,16 @@ export type EmbeddedAssembleRuntimeContext = {
};
type AssembleRuntimePromptReport = {
systemPrompt?: Pick<SessionSystemPromptReport["systemPrompt"], "chars"> | null;
skills?: Pick<SessionSystemPromptReport["skills"], "promptChars"> | null;
tools?: Pick<SessionSystemPromptReport["tools"], "listChars" | "schemaChars"> | null;
systemPrompt?: {
chars?: number;
} | null;
skills?: {
promptChars?: number;
} | null;
tools?: {
listChars?: number;
schemaChars?: number;
} | null;
};
function normalizeChars(value: unknown): number {

View File

@ -638,13 +638,11 @@ describe("Legacy sessionKey compatibility", () => {
expect(strictEngine.ingestCalls).toHaveLength(2);
expect(strictEngine.ingestCalls[0]).toHaveProperty("sessionKey", "agent:main:test");
expect(strictEngine.ingestCalls[1]).not.toHaveProperty("sessionKey");
expect(strictEngine.assembleCalls).toHaveLength(3);
expect(strictEngine.assembleCalls[0]).toHaveProperty("sessionKey", "agent:main:test");
expect(strictEngine.assembleCalls).toHaveLength(2);
expect(strictEngine.assembleCalls[0]).not.toHaveProperty("sessionKey");
expect(strictEngine.assembleCalls[0]).toHaveProperty("runtimeContext", runtimeContext);
expect(strictEngine.assembleCalls[1]).not.toHaveProperty("sessionKey");
expect(strictEngine.assembleCalls[1]).toHaveProperty("runtimeContext", runtimeContext);
expect(strictEngine.assembleCalls[2]).not.toHaveProperty("sessionKey");
expect(strictEngine.assembleCalls[2]).not.toHaveProperty("runtimeContext");
expect(strictEngine.assembleCalls[1]).not.toHaveProperty("runtimeContext");
});
it("does not retry non-compat runtime errors", async () => {

View File

@ -244,7 +244,11 @@ function wrapContextEngineWithSessionKeyCompat(engine: ContextEngine): ContextEn
if (isLegacy && knownLegacyFields.length > 0 && !hasUntestedCompatFields) {
return method(withoutLegacyCompatFields(params, knownLegacyFields));
}
return invokeWithLegacySessionKeyCompat(method, params, {
const retryParams =
isLegacy && knownLegacyFields.length > 0
? withoutLegacyCompatFields(params, knownLegacyFields)
: params;
return invokeWithLegacySessionKeyCompat(method, retryParams, {
onLegacyModeDetected: (detectedFields) => {
isLegacy = true;
for (const field of detectedFields) {