Fix Codex reasoning effort resume and updates

This commit is contained in:
weishu
2026-04-10 11:50:03 +08:00
parent 0e1b653d43
commit 79a13d26c6
34 changed files with 664 additions and 27 deletions
@@ -18,6 +18,7 @@ export function useSessionActions(
setPermissionMode: (mode: PermissionMode) => Promise<void>
setCollaborationMode: (mode: CodexCollaborationMode) => Promise<void>
setModel: (model: string | null) => Promise<void>
setModelReasoningEffort: (modelReasoningEffort: string | null) => Promise<void>
setEffort: (effort: string | null) => Promise<void>
renameSession: (name: string) => Promise<void>
deleteSession: () => Promise<void>
@@ -100,6 +101,22 @@ export function useSessionActions(
onSuccess: () => void invalidateSession(),
})
const modelReasoningEffortMutation = useMutation({
mutationFn: async (modelReasoningEffort: string | null) => {
if (!api || !sessionId) {
throw new Error('Session unavailable')
}
if (agentFlavor !== 'codex') {
throw new Error('Model reasoning effort is only supported for Codex sessions')
}
if (!codexCollaborationModeSupported) {
throw new Error('Model reasoning effort is only supported for remote Codex sessions')
}
await api.setModelReasoningEffort(sessionId, modelReasoningEffort)
},
onSuccess: () => void invalidateSession(),
})
const effortMutation = useMutation({
mutationFn: async (effort: string | null) => {
if (!api || !sessionId) {
@@ -142,6 +159,7 @@ export function useSessionActions(
setPermissionMode: permissionMutation.mutateAsync,
setCollaborationMode: collaborationMutation.mutateAsync,
setModel: modelMutation.mutateAsync,
setModelReasoningEffort: modelReasoningEffortMutation.mutateAsync,
setEffort: effortMutation.mutateAsync,
renameSession: renameMutation.mutateAsync,
deleteSession: deleteMutation.mutateAsync,
@@ -151,6 +169,7 @@ export function useSessionActions(
|| permissionMutation.isPending
|| collaborationMutation.isPending
|| modelMutation.isPending
|| modelReasoningEffortMutation.isPending
|| effortMutation.isPending
|| renameMutation.isPending
|| deleteMutation.isPending,