mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-03-07 23:17:37 +00:00
fix: preserve pending permission requests across WebSocket reconnections (#462)
* fix: preserve pending permission requests across WebSocket reconnections - Store WebSocketWriter reference in active sessions for reconnection - Add reconnectSessionWriter() to swap writer when client reconnects - Add getPendingApprovalsForSession() to query pending permissions by session - Add get-pending-permissions WebSocket message handler on server - Add pending-permissions-response handler on frontend - Query pending permissions on WebSocket reconnect and session change - Reconnect SDK output writer when client resumes an active session * fix: address CodeRabbit review feedback for websocket-permission PR - Use consistent session matching in pending-permissions-response handler, checking both currentSessionId and selectedSession.id (matching the session-status handler pattern) - Guard get-pending-permissions with isClaudeSDKSessionActive check to prevent returning permissions for inactive sessions
This commit is contained in:
@@ -1080,6 +1080,19 @@ export function useChatRealtimeHandlers({
|
||||
break;
|
||||
}
|
||||
|
||||
case 'pending-permissions-response': {
|
||||
// Server returned pending permissions for this session
|
||||
const permSessionId = latestMessage.sessionId;
|
||||
const isCurrentPermSession =
|
||||
permSessionId === currentSessionId || (selectedSession && permSessionId === selectedSession.id);
|
||||
if (permSessionId && !isCurrentPermSession) {
|
||||
break;
|
||||
}
|
||||
const serverRequests = latestMessage.data || [];
|
||||
setPendingPermissionRequests(serverRequests);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user