@@ -745,12 +745,21 @@ export abstract class BaseWebViewProvider implements vscode.Disposable {
745745 const { ids } = message ;
746746 if ( ids && Array . isArray ( ids ) ) {
747747 await NewsService . getInstance ( ) . markAsRead ( ids ) ;
748+ await this . synchronizeNews ( ) ;
748749 }
749750 break ;
750751 }
752+ case "news-refresh" :
753+ await this . synchronizeNews ( ) ;
754+ break ;
751755 case "upload-file" :
752756 await this . fileManager . uploadFileHandler ( ) ;
753757 break ;
758+ case "openExternal" :
759+ if ( message . text ) {
760+ vscode . env . openExternal ( vscode . Uri . parse ( message . text ) ) ;
761+ }
762+ break ;
754763 case "update-model-event" :
755764 await this . orchestrator . publish ( "onModelChange" , message ) ;
756765 break ;
@@ -761,6 +770,11 @@ export abstract class BaseWebViewProvider implements vscode.Disposable {
761770 case "clear-history" :
762771 await this . chatHistoryManager . clearHistory ( "agentId" ) ;
763772 this . orchestrator . publish ( "onClearHistory" , message ) ;
773+ // Notify webview that history has been cleared
774+ this . currentWebView ?. webview . postMessage ( {
775+ command : "history-cleared" ,
776+ } ) ;
777+ this . logger . info ( "Chat history cleared" ) ;
764778 break ;
765779 case "update-user-info" :
766780 // In the future update to updateUserPreferences
@@ -778,6 +792,162 @@ export abstract class BaseWebViewProvider implements vscode.Disposable {
778792 ) ;
779793 break ;
780794
795+ case "font-family-change-event" :
796+ // Handle font family change and update VS Code settings
797+ this . logger . info ( `Font family changed to: ${ message . message } ` ) ;
798+ await vscode . workspace
799+ . getConfiguration ( )
800+ . update (
801+ "font.family" ,
802+ message . message ,
803+ vscode . ConfigurationTarget . Global ,
804+ ) ;
805+ break ;
806+
807+ case "font-size-change-event" :
808+ // Handle font size change and update VS Code settings
809+ this . logger . info ( `Font size changed to: ${ message . message } ` ) ;
810+ await vscode . workspace
811+ . getConfiguration ( )
812+ . update (
813+ "chatview.font.size" ,
814+ message . message ,
815+ vscode . ConfigurationTarget . Global ,
816+ ) ;
817+ break ;
818+
819+ case "nickname-change-event" :
820+ // Handle nickname change and store in secret storage
821+ this . logger . info ( `Nickname changed to: ${ message . message } ` ) ;
822+ this . orchestrator . publish ( "onUpdateUserPreferences" , {
823+ message : JSON . stringify ( { username : message . message } ) ,
824+ } ) ;
825+ break ;
826+
827+ case "streaming-change-event" :
828+ // Handle streaming preference change
829+ this . logger . info (
830+ `Streaming preference changed to: ${ message . message } ` ,
831+ ) ;
832+ await vscode . workspace
833+ . getConfiguration ( )
834+ . update (
835+ "codebuddy.enableStreaming" ,
836+ message . message ,
837+ vscode . ConfigurationTarget . Global ,
838+ ) ;
839+ break ;
840+
841+ case "auto-approve-change-event" :
842+ this . logger . info (
843+ `Auto-approve preference changed to: ${ message . message } ` ,
844+ ) ;
845+ await vscode . workspace
846+ . getConfiguration ( )
847+ . update (
848+ "codebuddy.autoApprove" ,
849+ message . message ,
850+ vscode . ConfigurationTarget . Global ,
851+ ) ;
852+ break ;
853+
854+ case "allow-file-edits-change-event" :
855+ this . logger . info (
856+ `Allow file edits preference changed to: ${ message . message } ` ,
857+ ) ;
858+ await vscode . workspace
859+ . getConfiguration ( )
860+ . update (
861+ "codebuddy.allowFileEdits" ,
862+ message . message ,
863+ vscode . ConfigurationTarget . Global ,
864+ ) ;
865+ break ;
866+
867+ case "allow-terminal-change-event" :
868+ this . logger . info (
869+ `Allow terminal preference changed to: ${ message . message } ` ,
870+ ) ;
871+ await vscode . workspace
872+ . getConfiguration ( )
873+ . update (
874+ "codebuddy.allowTerminal" ,
875+ message . message ,
876+ vscode . ConfigurationTarget . Global ,
877+ ) ;
878+ break ;
879+
880+ case "verbose-logging-change-event" :
881+ this . logger . info (
882+ `Verbose logging preference changed to: ${ message . message } ` ,
883+ ) ;
884+ await vscode . workspace
885+ . getConfiguration ( )
886+ . update (
887+ "codebuddy.verboseLogging" ,
888+ message . message ,
889+ vscode . ConfigurationTarget . Global ,
890+ ) ;
891+ break ;
892+
893+ case "index-codebase-change-event" :
894+ this . logger . info (
895+ `Index codebase preference changed to: ${ message . message } ` ,
896+ ) ;
897+ await vscode . workspace
898+ . getConfiguration ( )
899+ . update (
900+ "codebuddy.indexCodebase" ,
901+ message . message ,
902+ vscode . ConfigurationTarget . Global ,
903+ ) ;
904+ break ;
905+
906+ case "context-window-change-event" :
907+ this . logger . info (
908+ `Context window preference changed to: ${ message . message } ` ,
909+ ) ;
910+ await vscode . workspace
911+ . getConfiguration ( )
912+ . update (
913+ "codebuddy.contextWindow" ,
914+ message . message ,
915+ vscode . ConfigurationTarget . Global ,
916+ ) ;
917+ break ;
918+
919+ case "include-hidden-change-event" :
920+ this . logger . info (
921+ `Include hidden preference changed to: ${ message . message } ` ,
922+ ) ;
923+ await vscode . workspace
924+ . getConfiguration ( )
925+ . update (
926+ "codebuddy.includeHidden" ,
927+ message . message ,
928+ vscode . ConfigurationTarget . Global ,
929+ ) ;
930+ break ;
931+
932+ case "max-file-size-change-event" :
933+ this . logger . info (
934+ `Max file size preference changed to: ${ message . message } ` ,
935+ ) ;
936+ await vscode . workspace
937+ . getConfiguration ( )
938+ . update (
939+ "codebuddy.maxFileSize" ,
940+ message . message ,
941+ vscode . ConfigurationTarget . Global ,
942+ ) ;
943+ break ;
944+
945+ case "reindex-workspace-event" :
946+ this . logger . info ( "Reindexing workspace..." ) ;
947+ // Trigger workspace reindexing
948+ vscode . commands . executeCommand ( "codebuddy.indexWorkspace" ) ;
949+ break ;
950+
781951 case "open-codebuddy-settings" :
782952 // Open VS Code settings filtered to CodeBuddy settings
783953 this . logger . info ( "Opening CodeBuddy settings..." ) ;
0 commit comments