remove , using instead

This commit is contained in:
weishu
2026-03-16 18:29:09 +08:00
parent 02c8e12e80
commit 329d28a93c
40 changed files with 384 additions and 285 deletions
+5 -5
View File
@@ -1,7 +1,7 @@
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { isPermissionModeAllowedForFlavor } from '@hapi/protocol'
import type { ApiClient } from '@/api/client'
import type { ModelMode, PermissionMode } from '@/types/api'
import type { PermissionMode } from '@/types/api'
import { queryKeys } from '@/lib/query-keys'
import { clearMessageWindow } from '@/lib/message-window-store'
import { isKnownFlavor } from '@/lib/agentFlavorUtils'
@@ -15,7 +15,7 @@ export function useSessionActions(
archiveSession: () => Promise<void>
switchSession: () => Promise<void>
setPermissionMode: (mode: PermissionMode) => Promise<void>
setModelMode: (mode: ModelMode) => Promise<void>
setModel: (model: string | null) => Promise<void>
renameSession: (name: string) => Promise<void>
deleteSession: () => Promise<void>
isPending: boolean
@@ -72,11 +72,11 @@ export function useSessionActions(
})
const modelMutation = useMutation({
mutationFn: async (mode: ModelMode) => {
mutationFn: async (model: string | null) => {
if (!api || !sessionId) {
throw new Error('Session unavailable')
}
await api.setModelMode(sessionId, mode)
await api.setModel(sessionId, model)
},
onSuccess: () => void invalidateSession(),
})
@@ -111,7 +111,7 @@ export function useSessionActions(
archiveSession: archiveMutation.mutateAsync,
switchSession: switchMutation.mutateAsync,
setPermissionMode: permissionMutation.mutateAsync,
setModelMode: modelMutation.mutateAsync,
setModel: modelMutation.mutateAsync,
renameSession: renameMutation.mutateAsync,
deleteSession: deleteMutation.mutateAsync,
isPending: abortMutation.isPending
+4 -9
View File
@@ -30,7 +30,7 @@ const RECONNECT_MAX_DELAY_MS = 30_000
const RECONNECT_JITTER_MS = 500
const INVALIDATION_BATCH_MS = 16
type SessionPatch = Partial<Pick<Session, 'active' | 'thinking' | 'activeAt' | 'updatedAt' | 'model' | 'permissionMode' | 'modelMode'>>
type SessionPatch = Partial<Pick<Session, 'active' | 'thinking' | 'activeAt' | 'updatedAt' | 'model' | 'permissionMode'>>
function sortSessionSummaries(left: SessionSummary, right: SessionSummary): number {
if (left.active !== right.active) {
@@ -81,7 +81,7 @@ function getSessionPatch(value: unknown): SessionPatch | null {
patch.updatedAt = value.updatedAt
hasKnownPatch = true
}
if (typeof value.model === 'string') {
if (value.model === null || typeof value.model === 'string') {
patch.model = value.model
hasKnownPatch = true
}
@@ -89,10 +89,6 @@ function getSessionPatch(value: unknown): SessionPatch | null {
patch.permissionMode = value.permissionMode as Session['permissionMode']
hasKnownPatch = true
}
if (typeof value.modelMode === 'string') {
patch.modelMode = value.modelMode as Session['modelMode']
hasKnownPatch = true
}
return hasKnownPatch ? patch : null
}
@@ -101,7 +97,7 @@ function hasUnknownSessionPatchKeys(value: unknown): boolean {
if (!hasRecordShape(value)) {
return false
}
const knownKeys = new Set(['active', 'thinking', 'activeAt', 'updatedAt', 'model', 'permissionMode', 'modelMode'])
const knownKeys = new Set(['active', 'thinking', 'activeAt', 'updatedAt', 'model', 'permissionMode'])
return Object.keys(value).some((key) => !knownKeys.has(key))
}
@@ -386,8 +382,7 @@ export function useSSE(options: {
thinking: patch.thinking ?? current.thinking,
activeAt: patch.activeAt ?? current.activeAt,
updatedAt: patch.updatedAt ?? current.updatedAt,
model: patch.model ?? current.model,
modelMode: patch.modelMode ?? current.modelMode
model: Object.prototype.hasOwnProperty.call(patch, 'model') ? patch.model ?? null : current.model
}
patched = true