From 95ae1b6232acdf0ac7de6b31b39553d75e556c95 Mon Sep 17 00:00:00 2001 From: queil <4584075+queil@users.noreply.github.com> Date: Thu, 30 Apr 2026 12:52:07 +0000 Subject: [PATCH] fix: bases droppped on update --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/cmd/update.rs | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0949947..782a89a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2422,7 +2422,7 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "rooz" -version = "0.150.3" +version = "0.150.4" dependencies = [ "age", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 4d44815..d48db2c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rooz" -version = "0.150.3" +version = "0.150.4" edition = "2024" [dependencies] diff --git a/src/cmd/update.rs b/src/cmd/update.rs index 1dfe010..cc6189e 100644 --- a/src/cmd/update.rs +++ b/src/cmd/update.rs @@ -42,6 +42,7 @@ impl<'a> WorkspaceApi<'a> { let format = FileFormat::from_path(config_source); let config_path = ConfigPath::from_str(&config_source)?; let mut original_body = self.config.read(workspace_key, &ConfigType::Body).await?; + let mut pre_merged: Option = None; if !interactive { match &config_path { @@ -62,13 +63,16 @@ impl<'a> WorkspaceApi<'a> { .await?; if let Some(cb) = result { original_body = cb.body; + pre_merged = cb.merged; }; } }; } - let mut original_config = - RoozCfg::deserialize_config(&original_body, format)?.unwrap(); + let mut original_config = match pre_merged { + Some(merged) => merged, + None => RoozCfg::deserialize_config(&original_body, format)?.unwrap(), + }; let config_to_apply = if interactive { let identity = self.api.get_system_config().await?.age_identity()?;