fix(terminal): prevent infinite reconnect loop on Windows hosts (#336)

This commit is contained in:
lifu963
2026-03-21 21:45:40 +08:00
committed by GitHub
parent ae39fc5e77
commit 895654ddf6
12 changed files with 165 additions and 21 deletions
+4 -1
View File
@@ -18,6 +18,7 @@ import { usePlatform } from '@/hooks/usePlatform'
import { useSessionActions } from '@/hooks/mutations/useSessionActions'
import { useVoiceOptional } from '@/lib/voice-context'
import { RealtimeVoiceSession, registerSessionStore, registerVoiceHooksStore, voiceHooks } from '@/realtime'
import { isRemoteTerminalSupported } from '@/utils/terminalSupport'
export function SessionChat(props: {
api: ApiClient
@@ -42,6 +43,7 @@ export function SessionChat(props: {
const { haptic } = usePlatform()
const navigate = useNavigate()
const sessionInactive = !props.session.active
const terminalSupported = isRemoteTerminalSupported(props.session.metadata)
const normalizedCacheRef = useRef<Map<string, { source: DecryptedMessage; normalized: NormalizedMessage | null }>>(new Map())
const blocksByIdRef = useRef<Map<string, ChatBlock>>(new Map())
const [forceScrollToken, setForceScrollToken] = useState(0)
@@ -345,7 +347,8 @@ export function SessionChat(props: {
onPermissionModeChange={handlePermissionModeChange}
onModelChange={handleModelChange}
onSwitchToRemote={handleSwitchToRemote}
onTerminal={props.session.active ? handleViewTerminal : undefined}
onTerminal={props.session.active && terminalSupported ? handleViewTerminal : undefined}
terminalUnsupported={props.session.active && !terminalSupported}
autocompleteSuggestions={props.autocompleteSuggestions}
voiceStatus={voice?.status}
voiceMicMuted={voice?.micMuted}