diff --git a/crates/ai/src/auth.rs b/crates/ai/src/auth.rs index a3ce8aece1f97131183d193447bd9e0b848795cc..c188c30797d4734e45899dd2e3c7c5f3c3c5a378 100644 --- a/crates/ai/src/auth.rs +++ b/crates/ai/src/auth.rs @@ -1,6 +1,6 @@ use gpui::AppContext; -#[derive(Clone)] +#[derive(Clone, Debug)] pub enum ProviderCredential { Credentials { api_key: String }, NoCredentials, diff --git a/crates/ai/src/test.rs b/crates/ai/src/test.rs index d8805bad1a6903064d92075bbf68f4dc06928da5..bc143e3c210049cd0afdb588880d44958dbbed75 100644 --- a/crates/ai/src/test.rs +++ b/crates/ai/src/test.rs @@ -29,6 +29,10 @@ impl LanguageModel for FakeLanguageModel { length: usize, direction: TruncationDirection, ) -> anyhow::Result { + if length > self.count_tokens(content)? { + return anyhow::Ok(content.to_string()); + } + anyhow::Ok(match direction { TruncationDirection::End => content.chars().collect::>()[..length] .into_iter() diff --git a/crates/semantic_index/src/embedding_queue.rs b/crates/semantic_index/src/embedding_queue.rs index 9ca6d8a0d945a4eae80010a40f31f1a1c39d3d8f..299aa328b52e4893d92f6fa644209850a83792b2 100644 --- a/crates/semantic_index/src/embedding_queue.rs +++ b/crates/semantic_index/src/embedding_queue.rs @@ -69,7 +69,7 @@ impl EmbeddingQueue { } pub fn set_credential(&mut self, credential: ProviderCredential) { - self.provider_credential = credential + self.provider_credential = credential; } pub fn push(&mut self, file: FileToEmbed) { diff --git a/crates/semantic_index/src/semantic_index.rs b/crates/semantic_index/src/semantic_index.rs index 5be3d6ccf5302d94a3c4d8a12674f3c6e17421d0..f420e0503bd9c481c74cc94ed19594ca5dedce02 100644 --- a/crates/semantic_index/src/semantic_index.rs +++ b/crates/semantic_index/src/semantic_index.rs @@ -291,7 +291,6 @@ impl SemanticIndex { } self.embedding_queue.lock().set_credential(credential); - self.is_authenticated() } @@ -299,6 +298,7 @@ impl SemanticIndex { let credential = &self.provider_credential; match credential { &ProviderCredential::Credentials { .. } => true, + &ProviderCredential::NotNeeded => true, _ => false, } } @@ -1020,11 +1020,14 @@ impl SemanticIndex { cx: &mut ModelContext, ) -> Task> { if !self.is_authenticated() { + println!("Authenticating"); if !self.authenticate(cx) { return Task::ready(Err(anyhow!("user is not authenticated"))); } } + println!("SHOULD NOW BE AUTHENTICATED"); + if !self.projects.contains_key(&project.downgrade()) { let subscription = cx.subscribe(&project, |this, project, event, cx| match event { project::Event::WorktreeAdded | project::Event::WorktreeRemoved(_) => {