@@ -137,35 +137,36 @@ export const ChatImpl = memo(
137137
138138 const [ apiKeys , setApiKeys ] = useState < Record < string , string > > ( { } ) ;
139139
140- const { messages, isLoading, input, handleInputChange, setInput, stop, append, setMessages, reload } = useChat ( {
141- api : '/api/chat' ,
142- body : {
143- apiKeys,
144- files,
145- promptId,
146- contextOptimization : contextOptimizationEnabled ,
147- } ,
148- sendExtraMessageFields : true ,
149- onError : ( error ) => {
150- logger . error ( 'Request failed\n\n' , error ) ;
151- toast . error (
152- 'There was an error processing your request: ' + ( error . message ? error . message : 'No details were returned' ) ,
153- ) ;
154- } ,
155- onFinish : ( message , response ) => {
156- const usage = response . usage ;
157-
158- if ( usage ) {
159- console . log ( 'Token usage:' , usage ) ;
160-
161- // You can now use the usage data as needed
162- }
140+ const { messages, isLoading, input, handleInputChange, setInput, stop, append, setMessages, reload, error } =
141+ useChat ( {
142+ api : '/api/chat' ,
143+ body : {
144+ apiKeys,
145+ files,
146+ promptId,
147+ contextOptimization : contextOptimizationEnabled ,
148+ } ,
149+ sendExtraMessageFields : true ,
150+ onError : ( e ) => {
151+ logger . error ( 'Request failed\n\n' , e , error ) ;
152+ toast . error (
153+ 'There was an error processing your request: ' + ( e . message ? e . message : 'No details were returned' ) ,
154+ ) ;
155+ } ,
156+ onFinish : ( message , response ) => {
157+ const usage = response . usage ;
163158
164- logger . debug ( 'Finished streaming' ) ;
165- } ,
166- initialMessages,
167- initialInput : Cookies . get ( PROMPT_COOKIE_KEY ) || '' ,
168- } ) ;
159+ if ( usage ) {
160+ console . log ( 'Token usage:' , usage ) ;
161+
162+ // You can now use the usage data as needed
163+ }
164+
165+ logger . debug ( 'Finished streaming' ) ;
166+ } ,
167+ initialMessages,
168+ initialInput : Cookies . get ( PROMPT_COOKIE_KEY ) || '' ,
169+ } ) ;
169170 useEffect ( ( ) => {
170171 const prompt = searchParams . get ( 'prompt' ) ;
171172
@@ -263,6 +264,10 @@ export const ChatImpl = memo(
263264 */
264265 await workbenchStore . saveAllFiles ( ) ;
265266
267+ if ( error != null ) {
268+ setMessages ( messages . slice ( 0 , - 1 ) ) ;
269+ }
270+
266271 const fileModifications = workbenchStore . getFileModifcations ( ) ;
267272
268273 chatStore . setKey ( 'aborted' , false ) ;
0 commit comments