1
+ import { toast } from "@hypr/ui/components/ui/toast" ;
1
2
import { useMutation } from "@tanstack/react-query" ;
2
3
import usePreviousValue from "beautiful-react-hooks/usePreviousValue" ;
3
4
import { motion } from "motion/react" ;
@@ -163,16 +164,29 @@ export function useEnhanceMutation({
163
164
const enhance = useMutation ( {
164
165
mutationKey : [ "enhance" , sessionId ] ,
165
166
mutationFn : async ( ) => {
166
- const { type } = await connectorCommands . getLlmConnection ( ) ;
167
-
168
- const config = await dbCommands . getConfig ( ) ;
169
- const participants = await dbCommands . sessionListParticipants ( sessionId ) ;
170
-
171
167
const fn = sessionId === onboardingSessionId
172
168
? dbCommands . getTimelineViewOnboarding
173
169
: dbCommands . getTimelineView ;
170
+
174
171
const timeline = await fn ( sessionId ) ;
175
172
173
+ if ( ! timeline ?. items . length ) {
174
+ toast ( {
175
+ id : "short-timeline" ,
176
+ title : "Enhancing Skipped" ,
177
+ content : "The conversation is too short to enhance" ,
178
+ dismissible : true ,
179
+ duration : 15000 ,
180
+ } ) ;
181
+
182
+ return ;
183
+ }
184
+
185
+ const { type } = await connectorCommands . getLlmConnection ( ) ;
186
+
187
+ const config = await dbCommands . getConfig ( ) ;
188
+ const participants = await dbCommands . sessionListParticipants ( sessionId ) ;
189
+
176
190
const systemMessage = await templateCommands . render (
177
191
"enhance.system" ,
178
192
{ config, type } ,
@@ -189,17 +203,17 @@ export function useEnhanceMutation({
189
203
) ;
190
204
191
205
const abortController = new AbortController ( ) ;
192
- const timeoutSignal = AbortSignal . timeout ( 60 * 1000 ) ;
193
- const combinedSignal = AbortSignal . any ( [ abortController . signal , timeoutSignal ] ) ;
206
+ const abortSignal = AbortSignal . any ( [ abortController . signal , AbortSignal . timeout ( 60 * 1000 ) ] ) ;
194
207
setEnhanceController ( abortController ) ;
195
208
196
209
const provider = await modelProvider ( ) ;
210
+ const model = sessionId === onboardingSessionId
211
+ ? provider . languageModel ( "onboardingModel" )
212
+ : provider . languageModel ( "defaultModel" ) ;
197
213
198
214
const { text, textStream } = streamText ( {
199
- abortSignal : combinedSignal ,
200
- model : sessionId === onboardingSessionId
201
- ? provider . languageModel ( "onboardingModel" )
202
- : provider . languageModel ( "defaultModel" ) ,
215
+ abortSignal,
216
+ model,
203
217
messages : [
204
218
{ role : "system" , content : systemMessage } ,
205
219
{ role : "user" , content : userMessage } ,
0 commit comments