@@ -41,6 +41,10 @@ import type { EmbedderProvider } from "@roo/embeddingModels"
4141import type { IndexingStatus } from "@roo/ExtensionMessage"
4242import { CODEBASE_INDEX_DEFAULTS } from "@roo-code/types"
4343
44+ // Default URLs for providers
45+ const DEFAULT_QDRANT_URL = "http://localhost:6333"
46+ const DEFAULT_OLLAMA_URL = "http://localhost:11434"
47+
4448interface CodeIndexPopoverProps {
4549 children : React . ReactNode
4650 indexingStatus : IndexingStatus
@@ -544,9 +548,11 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
544548 </ label >
545549 < Select
546550 value = { currentSettings . codebaseIndexEmbedderProvider }
547- onValueChange = { ( value : EmbedderProvider ) =>
551+ onValueChange = { ( value : EmbedderProvider ) => {
548552 updateSetting ( "codebaseIndexEmbedderProvider" , value )
549- } >
553+ // Clear model selection when switching providers
554+ updateSetting ( "codebaseIndexEmbedderModelId" , "" )
555+ } } >
550556 < SelectTrigger className = "w-full" >
551557 < SelectValue />
552558 </ SelectTrigger >
@@ -586,7 +592,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
586592 } ) }
587593 />
588594 { formErrors . codeIndexOpenAiKey && (
589- < p className = "text-xs text-vscode-errorForeground" >
595+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
590596 { formErrors . codeIndexOpenAiKey }
591597 </ p >
592598 ) }
@@ -625,7 +631,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
625631 } ) }
626632 </ VSCodeDropdown >
627633 { formErrors . codebaseIndexEmbedderModelId && (
628- < p className = "text-xs text-vscode-errorForeground" >
634+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
629635 { formErrors . codebaseIndexEmbedderModelId }
630636 </ p >
631637 ) }
@@ -644,13 +650,23 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
644650 onInput = { ( e : any ) =>
645651 updateSetting ( "codebaseIndexEmbedderBaseUrl" , e . target . value )
646652 }
653+ onBlur = { ( e : any ) => {
654+ // Set default Ollama URL if field is empty
655+ if ( ! e . target . value . trim ( ) ) {
656+ e . target . value = DEFAULT_OLLAMA_URL
657+ updateSetting (
658+ "codebaseIndexEmbedderBaseUrl" ,
659+ DEFAULT_OLLAMA_URL ,
660+ )
661+ }
662+ } }
647663 placeholder = { t ( "settings:codeIndex.ollamaUrlPlaceholder" ) }
648664 className = { cn ( "w-full" , {
649665 "border-red-500" : formErrors . codebaseIndexEmbedderBaseUrl ,
650666 } ) }
651667 />
652668 { formErrors . codebaseIndexEmbedderBaseUrl && (
653- < p className = "text-xs text-vscode-errorForeground" >
669+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
654670 { formErrors . codebaseIndexEmbedderBaseUrl }
655671 </ p >
656672 ) }
@@ -689,7 +705,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
689705 } ) }
690706 </ VSCodeDropdown >
691707 { formErrors . codebaseIndexEmbedderModelId && (
692- < p className = "text-xs text-vscode-errorForeground" >
708+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
693709 { formErrors . codebaseIndexEmbedderModelId }
694710 </ p >
695711 ) }
@@ -720,7 +736,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
720736 } ) }
721737 />
722738 { formErrors . codebaseIndexOpenAiCompatibleBaseUrl && (
723- < p className = "text-xs text-vscode-errorForeground" >
739+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
724740 { formErrors . codebaseIndexOpenAiCompatibleBaseUrl }
725741 </ p >
726742 ) }
@@ -748,7 +764,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
748764 } ) }
749765 />
750766 { formErrors . codebaseIndexOpenAiCompatibleApiKey && (
751- < p className = "text-xs text-vscode-errorForeground" >
767+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
752768 { formErrors . codebaseIndexOpenAiCompatibleApiKey }
753769 </ p >
754770 ) }
@@ -769,7 +785,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
769785 } ) }
770786 />
771787 { formErrors . codebaseIndexEmbedderModelId && (
772- < p className = "text-xs text-vscode-errorForeground" >
788+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
773789 { formErrors . codebaseIndexEmbedderModelId }
774790 </ p >
775791 ) }
@@ -797,7 +813,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
797813 } ) }
798814 />
799815 { formErrors . codebaseIndexEmbedderModelDimension && (
800- < p className = "text-xs text-vscode-errorForeground" >
816+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
801817 { formErrors . codebaseIndexEmbedderModelDimension }
802818 </ p >
803819 ) }
@@ -823,7 +839,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
823839 } ) }
824840 />
825841 { formErrors . codebaseIndexGeminiApiKey && (
826- < p className = "text-xs text-vscode-errorForeground" >
842+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
827843 { formErrors . codebaseIndexGeminiApiKey }
828844 </ p >
829845 ) }
@@ -862,7 +878,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
862878 } ) }
863879 </ VSCodeDropdown >
864880 { formErrors . codebaseIndexEmbedderModelId && (
865- < p className = "text-xs text-vscode-errorForeground" >
881+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
866882 { formErrors . codebaseIndexEmbedderModelId }
867883 </ p >
868884 ) }
@@ -880,13 +896,20 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
880896 onInput = { ( e : any ) =>
881897 updateSetting ( "codebaseIndexQdrantUrl" , e . target . value )
882898 }
899+ onBlur = { ( e : any ) => {
900+ // Set default Qdrant URL if field is empty
901+ if ( ! e . target . value . trim ( ) ) {
902+ currentSettings . codebaseIndexQdrantUrl = DEFAULT_QDRANT_URL
903+ updateSetting ( "codebaseIndexQdrantUrl" , DEFAULT_QDRANT_URL )
904+ }
905+ } }
883906 placeholder = { t ( "settings:codeIndex.qdrantUrlPlaceholder" ) }
884907 className = { cn ( "w-full" , {
885908 "border-red-500" : formErrors . codebaseIndexQdrantUrl ,
886909 } ) }
887910 />
888911 { formErrors . codebaseIndexQdrantUrl && (
889- < p className = "text-xs text-vscode-errorForeground" >
912+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
890913 { formErrors . codebaseIndexQdrantUrl }
891914 </ p >
892915 ) }
@@ -906,7 +929,7 @@ export const CodeIndexPopover: React.FC<CodeIndexPopoverProps> = ({
906929 } ) }
907930 />
908931 { formErrors . codeIndexQdrantApiKey && (
909- < p className = "text-xs text-vscode-errorForeground" >
932+ < p className = "text-xs text-vscode-errorForeground mt-1 mb-0 " >
910933 { formErrors . codeIndexQdrantApiKey }
911934 </ p >
912935 ) }
0 commit comments