






















@@ -851,7 +851,7 @@ describe("runCodexAppServerAttempt", () => {
851851approvalPolicy: "on-request",
852852approvalsReviewer: "guardian_subagent",
853853sandbox: "danger-full-access",
854-serviceTier: "priority",
854+serviceTier: "fast",
855855},
856856},
857857});
@@ -866,7 +866,7 @@ describe("runCodexAppServerAttempt", () => {
866866approvalPolicy: "on-request",
867867approvalsReviewer: "guardian_subagent",
868868sandbox: "danger-full-access",
869-serviceTier: "priority",
869+serviceTier: "fast",
870870developerInstructions: expect.stringContaining(CODEX_GPT5_BEHAVIOR_CONTRACT),
871871persistExtendedHistory: true,
872872});
@@ -877,14 +877,43 @@ describe("runCodexAppServerAttempt", () => {
877877params: expect.objectContaining({
878878approvalPolicy: "on-request",
879879approvalsReviewer: "guardian_subagent",
880-serviceTier: "priority",
880+serviceTier: "fast",
881881model: "gpt-5.4-codex",
882882}),
883883},
884884]),
885885);
886886});
887887888+it("drops invalid legacy service tiers before app-server resume and turn requests", async () => {
889+const sessionFile = path.join(tempDir, "session.jsonl");
890+const workspaceDir = path.join(tempDir, "workspace");
891+await writeExistingBinding(sessionFile, workspaceDir, { model: "gpt-5.2" });
892+const { requests, waitForMethod, completeTurn } = createResumeHarness();
893+894+const run = runCodexAppServerAttempt(createParams(sessionFile, workspaceDir), {
895+pluginConfig: {
896+appServer: {
897+approvalPolicy: "on-request",
898+sandbox: "danger-full-access",
899+serviceTier: "priority",
900+},
901+},
902+});
903+await waitForMethod("turn/start");
904+await completeTurn({ threadId: "thread-existing", turnId: "turn-1" });
905+await run;
906+907+const resumeRequest = requests.find((request) => request.method === "thread/resume");
908+expect(resumeRequest?.params).toEqual(
909+expect.not.objectContaining({ serviceTier: expect.anything() }),
910+);
911+const turnRequest = requests.find((request) => request.method === "turn/start");
912+expect(turnRequest?.params).toEqual(
913+expect.not.objectContaining({ serviceTier: expect.anything() }),
914+);
915+});
916+888917it("builds resume and turn params from the currently selected OpenClaw model", () => {
889918const params = createParams("/tmp/session.jsonl", "/tmp/workspace");
890919const appServer = {
@@ -898,7 +927,7 @@ describe("runCodexAppServerAttempt", () => {
898927approvalPolicy: "on-request" as const,
899928approvalsReviewer: "guardian_subagent" as const,
900929sandbox: "danger-full-access" as const,
901-serviceTier: "priority",
930+serviceTier: "flex" as const,
902931};
903932904933expect(buildThreadResumeParams(params, { threadId: "thread-1", appServer })).toEqual({
@@ -908,7 +937,7 @@ describe("runCodexAppServerAttempt", () => {
908937approvalPolicy: "on-request",
909938approvalsReviewer: "guardian_subagent",
910939sandbox: "danger-full-access",
911-serviceTier: "priority",
940+serviceTier: "flex",
912941developerInstructions: expect.stringContaining(CODEX_GPT5_BEHAVIOR_CONTRACT),
913942persistExtendedHistory: true,
914943});
@@ -921,7 +950,7 @@ describe("runCodexAppServerAttempt", () => {
921950model: "gpt-5.4-codex",
922951approvalPolicy: "on-request",
923952approvalsReviewer: "guardian_subagent",
924-serviceTier: "priority",
953+serviceTier: "flex",
925954}),
926955);
927956});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。