From 04de4563739e60d6ebe694599ef5e35c7e8102c2 Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Wed, 3 Dec 2025 15:55:10 -0500 Subject: [PATCH] Use extension-llm- prefix for credential keys --- .../src/wasm_host/wit/since_v0_7_0.rs | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/crates/extension_host/src/wasm_host/wit/since_v0_7_0.rs b/crates/extension_host/src/wasm_host/wit/since_v0_7_0.rs index 9b40c22a5595d6840b12840c126e8d3194b7ca4b..c502f29228c9a6a7be0ca648fd14f38e4af209a4 100644 --- a/crates/extension_host/src/wasm_host/wit/since_v0_7_0.rs +++ b/crates/extension_host/src/wasm_host/wit/since_v0_7_0.rs @@ -13,6 +13,7 @@ use anyhow::{Context as _, Result, bail}; use async_compression::futures::bufread::GzipDecoder; use async_tar::Archive; use async_trait::async_trait; +use credentials_provider::CredentialsProvider; use extension::{ ExtensionLanguageServerProxy, KeyValueStoreDelegate, ProjectDelegate, WorktreeDelegate, }; @@ -1132,12 +1133,16 @@ impl ExtensionImports for WasmState { provider_id: String, ) -> wasmtime::Result> { let extension_id = self.manifest.id.clone(); - let credential_key = format!("{}:{}", extension_id, provider_id); + let credential_key = format!("extension-llm-{}:{}", extension_id, provider_id); self.on_main_thread(move |cx| { async move { - let task = cx.update(|cx| cx.read_credentials(&credential_key))?; - let result = task.await.ok().flatten(); + let credentials_provider = cx.update(|cx| ::global(cx))?; + let result = credentials_provider + .read_credentials(&credential_key, cx) + .await + .ok() + .flatten(); Ok(result.map(|(_, password)| String::from_utf8_lossy(&password).to_string())) } .boxed_local() @@ -1151,14 +1156,15 @@ impl ExtensionImports for WasmState { value: String, ) -> wasmtime::Result> { let extension_id = self.manifest.id.clone(); - let credential_key = format!("{}:{}", extension_id, provider_id); + let credential_key = format!("extension-llm-{}:{}", extension_id, provider_id); self.on_main_thread(move |cx| { async move { - let task = cx.update(|cx| { - cx.write_credentials(&credential_key, "api_key", value.as_bytes()) - })?; - task.await.map_err(|e| anyhow::anyhow!("{}", e)) + let credentials_provider = cx.update(|cx| ::global(cx))?; + credentials_provider + .write_credentials(&credential_key, "api_key", value.as_bytes(), cx) + .await + .map_err(|e| anyhow::anyhow!("{}", e)) } .boxed_local() }) @@ -1171,12 +1177,15 @@ impl ExtensionImports for WasmState { provider_id: String, ) -> wasmtime::Result> { let extension_id = self.manifest.id.clone(); - let credential_key = format!("{}:{}", extension_id, provider_id); + let credential_key = format!("extension-llm-{}:{}", extension_id, provider_id); self.on_main_thread(move |cx| { async move { - let task = cx.update(|cx| cx.delete_credentials(&credential_key))?; - task.await.map_err(|e| anyhow::anyhow!("{}", e)) + let credentials_provider = cx.update(|cx| ::global(cx))?; + credentials_provider + .delete_credentials(&credential_key, cx) + .await + .map_err(|e| anyhow::anyhow!("{}", e)) } .boxed_local() })