|
@@ -29,6 +29,7 @@ import { checkExistKey } from "../../shared/checkExistApiConfig"
|
|
|
import { experimentDefault } from "../../shared/experiments"
|
|
import { experimentDefault } from "../../shared/experiments"
|
|
|
import { Terminal } from "../../integrations/terminal/Terminal"
|
|
import { Terminal } from "../../integrations/terminal/Terminal"
|
|
|
import { openFile } from "../../integrations/misc/open-file"
|
|
import { openFile } from "../../integrations/misc/open-file"
|
|
|
|
|
+import { CodeIndexManager } from "../../services/code-index/manager"
|
|
|
import { openImage, saveImage } from "../../integrations/misc/image-handler"
|
|
import { openImage, saveImage } from "../../integrations/misc/image-handler"
|
|
|
import { selectImages } from "../../integrations/misc/process-images"
|
|
import { selectImages } from "../../integrations/misc/process-images"
|
|
|
import { getTheme } from "../../integrations/theme/getTheme"
|
|
import { getTheme } from "../../integrations/theme/getTheme"
|
|
@@ -2062,13 +2063,14 @@ export const webviewMessageHandler = async (
|
|
|
// Update webview state
|
|
// Update webview state
|
|
|
await provider.postStateToWebview()
|
|
await provider.postStateToWebview()
|
|
|
|
|
|
|
|
- // Then handle validation and initialization
|
|
|
|
|
- if (provider.codeIndexManager) {
|
|
|
|
|
|
|
+ // Then handle validation and initialization for the current workspace
|
|
|
|
|
+ const currentCodeIndexManager = provider.getCurrentWorkspaceCodeIndexManager()
|
|
|
|
|
+ if (currentCodeIndexManager) {
|
|
|
// If embedder provider changed, perform proactive validation
|
|
// If embedder provider changed, perform proactive validation
|
|
|
if (embedderProviderChanged) {
|
|
if (embedderProviderChanged) {
|
|
|
try {
|
|
try {
|
|
|
// Force handleSettingsChange which will trigger validation
|
|
// Force handleSettingsChange which will trigger validation
|
|
|
- await provider.codeIndexManager.handleSettingsChange()
|
|
|
|
|
|
|
+ await currentCodeIndexManager.handleSettingsChange()
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
// Validation failed - the error state is already set by handleSettingsChange
|
|
// Validation failed - the error state is already set by handleSettingsChange
|
|
|
provider.log(
|
|
provider.log(
|
|
@@ -2077,7 +2079,7 @@ export const webviewMessageHandler = async (
|
|
|
// Send validation error to webview
|
|
// Send validation error to webview
|
|
|
await provider.postMessageToWebview({
|
|
await provider.postMessageToWebview({
|
|
|
type: "indexingStatusUpdate",
|
|
type: "indexingStatusUpdate",
|
|
|
- values: provider.codeIndexManager.getCurrentStatus(),
|
|
|
|
|
|
|
+ values: currentCodeIndexManager.getCurrentStatus(),
|
|
|
})
|
|
})
|
|
|
// Exit early - don't try to start indexing with invalid configuration
|
|
// Exit early - don't try to start indexing with invalid configuration
|
|
|
break
|
|
break
|
|
@@ -2085,7 +2087,7 @@ export const webviewMessageHandler = async (
|
|
|
} else {
|
|
} else {
|
|
|
// No provider change, just handle settings normally
|
|
// No provider change, just handle settings normally
|
|
|
try {
|
|
try {
|
|
|
- await provider.codeIndexManager.handleSettingsChange()
|
|
|
|
|
|
|
+ await currentCodeIndexManager.handleSettingsChange()
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
// Log but don't fail - settings are saved
|
|
// Log but don't fail - settings are saved
|
|
|
provider.log(
|
|
provider.log(
|
|
@@ -2098,10 +2100,10 @@ export const webviewMessageHandler = async (
|
|
|
await new Promise((resolve) => setTimeout(resolve, 200))
|
|
await new Promise((resolve) => setTimeout(resolve, 200))
|
|
|
|
|
|
|
|
// Auto-start indexing if now enabled and configured
|
|
// Auto-start indexing if now enabled and configured
|
|
|
- if (provider.codeIndexManager.isFeatureEnabled && provider.codeIndexManager.isFeatureConfigured) {
|
|
|
|
|
- if (!provider.codeIndexManager.isInitialized) {
|
|
|
|
|
|
|
+ if (currentCodeIndexManager.isFeatureEnabled && currentCodeIndexManager.isFeatureConfigured) {
|
|
|
|
|
+ if (!currentCodeIndexManager.isInitialized) {
|
|
|
try {
|
|
try {
|
|
|
- await provider.codeIndexManager.initialize(provider.contextProxy)
|
|
|
|
|
|
|
+ await currentCodeIndexManager.initialize(provider.contextProxy)
|
|
|
provider.log(`Code index manager initialized after settings save`)
|
|
provider.log(`Code index manager initialized after settings save`)
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
provider.log(
|
|
provider.log(
|
|
@@ -2110,7 +2112,7 @@ export const webviewMessageHandler = async (
|
|
|
// Send error status to webview
|
|
// Send error status to webview
|
|
|
await provider.postMessageToWebview({
|
|
await provider.postMessageToWebview({
|
|
|
type: "indexingStatusUpdate",
|
|
type: "indexingStatusUpdate",
|
|
|
- values: provider.codeIndexManager.getCurrentStatus(),
|
|
|
|
|
|
|
+ values: currentCodeIndexManager.getCurrentStatus(),
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -2141,7 +2143,7 @@ export const webviewMessageHandler = async (
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
case "requestIndexingStatus": {
|
|
case "requestIndexingStatus": {
|
|
|
- const manager = provider.codeIndexManager
|
|
|
|
|
|
|
+ const manager = provider.getCurrentWorkspaceCodeIndexManager()
|
|
|
if (!manager) {
|
|
if (!manager) {
|
|
|
// No workspace open - send error status
|
|
// No workspace open - send error status
|
|
|
provider.postMessageToWebview({
|
|
provider.postMessageToWebview({
|
|
@@ -2152,11 +2154,23 @@ export const webviewMessageHandler = async (
|
|
|
processedItems: 0,
|
|
processedItems: 0,
|
|
|
totalItems: 0,
|
|
totalItems: 0,
|
|
|
currentItemUnit: "items",
|
|
currentItemUnit: "items",
|
|
|
|
|
+ workerspacePath: undefined,
|
|
|
},
|
|
},
|
|
|
})
|
|
})
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- const status = manager.getCurrentStatus()
|
|
|
|
|
|
|
+
|
|
|
|
|
+ const status = manager
|
|
|
|
|
+ ? manager.getCurrentStatus()
|
|
|
|
|
+ : {
|
|
|
|
|
+ systemStatus: "Standby",
|
|
|
|
|
+ message: "No workspace folder open",
|
|
|
|
|
+ processedItems: 0,
|
|
|
|
|
+ totalItems: 0,
|
|
|
|
|
+ currentItemUnit: "items",
|
|
|
|
|
+ workspacePath: undefined,
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
provider.postMessageToWebview({
|
|
provider.postMessageToWebview({
|
|
|
type: "indexingStatusUpdate",
|
|
type: "indexingStatusUpdate",
|
|
|
values: status,
|
|
values: status,
|
|
@@ -2187,7 +2201,7 @@ export const webviewMessageHandler = async (
|
|
|
}
|
|
}
|
|
|
case "startIndexing": {
|
|
case "startIndexing": {
|
|
|
try {
|
|
try {
|
|
|
- const manager = provider.codeIndexManager
|
|
|
|
|
|
|
+ const manager = provider.getCurrentWorkspaceCodeIndexManager()
|
|
|
if (!manager) {
|
|
if (!manager) {
|
|
|
// No workspace open - send error status
|
|
// No workspace open - send error status
|
|
|
provider.postMessageToWebview({
|
|
provider.postMessageToWebview({
|
|
@@ -2217,7 +2231,7 @@ export const webviewMessageHandler = async (
|
|
|
}
|
|
}
|
|
|
case "clearIndexData": {
|
|
case "clearIndexData": {
|
|
|
try {
|
|
try {
|
|
|
- const manager = provider.codeIndexManager
|
|
|
|
|
|
|
+ const manager = provider.getCurrentWorkspaceCodeIndexManager()
|
|
|
if (!manager) {
|
|
if (!manager) {
|
|
|
provider.log("Cannot clear index data: No workspace folder open")
|
|
provider.log("Cannot clear index data: No workspace folder open")
|
|
|
provider.postMessageToWebview({
|
|
provider.postMessageToWebview({
|