@@ -29,6 +29,7 @@ import { checkExistKey } from "../../shared/checkExistApiConfig"
2929import { experimentDefault } from "../../shared/experiments"
3030import { Terminal } from "../../integrations/terminal/Terminal"
3131import { openFile } from "../../integrations/misc/open-file"
32+ import { CodeIndexManager } from "../../services/code-index/manager"
3233import { openImage , saveImage } from "../../integrations/misc/image-handler"
3334import { selectImages } from "../../integrations/misc/process-images"
3435import { getTheme } from "../../integrations/theme/getTheme"
@@ -2062,13 +2063,14 @@ export const webviewMessageHandler = async (
20622063 // Update webview state
20632064 await provider . postStateToWebview ( )
20642065
2065- // Then handle validation and initialization
2066- if ( provider . codeIndexManager ) {
2066+ // Then handle validation and initialization for the current workspace
2067+ const currentCodeIndexManager = provider . getCurrentWorkspaceCodeIndexManager ( )
2068+ if ( currentCodeIndexManager ) {
20672069 // If embedder provider changed, perform proactive validation
20682070 if ( embedderProviderChanged ) {
20692071 try {
20702072 // Force handleSettingsChange which will trigger validation
2071- await provider . codeIndexManager . handleSettingsChange ( )
2073+ await currentCodeIndexManager . handleSettingsChange ( )
20722074 } catch ( error ) {
20732075 // Validation failed - the error state is already set by handleSettingsChange
20742076 provider . log (
@@ -2077,15 +2079,15 @@ export const webviewMessageHandler = async (
20772079 // Send validation error to webview
20782080 await provider . postMessageToWebview ( {
20792081 type : "indexingStatusUpdate" ,
2080- values : provider . codeIndexManager . getCurrentStatus ( ) ,
2082+ values : currentCodeIndexManager . getCurrentStatus ( ) ,
20812083 } )
20822084 // Exit early - don't try to start indexing with invalid configuration
20832085 break
20842086 }
20852087 } else {
20862088 // No provider change, just handle settings normally
20872089 try {
2088- await provider . codeIndexManager . handleSettingsChange ( )
2090+ await currentCodeIndexManager . handleSettingsChange ( )
20892091 } catch ( error ) {
20902092 // Log but don't fail - settings are saved
20912093 provider . log (
@@ -2098,10 +2100,10 @@ export const webviewMessageHandler = async (
20982100 await new Promise ( ( resolve ) => setTimeout ( resolve , 200 ) )
20992101
21002102 // Auto-start indexing if now enabled and configured
2101- if ( provider . codeIndexManager . isFeatureEnabled && provider . codeIndexManager . isFeatureConfigured ) {
2102- if ( ! provider . codeIndexManager . isInitialized ) {
2103+ if ( currentCodeIndexManager . isFeatureEnabled && currentCodeIndexManager . isFeatureConfigured ) {
2104+ if ( ! currentCodeIndexManager . isInitialized ) {
21032105 try {
2104- await provider . codeIndexManager . initialize ( provider . contextProxy )
2106+ await currentCodeIndexManager . initialize ( provider . contextProxy )
21052107 provider . log ( `Code index manager initialized after settings save` )
21062108 } catch ( error ) {
21072109 provider . log (
@@ -2110,7 +2112,7 @@ export const webviewMessageHandler = async (
21102112 // Send error status to webview
21112113 await provider . postMessageToWebview ( {
21122114 type : "indexingStatusUpdate" ,
2113- values : provider . codeIndexManager . getCurrentStatus ( ) ,
2115+ values : currentCodeIndexManager . getCurrentStatus ( ) ,
21142116 } )
21152117 }
21162118 }
@@ -2141,7 +2143,7 @@ export const webviewMessageHandler = async (
21412143 }
21422144
21432145 case "requestIndexingStatus" : {
2144- const manager = provider . codeIndexManager
2146+ const manager = provider . getCurrentWorkspaceCodeIndexManager ( )
21452147 if ( ! manager ) {
21462148 // No workspace open - send error status
21472149 provider . postMessageToWebview ( {
@@ -2152,11 +2154,23 @@ export const webviewMessageHandler = async (
21522154 processedItems : 0 ,
21532155 totalItems : 0 ,
21542156 currentItemUnit : "items" ,
2157+ workerspacePath : undefined ,
21552158 } ,
21562159 } )
21572160 return
21582161 }
2159- const status = manager . getCurrentStatus ( )
2162+
2163+ const status = manager
2164+ ? manager . getCurrentStatus ( )
2165+ : {
2166+ systemStatus : "Standby" ,
2167+ message : "No workspace folder open" ,
2168+ processedItems : 0 ,
2169+ totalItems : 0 ,
2170+ currentItemUnit : "items" ,
2171+ workspacePath : undefined ,
2172+ }
2173+
21602174 provider . postMessageToWebview ( {
21612175 type : "indexingStatusUpdate" ,
21622176 values : status ,
@@ -2187,7 +2201,7 @@ export const webviewMessageHandler = async (
21872201 }
21882202 case "startIndexing" : {
21892203 try {
2190- const manager = provider . codeIndexManager
2204+ const manager = provider . getCurrentWorkspaceCodeIndexManager ( )
21912205 if ( ! manager ) {
21922206 // No workspace open - send error status
21932207 provider . postMessageToWebview ( {
@@ -2217,7 +2231,7 @@ export const webviewMessageHandler = async (
22172231 }
22182232 case "clearIndexData" : {
22192233 try {
2220- const manager = provider . codeIndexManager
2234+ const manager = provider . getCurrentWorkspaceCodeIndexManager ( )
22212235 if ( ! manager ) {
22222236 provider . log ( "Cannot clear index data: No workspace folder open" )
22232237 provider . postMessageToWebview ( {
0 commit comments