Settings refactor (#38367)

Co-Authored-By: Ben K <ben@zed.dev>
Co-Authored-By: Anthony <anthony@zed.dev>
Co-Authored-By: Mikayla <mikayla@zed.dev>

Release Notes:

- settings: Major internal changes to settings. The primary user-facing
effect is that some settings which did not make sense in project
settings files are no-longer read from there. (For example the inline
blame settings)

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Anthony <anthony@zed.dev>
This commit is contained in:
Conrad Irwin
2025-09-18 16:47:23 +00:00
committed by GitHub
co-authored by Ben Kunkle Mikayla Maki Anthony
parent 0a9023bce0
commit fcdab160f9
219 changed files with 11697 additions and 11894 deletions
+4 -46
View File
@@ -3,10 +3,13 @@ use futures::{AsyncBufReadExt, AsyncReadExt, StreamExt, io::BufReader, stream::B
use http_client::{AsyncBody, HttpClient, Method, Request as HttpRequest, http};
use serde::{Deserialize, Serialize};
use serde_json::Value;
pub use settings::DataCollection;
pub use settings::ModelMode;
pub use settings::OpenRouterAvailableModel as AvailableModel;
pub use settings::OpenRouterProvider as Provider;
use std::{convert::TryFrom, io, time::Duration};
use strum::EnumString;
use thiserror::Error;
use util::serde::default_true;
pub const OPEN_ROUTER_API_URL: &str = "https://openrouter.ai/api/v1";
@@ -65,41 +68,6 @@ impl From<Role> for String {
}
}
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum DataCollection {
Allow,
Disallow,
}
impl Default for DataCollection {
fn default() -> Self {
Self::Allow
}
}
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Provider {
#[serde(skip_serializing_if = "Option::is_none")]
order: Option<Vec<String>>,
#[serde(default = "default_true")]
allow_fallbacks: bool,
#[serde(default)]
require_parameters: bool,
#[serde(default)]
data_collection: DataCollection,
#[serde(skip_serializing_if = "Option::is_none")]
only: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
ignore: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
quantizations: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
sort: Option<String>,
}
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq)]
pub struct Model {
@@ -113,16 +81,6 @@ pub struct Model {
pub provider: Option<Provider>,
}
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq)]
pub enum ModelMode {
#[default]
Default,
Thinking {
budget_tokens: Option<u32>,
},
}
impl Model {
pub fn default_fast() -> Self {
Self::new(