@@ -54,6 +54,7 @@ function RunWorkflowPageInner() {
5454 const [ sourceType , setSourceType ] = useState < "upload" | "existing" | "git" > ( "upload" ) ;
5555 const [ uploadKey , setUploadKey ] = useState ( Date . now ( ) ) ;
5656 const [ code , setCode ] = useState ( "" ) ;
57+ const [ analysisFiles , setAnalysisFiles ] = useState < Record < string , string > > ( { } ) ; // NEW: Preserve analyzed files
5758 const [ selectedFile , setSelectedFile ] = useState ( "" ) ;
5859 const [ selectedFolder , setSelectedFolder ] = useState ( "" ) ;
5960 const [ folderList , setFolderList ] = useState < string [ ] > ( [ ] ) ;
@@ -163,6 +164,12 @@ function RunWorkflowPageInner() {
163164 addLogMessage ( "Deployment completed successfully!" ) ;
164165 } , [ markStepAsCompleted , addLogMessage ] ) ;
165166
167+ // NEW: Store analyzed files for context step
168+ const handleAnalysisComplete = useCallback ( ( files : Record < string , string > ) => {
169+ setAnalysisFiles ( files ) ;
170+ addLogMessage ( `Analysis files preserved: ${ Object . keys ( files ) . length } files (${ Object . values ( files ) . reduce ( ( sum , content ) => sum + content . length , 0 ) } characters total)` ) ;
171+ } , [ addLogMessage ] ) ;
172+
166173 // Custom hooks - ALL MUST BE DECLARED BEFORE ANY CONDITIONAL LOGIC
167174 const { fetchFolders, fetchFilesInFolder, fetchFileContent, handleUpload } = useFileOperations ( {
168175 BACKEND_URL ,
@@ -212,7 +219,7 @@ function RunWorkflowPageInner() {
212219 addLog : addLogMessage
213220 } ) ;
214221
215- // Enhanced multi-file classification with better error handling
222+ // UPDATED: Enhanced multi-file classification with analysis preservation
216223 const handleManualClassify = useCallback ( ( files ?: { path : string ; content : string } [ ] ) => {
217224 if ( loading ) {
218225 addLogMessage ( "Classification already in progress" ) ;
@@ -233,6 +240,9 @@ function RunWorkflowPageInner() {
233240 return ;
234241 }
235242
243+ // PRESERVE the analyzed files for context step
244+ handleAnalysisComplete ( filesObj ) ;
245+
236246 addLogMessage ( `Selected ${ files . length } files: ${ Object . keys ( filesObj ) . join ( ", " ) } ` ) ;
237247 addLogMessage ( `Total size: ${ Object . values ( filesObj ) . reduce ( ( sum , c ) => sum + c . length , 0 ) } characters` ) ;
238248
@@ -248,13 +258,17 @@ function RunWorkflowPageInner() {
248258 return ;
249259 }
250260
261+ // For single file, also preserve in structured format
262+ const singleFileObj = { "input_file" : code } ;
263+ handleAnalysisComplete ( singleFileObj ) ;
264+
251265 addLogMessage ( "Starting single file analysis..." ) ;
252- classifyCode ( { "input_file" : code } ) ;
266+ classifyCode ( singleFileObj ) ;
253267 } catch ( error ) {
254268 console . error ( 'Error in manual classification:' , error ) ;
255269 addLogMessage ( `Classification error: ${ error } ` ) ;
256270 }
257- } , [ loading , addLogMessage , code , classifyCode ] ) ;
271+ } , [ loading , addLogMessage , code , classifyCode , handleAnalysisComplete ] ) ;
258272
259273 // ALL useEffect hooks MUST be declared here
260274 useEffect ( ( ) => {
@@ -444,12 +458,14 @@ function RunWorkflowPageInner() {
444458 { step === 1 ? (
445459 < ContextPanel
446460 code = { code }
461+ analysisFiles = { analysisFiles }
447462 onLogMessage = { addLogMessage }
448463 onContextRetrieved = { onContextRetrieved }
449464 />
450465 ) : step === 2 ? (
451466 < GeneratePanel
452467 code = { code }
468+ analysisFiles = { analysisFiles }
453469 context = { retrievedContext }
454470 classificationResult = { classificationResult }
455471 onLogMessage = { addLogMessage }
0 commit comments