diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-26 02:07:33 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-26 02:07:33 +0300 |
| commit | 3d1ef155bf9846f39725bf22c54666da2bc42330 (patch) | |
| tree | f4b4c3eca6c6f821dbfe86bcee0fd6a5d9ab9da9 /src/api/schema.rs | |
| parent | ef4182efd9f15e6c13d91d45e525b094cdcee2fe (diff) | |
feat: add live config reload
Diffstat (limited to 'src/api/schema.rs')
| -rw-r--r-- | src/api/schema.rs | 19 |
1 files changed, 19 insertions, 0 deletions
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<String>, + }, Ok {}, } @@ -766,6 +772,19 @@ mod tests { } #[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":{}}"#; let err = serde_json::from_str::<Request>(json) |
