@@ -2092,6 +2092,19 @@ export const webviewMessageHandler = async (
20922092 }
20932093 }
20942094 }
2095+ } else {
2096+ // No workspace open - send error status
2097+ provider . log ( "Cannot save code index settings: No workspace folder open" )
2098+ await provider . postMessageToWebview ( {
2099+ type : "indexingStatusUpdate" ,
2100+ values : {
2101+ systemStatus : "Error" ,
2102+ message : t ( "embeddings:orchestrator.indexingRequiresWorkspace" ) ,
2103+ processedItems : 0 ,
2104+ totalItems : 0 ,
2105+ currentItemUnit : "items" ,
2106+ } ,
2107+ } )
20952108 }
20962109 } catch ( error ) {
20972110 provider . log ( `Error saving code index settings: ${ error . message || error } ` )
@@ -2105,7 +2118,22 @@ export const webviewMessageHandler = async (
21052118 }
21062119
21072120 case "requestIndexingStatus" : {
2108- const status = provider . codeIndexManager ! . getCurrentStatus ( )
2121+ const manager = provider . codeIndexManager
2122+ if ( ! manager ) {
2123+ // No workspace open - send error status
2124+ provider . postMessageToWebview ( {
2125+ type : "indexingStatusUpdate" ,
2126+ values : {
2127+ systemStatus : "Error" ,
2128+ message : t ( "embeddings:orchestrator.indexingRequiresWorkspace" ) ,
2129+ processedItems : 0 ,
2130+ totalItems : 0 ,
2131+ currentItemUnit : "items" ,
2132+ } ,
2133+ } )
2134+ return
2135+ }
2136+ const status = manager . getCurrentStatus ( )
21092137 provider . postMessageToWebview ( {
21102138 type : "indexingStatusUpdate" ,
21112139 values : status ,
@@ -2136,7 +2164,22 @@ export const webviewMessageHandler = async (
21362164 }
21372165 case "startIndexing" : {
21382166 try {
2139- const manager = provider . codeIndexManager !
2167+ const manager = provider . codeIndexManager
2168+ if ( ! manager ) {
2169+ // No workspace open - send error status
2170+ provider . postMessageToWebview ( {
2171+ type : "indexingStatusUpdate" ,
2172+ values : {
2173+ systemStatus : "Error" ,
2174+ message : t ( "embeddings:orchestrator.indexingRequiresWorkspace" ) ,
2175+ processedItems : 0 ,
2176+ totalItems : 0 ,
2177+ currentItemUnit : "items" ,
2178+ } ,
2179+ } )
2180+ provider . log ( "Cannot start indexing: No workspace folder open" )
2181+ return
2182+ }
21402183 if ( manager . isFeatureEnabled && manager . isFeatureConfigured ) {
21412184 if ( ! manager . isInitialized ) {
21422185 await manager . initialize ( provider . contextProxy )
@@ -2151,7 +2194,18 @@ export const webviewMessageHandler = async (
21512194 }
21522195 case "clearIndexData" : {
21532196 try {
2154- const manager = provider . codeIndexManager !
2197+ const manager = provider . codeIndexManager
2198+ if ( ! manager ) {
2199+ provider . log ( "Cannot clear index data: No workspace folder open" )
2200+ provider . postMessageToWebview ( {
2201+ type : "indexCleared" ,
2202+ values : {
2203+ success : false ,
2204+ error : t ( "embeddings:orchestrator.indexingRequiresWorkspace" ) ,
2205+ } ,
2206+ } )
2207+ return
2208+ }
21552209 await manager . clearIndexData ( )
21562210 provider . postMessageToWebview ( { type : "indexCleared" , values : { success : true } } )
21572211 } catch ( error ) {
0 commit comments