Fix panic when using sweep AI without token env var (#42940)

Release Notes:

- N/A
This commit is contained in:
Max Brunsfeld
2025-11-17 22:23:14 -08:00
committed by GitHub
parent 10efbd5eb4
commit 5c70f8391f
+8 -6
View File
@@ -84,6 +84,7 @@ impl Display for EditPredictionId {
pub struct SweepAi {
projects: HashMap<EntityId, SweepAiProject>,
debug_info: Arc<str>,
api_token: Option<String>,
}
struct SweepAiProject {
@@ -113,6 +114,7 @@ impl SweepAi {
fn new(cx: &mut Context<Self>) -> Self {
Self {
api_token: std::env::var("SWEEP_AI_TOKEN").ok(),
projects: HashMap::default(),
debug_info: format!(
"Zed v{version} ({sha}) - OS: {os} - Zed v{version}",
@@ -237,6 +239,9 @@ impl SweepAi {
) -> Task<Result<Option<EditPrediction>>> {
let snapshot = active_buffer.read(cx).snapshot();
let debug_info = self.debug_info.clone();
let Some(api_token) = self.api_token.clone() else {
return Task::ready(Ok(None));
};
let full_path: Arc<Path> = snapshot
.file()
.map(|file| file.full_path(cx))
@@ -339,10 +344,7 @@ impl SweepAi {
let request = http_client::Request::builder()
.uri(SWEEP_API_URL)
.header("Content-Type", "application/json")
.header(
"Authorization",
format!("Bearer {}", std::env::var("SWEEP_TOKEN").unwrap()),
)
.header("Authorization", format!("Bearer {}", api_token))
.header("Connection", "keep-alive")
.header("Content-Encoding", "br")
.method(Method::POST)
@@ -579,9 +581,9 @@ impl edit_prediction::EditPredictionProvider for SweepAiEditPredictionProvider {
&self,
_buffer: &Entity<Buffer>,
_cursor_position: language::Anchor,
_cx: &App,
cx: &App,
) -> bool {
true
self.sweep_ai.read(cx).api_token.is_some()
}
fn is_refreshing(&self) -> bool {