From f62af6433f76a718189acc02bebed610ea71ffdc Mon Sep 17 00:00:00 2001 From: Xin Wang Date: Thu, 26 Feb 2026 10:31:07 +0800 Subject: [PATCH] Enhance service merging logic in session management to support nested updates --- engine/core/session.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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