@@ -110,7 +110,7 @@ export class FilesChangedMessageHandler {
110110 try {
111111 await this . refreshEditedFile ( task , uri )
112112 } catch ( error ) {
113- this . provider . log ( `FilesChanged: Failed to process queued file ${ uri } : ${ error } ` )
113+ // Ignore queued file processing errors
114114 }
115115 }
116116 }
@@ -195,19 +195,13 @@ export class FilesChangedMessageHandler {
195195 }
196196
197197 if ( enabled ) {
198- if ( task ) {
199- try {
200- await getCheckpointService ( task )
201- } catch ( error ) {
202- this . provider . log ( `FilesChanged: Failed to initialize checkpoint service: ${ error } ` )
203- this . isEnabled = false
204- return
205- }
198+ if ( task && ! ( await this . initializeCheckpointService ( task ) ) ) {
199+ this . isEnabled = false
200+ return
206201 }
207202
208203 this . isEnabled = true
209204 this . markWaitingForTask ( task , true )
210- this . provider . log ( "FilesChanged: Enabled, waiting for next checkpoint to establish monitoring baseline" )
211205 this . clearFilesChangedDisplay ( )
212206 await this . attachToTask ( task )
213207 this . replayTaskChanges ( task )
@@ -221,7 +215,6 @@ export class FilesChangedMessageHandler {
221215 }
222216 await this . attachToTask ( undefined )
223217 this . clearFilesChangedDisplay ( )
224- this . provider . log ( "FilesChanged: Disabled" )
225218 }
226219 }
227220
@@ -331,30 +324,19 @@ export class FilesChangedMessageHandler {
331324 if ( hasExistingFiles && hadQueued ) {
332325 // Adding child files to existing parent files - preserve existing files
333326 manager . setBaseline ( baseline )
334- this . provider . log (
335- `FilesChanged: Updated baseline to ${ baseline } , preserving ${ manager . getChanges ( ) . files . length } existing files` ,
336- )
337327 } else {
338328 // Starting fresh or no existing files - clear is appropriate
339329 manager . reset ( baseline )
340- this . provider . log ( `FilesChanged: Reset to baseline ${ baseline } ` )
341330 }
342331 }
343332 this . markWaitingForTask ( task , false )
344333
345334 if ( hadQueued ) {
346335 await this . drainQueuedUris ( task , manager )
347- this . provider . log (
348- `FilesChanged: Processed queued Files Changed state after establishing baseline ${ baseline ?? manager . getChanges ( ) . baseCheckpoint } ` ,
349- )
350- } else {
351- this . provider . log (
352- `FilesChanged: Established monitoring baseline at ${ baseline ?? manager . getChanges ( ) . baseCheckpoint } ` ,
353- )
354336 }
355337 this . postChanges ( manager )
356338 } catch ( error ) {
357- this . provider . log ( `FilesChanged: Failed to process checkpoint event : ${ error } ` )
339+ this . provider . log ( `FilesChanged: Failed to process checkpoint: ${ error } ` )
358340 }
359341 }
360342 if ( task ?. checkpointService ?. on ) {
@@ -406,7 +388,7 @@ export class FilesChangedMessageHandler {
406388 try {
407389 await this . handleFileEditBatch ( listeningTask )
408390 } catch ( error ) {
409- this . provider . log ( `FilesChanged: batch refresh failed: ${ error } ` )
391+ // Batch refresh fallback is handled
410392 }
411393 } , debounceMs )
412394 }
@@ -558,19 +540,16 @@ export class FilesChangedMessageHandler {
558540 if ( fileChangeData ) {
559541 await this . showFileDiff ( message . uri , fileChangeData )
560542 } else {
561- console . warn ( `FilesChangedMessageHandler: No file change data found for URI: ${ message . uri } ` )
562543 vscode . window . showInformationMessage ( `No changes found for ${ message . uri } ` )
563544 }
564545 } catch ( error ) {
565- console . error ( `FilesChangedMessageHandler : Failed to open diff for ${ message . uri } :` , error )
546+ this . provider . log ( `FilesChanged : Failed to open diff: ${ error } ` )
566547 vscode . window . showErrorMessage ( `Failed to open diff for ${ message . uri } : ${ error . message } ` )
567548 }
568549 } else {
569- console . warn ( `FilesChangedMessageHandler: File change not found in changeset for URI: ${ message . uri } ` )
570550 vscode . window . showInformationMessage ( `File change not found for ${ message . uri } ` )
571551 }
572552 } else {
573- console . warn ( `FilesChangedMessageHandler: Missing dependencies for viewDiff. URI: ${ message . uri } ` )
574553 vscode . window . showErrorMessage ( "Unable to view diff - missing required dependencies" )
575554 }
576555 }
@@ -592,9 +571,6 @@ export class FilesChangedMessageHandler {
592571 { preview : false } ,
593572 )
594573 } catch ( fileError ) {
595- console . error (
596- `Failed to open diff view: ${ fileError instanceof Error ? fileError . message : String ( fileError ) } ` ,
597- )
598574 vscode . window . showErrorMessage (
599575 `Failed to open diff view: ${ fileError instanceof Error ? fileError . message : String ( fileError ) } ` ,
600576 )
@@ -641,14 +617,14 @@ export class FilesChangedMessageHandler {
641617 try {
642618 await vscode . window . tabGroups . close ( tab )
643619 } catch ( error ) {
644- this . provider . log ( `FilesChanged: Error closing diff tab: ${ error } ` )
620+ // Ignore tab closing errors
645621 }
646622 }
647623
648624 // Clean up stored content
649625 fcoProvider . cleanupFile ( filePath )
650626 } catch ( error ) {
651- this . provider . log ( `FilesChanged: Error during diff tab cleanup for ${ filePath } : ${ error } ` )
627+ // Ignore cleanup errors
652628 }
653629 }
654630
@@ -664,21 +640,19 @@ export class FilesChangedMessageHandler {
664640
665641 // Accept the change
666642 manager . acceptChange ( message . uri )
667- this . provider . log ( `FilesChanged: Accepted change for ${ message . uri } in task ${ task ?. taskId ?? "unknown" } ` )
668643 this . postChanges ( manager )
669644
670645 // Open the modified file for user to see the accepted changes
671646 try {
672647 if ( ! task ?. cwd ) {
673- this . provider . log ( `FilesChanged: Cannot open file - no task or workspace available` )
674648 return
675649 }
676650 // Resolve relative path to absolute path within workspace
677651 const absolutePath = path . resolve ( task . cwd , message . uri )
678652 const fileUri = vscode . Uri . file ( absolutePath )
679653 await vscode . window . showTextDocument ( fileUri , { preview : false } )
680654 } catch ( error ) {
681- this . provider . log ( `FilesChanged: Could not open file after accept: ${ error } ` )
655+ // Ignore file open failures
682656 }
683657 }
684658
@@ -705,7 +679,6 @@ export class FilesChangedMessageHandler {
705679 }
706680
707681 manager . rejectChange ( message . uri )
708- this . provider . log ( `FilesChanged: Rejected change for ${ message . uri } in task ${ task ?. taskId ?? "unknown" } ` )
709682 this . postChanges ( manager )
710683
711684 // Open the reverted file (if it still exists after reject)
@@ -715,7 +688,7 @@ export class FilesChangedMessageHandler {
715688 const fileUri = vscode . Uri . file ( absolutePath )
716689 await vscode . window . showTextDocument ( fileUri , { preview : false } )
717690 } catch ( error ) {
718- this . provider . log ( `FilesChanged: File may have been deleted after reject: ${ error } ` )
691+ // File may have been deleted after reject
719692 }
720693
721694 currentTask . fileContextTracker ?. emit ?.( "user_edited" , message . uri )
@@ -724,7 +697,6 @@ export class FilesChangedMessageHandler {
724697 // Still clean up diff tabs and UI even if revert failed
725698 await this . closeDiffTabsForFile ( message . uri )
726699 manager . rejectChange ( message . uri )
727- this . provider . log ( `FilesChanged: Rejected change for ${ message . uri } in task ${ task ?. taskId ?? "unknown" } ` )
728700 this . postChanges ( manager )
729701 }
730702 }
@@ -736,7 +708,6 @@ export class FilesChangedMessageHandler {
736708 const nextBaseline = checkpointService ?. getCurrentCheckpoint ?.( )
737709
738710 manager ?. acceptAll ( )
739- this . provider . log ( `FilesChanged: Accepted all changes for task ${ task ?. taskId ?? "unknown" } ` )
740711 this . prepareForNextCheckpoint ( task , nextBaseline , manager )
741712 }
742713
@@ -763,19 +734,15 @@ export class FilesChangedMessageHandler {
763734 try {
764735 await this . revertFileToCheckpoint ( fileChange . uri , fileChange . fromCheckpoint , checkpointService )
765736 } catch ( error ) {
766- this . provider . log ( `FilesChanged: Failed to revert ${ fileChange . uri } : ${ error } ` )
737+ // Ignore individual file revert failures
767738 }
768739 }
769740
770741 manager . rejectAll ( )
771- this . provider . log (
772- `FilesChanged: Rejected ${ filesToReject . length } change(s) for task ${ task ?. taskId ?? "unknown" } ` ,
773- )
774742 this . prepareForNextCheckpoint ( currentTask , undefined , manager )
775743 } catch ( error ) {
776744 this . provider . log ( `FilesChanged: Failed to reject all changes: ${ error } ` )
777745 manager . rejectAll ( )
778- this . provider . log ( `FilesChanged: Rejected all remaining changes for task ${ task ?. taskId ?? "unknown" } ` )
779746 this . prepareForNextCheckpoint ( currentTask , undefined , manager )
780747 }
781748 }
@@ -789,7 +756,7 @@ export class FilesChangedMessageHandler {
789756 }
790757 this . postChanges ( manager )
791758 } catch ( error ) {
792- this . provider . log ( `FilesChangedMessageHandler: Error handling filesChangedRequest: ${ error } ` )
759+ // Error handling files changed request
793760 }
794761 }
795762
@@ -807,7 +774,7 @@ export class FilesChangedMessageHandler {
807774 this . prepareForNextCheckpoint ( task , message . baseline , manager )
808775 }
809776 } catch ( error ) {
810- this . provider . log ( `FilesChangedMessageHandler: Failed to update baseline: ${ error } ` )
777+ // Failed to update baseline
811778 }
812779 }
813780
@@ -821,6 +788,23 @@ export class FilesChangedMessageHandler {
821788 await this . applyExperimentsToTask ( this . provider . getCurrentTask ( ) as Task | undefined )
822789 }
823790
791+ /**
792+ * Safely initialize checkpoint service with error logging
793+ */
794+ private async initializeCheckpointService ( task : Task | undefined ) : Promise < boolean > {
795+ if ( ! task ) {
796+ return false
797+ }
798+
799+ try {
800+ await getCheckpointService ( task )
801+ return true
802+ } catch ( error ) {
803+ this . provider . log ( `FilesChanged: Failed to initialize checkpoint service: ${ error } ` )
804+ return false
805+ }
806+ }
807+
824808 public async applyExperimentsToTask ( task : Task | undefined ) : Promise < void > {
825809 const state = await this . provider . getState ( )
826810 const shouldBeEnabled = experiments . isEnabled ( state ?. experiments ?? { } , EXPERIMENT_IDS . FILES_CHANGED_OVERVIEW )
@@ -838,10 +822,7 @@ export class FilesChangedMessageHandler {
838822 return
839823 }
840824
841- try {
842- await getCheckpointService ( task )
843- } catch ( error ) {
844- this . provider . log ( `FilesChanged: Failed to initialize checkpoint service: ${ error } ` )
825+ if ( ! ( await this . initializeCheckpointService ( task ) ) ) {
845826 return
846827 }
847828
@@ -918,8 +899,6 @@ export class FilesChangedMessageHandler {
918899
919900 this . postChanges ( manager )
920901 } catch ( error ) {
921- this . provider . log ( `FilesChanged: Failed to refresh ${ filePath } : ${ error } ` )
922-
923902 // If we get "bad object" errors, reset FCO state to wait for next checkpoint
924903 if (
925904 error &&
@@ -976,11 +955,8 @@ export class FilesChangedMessageHandler {
976955 manager . upsertFile ( mapped )
977956 }
978957 }
979-
980958 // Single UI update for entire batch
981959 this . postChanges ( manager )
982-
983- this . provider . log ( `FilesChanged: Batch processed ${ filePaths . length } files in single operation` )
984960 } catch ( error ) {
985961 this . provider . log ( `FilesChanged: Failed to batch refresh files: ${ error } ` )
986962
@@ -989,7 +965,7 @@ export class FilesChangedMessageHandler {
989965 try {
990966 await this . refreshEditedFile ( task , filePath )
991967 } catch ( individualError ) {
992- this . provider . log ( `FilesChanged: Failed to refresh ${ filePath } : ${ individualError } ` )
968+ // Individual refresh errors handled in refreshEditedFile
993969 }
994970 }
995971 }
@@ -1027,7 +1003,7 @@ export class FilesChangedMessageHandler {
10271003
10281004 this . postChanges ( manager )
10291005 } catch ( error ) {
1030- this . provider . log ( `FilesChanged: Failed to refresh changes from baseline: ${ error } ` )
1006+ // Failed to refresh changes from baseline
10311007 }
10321008 }
10331009
@@ -1099,7 +1075,6 @@ export class FilesChangedMessageHandler {
10991075 this . markWaitingForTask ( task , true )
11001076 this . clearFilesChangedDisplay ( )
11011077 const suffix = baselineHint ? ` (${ baselineHint } )` : ""
1102- this . provider . log ( `FilesChanged: Cleared state; waiting for next checkpoint${ suffix } to re-establish baseline` )
11031078 }
11041079
11051080 public async handleChildTaskCompletion ( childTask : Task | undefined , parentTask : Task | undefined ) : Promise < void > {
@@ -1119,17 +1094,10 @@ export class FilesChangedMessageHandler {
11191094 childTask . checkpointService . baseHash ||
11201095 childTask . checkpointService . getCurrentCheckpoint ?.( )
11211096
1122- if ( ! fallbackBaseline ) {
1123- this . provider . log (
1124- `FilesChanged: No baseline available for fallback diff on subtask ${ childTask . taskId } ` ,
1125- )
1126- } else {
1097+ if ( fallbackBaseline ) {
11271098 const checkpointDiff = await childTask . checkpointService . getDiff ( { from : fallbackBaseline } )
11281099 if ( checkpointDiff && checkpointDiff . length > 0 ) {
11291100 pendingUris = checkpointDiff . map ( ( diff : any ) => diff . paths . relative )
1130- this . provider . log (
1131- `FilesChanged: Fallback detected ${ pendingUris . length } file(s) from subtask ${ childTask . taskId } via diff from ${ fallbackBaseline } ` ,
1132- )
11331101 }
11341102 }
11351103 } catch ( error ) {
@@ -1156,9 +1124,6 @@ export class FilesChangedMessageHandler {
11561124 }
11571125
11581126 if ( ! this . isEnabled ) {
1159- this . provider . log (
1160- `FilesChanged: Ignored queued files from subtask ${ childTaskId } because FilesChanged is disabled` ,
1161- )
11621127 return
11631128 }
11641129
@@ -1168,9 +1133,5 @@ export class FilesChangedMessageHandler {
11681133 if ( ! this . isWaitingForTask ( parentTask ) ) {
11691134 void this . drainQueuedUris ( parentTask )
11701135 }
1171-
1172- this . provider . log (
1173- `FilesChanged: Queued ${ childFileUris . length } file(s) from subtask ${ childTaskId } for parent ${ parentTask . taskId } ` ,
1174- )
11751136 }
11761137}
0 commit comments