Save manifest when worker_image or network changes, not just roots
Build Claw Telegram / build (push) Successful in 5m39s
Build Claw Telegram / cleanup (push) Successful in 0s

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:
Wylabb
2026-04-08 02:42:45 +02:00
parent 4c71b367f5
commit b185dfe36f
+12 -4
View File
@@ -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);