From 3d1ef155bf9846f39725bf22c54666da2bc42330 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sun, 26 Apr 2026 02:07:33 +0300 Subject: feat: add live config reload --- src/api/schema.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/api/schema.rs') diff --git a/src/api/schema.rs b/src/api/schema.rs index 6cb81c12..f7665fd9 100644 --- a/src/api/schema.rs +++ b/src/api/schema.rs @@ -14,6 +14,8 @@ pub enum Method { Ping(PingParams), #[serde(rename = "server.stop")] ServerStop(EmptyParams), + #[serde(rename = "server.reload_config")] + ServerReloadConfig(EmptyParams), #[serde(rename = "workspace.create")] WorkspaceCreate(WorkspaceCreateParams), #[serde(rename = "workspace.list")] @@ -475,6 +477,10 @@ pub enum ResponseResult { target: IntegrationTarget, details: IntegrationUninstallResult, }, + ConfigReload { + status: crate::config::ConfigReloadStatus, + diagnostics: Vec, + }, Ok {}, } @@ -765,6 +771,19 @@ mod tests { assert_eq!(restored, request); } + #[test] + fn request_round_trips_for_server_reload_config() { + let request = Request { + id: "req_reload".into(), + method: Method::ServerReloadConfig(EmptyParams::default()), + }; + + let json = serde_json::to_value(&request).unwrap(); + assert_eq!(json["method"], "server.reload_config"); + let restored: Request = serde_json::from_value(json).unwrap(); + assert_eq!(restored, request); + } + #[test] fn unknown_method_is_rejected() { let json = r#"{"id":"req_1","method":"nope","params":{}}"#; -- cgit v1.2.3