fix: pin codex resume sandbox override

This commit is contained in:
Peter Steinberger
2026-04-16 17:30:02 +01:00
parent d842ec4179
commit 1183832d4f
6 changed files with 48 additions and 7 deletions

View File

@@ -244,7 +244,14 @@ beforeEach(() => {
"workspace-write",
"--skip-git-repo-check",
],
resumeArgs: ["exec", "resume", "{sessionId}", "--skip-git-repo-check"],
resumeArgs: [
"exec",
"resume",
"{sessionId}",
"-c",
'sandbox_mode="workspace-write"',
"--skip-git-repo-check",
],
systemPromptFileConfigArg: "-c",
systemPromptFileConfigKey: "model_instructions_file",
systemPromptWhen: "first",
@@ -309,7 +316,7 @@ beforeEach(() => {
});
describe("resolveCliBackendConfig reliability merge", () => {
it("defaults codex-cli fresh sandboxing and resume trust bypass for non-git runs", () => {
it("defaults codex-cli fresh sandboxing and config-pinned resume sandboxing", () => {
const resolved = resolveCliBackendConfig("codex-cli");
expect(resolved).not.toBeNull();
@@ -326,6 +333,8 @@ describe("resolveCliBackendConfig reliability merge", () => {
"exec",
"resume",
"{sessionId}",
"-c",
'sandbox_mode="workspace-write"',
"--skip-git-repo-check",
]);
});

View File

@@ -120,7 +120,14 @@ function buildOpenAICodexCliBackendFixture(): CliBackendPlugin {
"workspace-write",
"--skip-git-repo-check",
],
resumeArgs: ["exec", "resume", "{sessionId}", "--skip-git-repo-check"],
resumeArgs: [
"exec",
"resume",
"{sessionId}",
"-c",
'sandbox_mode="workspace-write"',
"--skip-git-repo-check",
],
output: "jsonl",
resumeOutput: "text",
input: "arg",

View File

@@ -33,6 +33,12 @@ type BootstrapContext = {
bootstrapFiles: WorkspaceBootstrapFile[];
contextFiles: EmbeddedContextFile[];
};
function normalizeMockProviderId(providerId?: string): string {
const normalized = normalizeLowercaseStringOrEmpty(providerId);
return normalized === "z.ai" || normalized === "z-ai" ? "zai" : normalized;
}
type SessionManagerMocks = {
getLeafEntry: UnknownMock;
branch: UnknownMock;
@@ -411,7 +417,19 @@ vi.mock("../../../image-generation/runtime.js", () => ({
}));
vi.mock("../../model-selection.js", () => ({
normalizeProviderId: (providerId?: string) => normalizeLowercaseStringOrEmpty(providerId),
findNormalizedProviderValue: <T>(entries: Record<string, T> | undefined, provider: string) => {
if (!entries) {
return undefined;
}
const providerKey = normalizeMockProviderId(provider);
for (const [key, value] of Object.entries(entries)) {
if (normalizeMockProviderId(key) === providerKey) {
return value;
}
}
return undefined;
},
normalizeProviderId: normalizeMockProviderId,
resolveDefaultModelForAgent: () => ({ provider: "openai", model: "gpt-test" }),
}));