Save manifest when worker_image or network changes, not just roots
Fixes stale claw-ts-worker:latest image name persisting in profiles.json after the image was renamed to claw-telegram:latest. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -980,10 +980,12 @@ pub fn load_manifest(config: &GatewayConfig) -> Result<GatewayManifest, GatewayE
|
||||
pub fn load_or_init_manifest(config: &GatewayConfig) -> Result<GatewayManifest, GatewayError> {
|
||||
if config.manifest_path.exists() {
|
||||
let mut manifest = GatewayManifest::load(&config.manifest_path)?;
|
||||
// Re-apply env var overrides so changed roots take effect without
|
||||
// Re-apply env var overrides so changed config takes effect without
|
||||
// deleting profiles.json.
|
||||
let old_state_root = manifest.worker_defaults.host_state_root.clone();
|
||||
let old_workspace_root = manifest.worker_defaults.host_workspace_root.clone();
|
||||
let old_image = manifest.gateway.worker_image.clone();
|
||||
let old_network = manifest.gateway.worker_network.clone();
|
||||
manifest.worker_defaults.host_state_root = config.worker_host_state_root.clone();
|
||||
manifest.worker_defaults.host_workspace_root = config.worker_host_workspace_root.clone();
|
||||
manifest.gateway.worker_image = config
|
||||
@@ -991,10 +993,10 @@ pub fn load_or_init_manifest(config: &GatewayConfig) -> Result<GatewayManifest,
|
||||
.clone()
|
||||
.unwrap_or(manifest.gateway.worker_image);
|
||||
manifest.gateway.worker_network = config.worker_network.clone();
|
||||
let roots_changed = old_state_root != manifest.worker_defaults.host_state_root
|
||||
|| old_workspace_root != manifest.worker_defaults.host_workspace_root;
|
||||
// Migrate existing profile paths if root changed
|
||||
if old_state_root != manifest.worker_defaults.host_state_root
|
||||
|| old_workspace_root != manifest.worker_defaults.host_workspace_root
|
||||
{
|
||||
if roots_changed {
|
||||
for profile in &mut manifest.profiles {
|
||||
if profile.worker.host_state_dir.starts_with(&old_state_root) {
|
||||
let suffix = profile
|
||||
@@ -1015,6 +1017,12 @@ pub fn load_or_init_manifest(config: &GatewayConfig) -> Result<GatewayManifest,
|
||||
manifest.worker_defaults.host_workspace_root.join(suffix);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Save if anything changed
|
||||
if roots_changed
|
||||
|| old_image != manifest.gateway.worker_image
|
||||
|| old_network != manifest.gateway.worker_network
|
||||
{
|
||||
manifest.save_atomic(&config.manifest_path)?;
|
||||
}
|
||||
return Ok(manifest);
|
||||
|
||||
Reference in New Issue
Block a user