Complete local HTTP endpoint parity
This commit is contained in:
@@ -52,6 +52,8 @@ pub struct AppPreferences {
|
||||
pub simulated_used_memory_gib: Option<i64>,
|
||||
pub expert_profile_path: Option<String>,
|
||||
pub endpoint_port: i32,
|
||||
pub endpoint_enabled: bool,
|
||||
pub endpoint_cors: bool,
|
||||
}
|
||||
|
||||
impl Default for AppPreferences {
|
||||
@@ -92,6 +94,8 @@ impl Default for AppPreferences {
|
||||
simulated_used_memory_gib: None,
|
||||
expert_profile_path: None,
|
||||
endpoint_port: 4000,
|
||||
endpoint_enabled: true,
|
||||
endpoint_cors: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -237,6 +241,8 @@ struct PreferenceChanges<'a> {
|
||||
simulated_used_memory_gib: Option<i64>,
|
||||
expert_profile_path: Option<&'a str>,
|
||||
endpoint_port: i32,
|
||||
endpoint_enabled: bool,
|
||||
endpoint_cors: bool,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Identifiable, Queryable, Selectable)]
|
||||
@@ -423,11 +429,14 @@ impl Database {
|
||||
.map_err(|error| error.to_string())
|
||||
}
|
||||
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub fn update_preferences(
|
||||
&mut self,
|
||||
selected_model: &str,
|
||||
idle_timeout_minutes: i32,
|
||||
endpoint_port: i32,
|
||||
endpoint_enabled: bool,
|
||||
endpoint_cors: bool,
|
||||
generation: &GenerationPreferences,
|
||||
runtime: &RuntimePreferences,
|
||||
) -> Result<AppPreferences, String> {
|
||||
@@ -488,6 +497,8 @@ impl Database {
|
||||
.map(|value| value as i64),
|
||||
expert_profile_path: runtime.diagnostics.expert_profile_path.as_deref(),
|
||||
endpoint_port,
|
||||
endpoint_enabled,
|
||||
endpoint_cors,
|
||||
})
|
||||
.returning(AppPreferences::as_returning())
|
||||
.get_result(&mut self.connection)
|
||||
@@ -669,6 +680,8 @@ mod tests {
|
||||
assert!(!preferences.dspark_enabled);
|
||||
assert_eq!(preferences.idle_timeout_minutes, 10);
|
||||
assert_eq!(preferences.endpoint_port, 4000);
|
||||
assert!(preferences.endpoint_enabled);
|
||||
assert!(!preferences.endpoint_cors);
|
||||
let generation = GenerationPreferences::default();
|
||||
let runtime = RuntimePreferences::default();
|
||||
assert!(
|
||||
@@ -677,6 +690,8 @@ mod tests {
|
||||
"glm-5.2",
|
||||
30,
|
||||
4000,
|
||||
true,
|
||||
false,
|
||||
&generation,
|
||||
&RuntimePreferences {
|
||||
speculative: SpeculativePreferences {
|
||||
@@ -690,7 +705,15 @@ mod tests {
|
||||
);
|
||||
assert!(
|
||||
database
|
||||
.update_preferences("deepseek-v4-flash", 0, 4000, &generation, &runtime,)
|
||||
.update_preferences(
|
||||
"deepseek-v4-flash",
|
||||
0,
|
||||
4000,
|
||||
true,
|
||||
false,
|
||||
&generation,
|
||||
&runtime,
|
||||
)
|
||||
.is_err()
|
||||
);
|
||||
let generation = GenerationPreferences {
|
||||
@@ -728,8 +751,11 @@ mod tests {
|
||||
..RuntimePreferences::default()
|
||||
};
|
||||
database
|
||||
.update_preferences("glm-5.2", 30, 4567, &generation, &runtime)
|
||||
.update_preferences("glm-5.2", 30, 4567, false, true, &generation, &runtime)
|
||||
.unwrap();
|
||||
let preferences = database.load_preferences().unwrap();
|
||||
assert!(!preferences.endpoint_enabled);
|
||||
assert!(preferences.endpoint_cors);
|
||||
|
||||
let project = database.create_project("DS4", "/tmp/ds4").unwrap();
|
||||
let first = database
|
||||
|
||||
Reference in New Issue
Block a user