Fix Codex default approval policy for remote sessions (#328)

This commit is contained in:
pppobear
2026-03-20 18:45:18 +08:00
committed by GitHub
parent a02f908dc5
commit ae39fc5e77
3 changed files with 35 additions and 1 deletions
@@ -27,6 +27,17 @@ describe('appServerConfig', () => {
});
});
it('uses on-request approvals for default Codex threads', () => {
const params = buildThreadStartParams({
cwd: '/workspace/project',
mode: { permissionMode: 'default', collaborationMode: 'default' },
mcpServers
});
expect(params.sandbox).toBe('workspace-write');
expect(params.approvalPolicy).toBe('on-request');
});
it('ignores CLI overrides when permission mode is not default', () => {
const params = buildThreadStartParams({
cwd: '/workspace/project',
@@ -0,0 +1,20 @@
import { describe, expect, it } from 'vitest';
import { resolveCodexPermissionModeConfig } from './permissionModeConfig';
describe('resolveCodexPermissionModeConfig', () => {
it('uses on-request approvals for default mode', () => {
expect(resolveCodexPermissionModeConfig('default')).toEqual({
approvalPolicy: 'on-request',
sandbox: 'workspace-write',
sandboxPolicy: { type: 'workspaceWrite' }
});
});
it('keeps safe-yolo escalation on failure', () => {
expect(resolveCodexPermissionModeConfig('safe-yolo')).toEqual({
approvalPolicy: 'on-failure',
sandbox: 'workspace-write',
sandboxPolicy: { type: 'workspaceWrite' }
});
});
});
+4 -1
View File
@@ -11,7 +11,10 @@ export function resolveCodexPermissionModeConfig(mode: CodexPermissionMode): Cod
switch (mode) {
case 'default':
return {
approvalPolicy: 'untrusted',
// Remote Codex sessions rely on HAPI's approval UI for sandbox escalation.
// `on-request` keeps workspace-write sandboxing while still surfacing a
// user-approvable elevation request when the model needs it.
approvalPolicy: 'on-request',
sandbox: 'workspace-write',
sandboxPolicy: { type: 'workspaceWrite' }
};