diff --git a/engine/core/session.py b/engine/core/session.py index 1cfaeac..4134f1e 100644 --- a/engine/core/session.py +++ b/engine/core/session.py @@ -770,7 +770,14 @@ class Session: if key == "services" and isinstance(value, dict): existing = merged.get("services") merged_services = dict(existing) if isinstance(existing, dict) else {} - merged_services.update(value) + for service_name, service_payload in value.items(): + current_payload = merged_services.get(service_name) + if isinstance(current_payload, dict) and isinstance(service_payload, dict): + next_payload = dict(current_payload) + next_payload.update(service_payload) + merged_services[service_name] = next_payload + else: + merged_services[service_name] = service_payload merged["services"] = merged_services else: merged[key] = value