@@ -41,6 +41,7 @@ interface ChatContextValue {
4141 renameSession : ( sessionId : string , summary : string ) => Promise < void > ;
4242 deleteSession : ( sessionId : string ) => Promise < void > ;
4343 dismissContinuePrompt : ( ) => void ;
44+ continueGeneration : ( ) => Promise < void > ;
4445 } ;
4546}
4647
@@ -93,20 +94,12 @@ function appReducer(state: AppState, action: AppAction): AppState {
9394 permissionPromptState : null ,
9495 pendingPermissionReply : null ,
9596 loading : action . status === "processing" || action . status === "pending" ,
96- showContinuePrompt :
97- action . status === "interrupted"
98- ? localStorage . getItem ( `deepcode:continuePromptDismissed:${ action . sessionId } ` ) !== "1"
99- : false ,
97+ showContinuePrompt : action . status === "interrupted" ,
10098 } ;
10199 case "SET_SESSIONS" :
102100 return { ...state , sessions : action . sessions } ;
103101 case "SESSION_STATUS" : {
104102 const isInterrupted = action . status === "interrupted" ;
105- const sessionId = action . sessionId || state . activeSessionId ;
106- const dismissed =
107- isInterrupted && sessionId
108- ? localStorage . getItem ( `deepcode:continuePromptDismissed:${ sessionId } ` ) === "1"
109- : true ;
110103
111104 return {
112105 ...state ,
@@ -115,7 +108,7 @@ function appReducer(state: AppState, action: AppAction): AppState {
115108 processes : action . processes ?? state . processes ,
116109 tokenTelemetry : action . tokenTelemetry ?? state . tokenTelemetry ,
117110 loading : action . status === "processing" || action . status === "pending" ,
118- showContinuePrompt : isInterrupted && ! dismissed ,
111+ showContinuePrompt : isInterrupted ,
119112 } ;
120113 }
121114 case "LLM_STREAM_PROGRESS" :
@@ -124,7 +117,12 @@ function appReducer(state: AppState, action: AppAction): AppState {
124117 }
125118 return { ...state , llmStreamProgress : action . progress } ;
126119 case "USER_MESSAGE" : {
127- const newMsg : SessionMessage = { role : "user" , content : action . content , meta : action . meta } ;
120+ const newMsg : SessionMessage = {
121+ id : crypto . randomUUID ( ) ,
122+ role : "user" ,
123+ content : action . content ,
124+ meta : action . meta ,
125+ } ;
128126 return {
129127 ...state ,
130128 messages : [ ...state . messages , newMsg ] ,
@@ -399,11 +397,17 @@ export function ChatProvider({ children }: ChatProviderProps) {
399397 ) ;
400398
401399 const dismissContinuePrompt = useCallback ( ( ) => {
402- if ( state . activeSessionId ) {
403- localStorage . setItem ( `deepcode:continuePromptDismissed:${ state . activeSessionId } ` , "1" ) ;
404- }
405400 dispatch ( { type : "DISMISS_CONTINUE_PROMPT" } ) ;
406- } , [ state . activeSessionId ] ) ;
401+ } , [ ] ) ;
402+
403+ const continueGeneration = useCallback ( async ( ) => {
404+ dispatch ( { type : "DISMISS_CONTINUE_PROMPT" } ) ;
405+ try {
406+ await chatService . sendPrompt ( { prompt : "/continue" } ) ;
407+ } catch ( err ) {
408+ console . error ( "[ChatProvider] continueGeneration failed:" , err ) ;
409+ }
410+ } , [ ] ) ;
407411
408412 const contextValue : ChatContextValue = {
409413 state,
@@ -419,6 +423,7 @@ export function ChatProvider({ children }: ChatProviderProps) {
419423 renameSession,
420424 deleteSession,
421425 dismissContinuePrompt,
426+ continueGeneration,
422427 } ,
423428 } ;
424429
0 commit comments