@@ -14,6 +14,7 @@ import { showToast } from "../lib/toast";
1414import { useSendErrorStore } from "../stores/sendErrorStore" ;
1515import { useSessionStatus } from "../stores/sessionStatusStore" ;
1616import { invalidateSessionListCaches , messagesQueryKey } from "../lib/queryInvalidation" ;
17+ import { reconcileConfirmedPrompt } from "../lib/sendErrorReconcile" ;
1718
1819type AssistantMessage = components [ "schemas" ] [ "AssistantMessage" ] ;
1920
@@ -156,34 +157,6 @@ export const useMessages = (opcodeUrl: string | null | undefined, sessionID: str
156157 } ) ;
157158} ;
158159
159- const getUserMessageText = ( message : MessageWithParts ) => {
160- if ( message . info . role !== 'user' ) return ''
161- return message . parts
162- . map ( ( part ) => part . type === 'text' ? part . text || '' : '' )
163- . join ( '' )
164- . trim ( )
165- }
166-
167- const hasUserMessageText = ( messages : MessageWithParts [ ] , prompt : string ) => {
168- const expected = prompt . trim ( )
169- if ( ! expected ) return false
170- return messages . some ( ( message ) => getUserMessageText ( message ) === expected )
171- }
172-
173- const reconcileConfirmedPrompt = ( sessionID : string , messages : MessageWithParts [ ] ) => {
174- const sendErrorStore = useSendErrorStore . getState ( )
175- const sendError = sendErrorStore . getError ( sessionID )
176- const queuedPrompt = sendErrorStore . queuedPrompts [ sessionID ]
177-
178- if ( sendError ?. kind === 'network' && sendError . failedPrompt && hasUserMessageText ( messages , sendError . failedPrompt ) ) {
179- sendErrorStore . clearNetworkError ( sessionID )
180- }
181-
182- if ( queuedPrompt && hasUserMessageText ( messages , queuedPrompt ) ) {
183- sendErrorStore . clearQueuedPrompt ( sessionID )
184- }
185- }
186-
187160export const useCreateSession = (
188161 opcodeUrl : string | null | undefined ,
189162 directory ?: string ,
0 commit comments