Enhance service merging logic in session management to support nested updates

This commit is contained in:
Xin Wang
2026-02-26 10:31:07 +08:00
parent 443f2d1541
commit f62af6433f

View File

@@ -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