feat: per-workspace codebase indexing configuration#11948
Draft
roomote-v0[bot] wants to merge 1 commit intomainfrom
Draft
feat: per-workspace codebase indexing configuration#11948roomote-v0[bot] wants to merge 1 commit intomainfrom
roomote-v0[bot] wants to merge 1 commit intomainfrom
Conversation
Allow users to use workspace-specific settings for codebase indexing instead of a single global configuration. Each project/workspace can now have its own embedder provider, model, Qdrant URL, API keys, and search settings. Changes: - CodeIndexConfigManager: accept optional WorkspaceConfigResolver to load workspace-specific config and secrets instead of global state - CodeIndexManager: add useWorkspaceConfig toggle, workspace config storage methods, and effective config resolution - webviewMessageHandler: route saves to workspace or global storage based on useWorkspaceConfig flag; add setUseWorkspaceConfig handler - ClineProvider: send effective (workspace or global) config to webview - Types: add useWorkspaceConfig to IndexingStatus and codeIndexSettings - CodeIndexPopover: add "Use workspace-specific settings" toggle in UI - English locale: add translation strings for new UI elements Closes #11947
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related GitHub Issue
Closes: #11947
Description
This PR attempts to address Issue #11947 by adding per-workspace codebase indexing configuration support. Currently, codebase indexing settings (embedder provider, model, Qdrant URL, API keys, search thresholds) are stored globally and shared across all workspaces. This change introduces an optional per-workspace configuration override while keeping the global config as the default fallback.
Key implementation details:
WorkspaceConfigResolverparameter that lazily resolves workspace-specific config and secrets. When provided and returning a value, it takes priority over global config.useWorkspaceConfig,saveWorkspaceConfig,saveWorkspaceSecrets,getEffectiveConfig) stored inworkspaceStatekeyed by folder URI. When workspace config is first enabled, global config is copied as the starting point.saveCodeIndexSettingsAtomichandler now checks foruseWorkspaceConfigflag to route saves to workspace or global storage. A newsetUseWorkspaceConfighandler toggles the feature.getStateToPostToWebview()now sends the effective config (workspace-specific or global) so the UI displays the correct settings.Design trade-offs:
workspaceStaterather than the VS Code secret store, since the secret store does not support per-workspace scoping. This is acceptable for local-only storage.Feedback and guidance are welcome.
Test Procedure
Pre-Submission Checklist
Interactively review PR in Roo Code Cloud