feat: Improve integration settings loading by ensuring proper mapping and type validation

This commit is contained in:
JB
2025-11-28 19:03:33 -08:00
parent 48e9534b68
commit c69e5af54d
+6 -1
View File
@@ -308,9 +308,14 @@ def load_settings() -> Dict[str, Any]:
def load_integration_settings() -> Dict[str, Dict[str, Any]]: def load_integration_settings() -> Dict[str, Dict[str, Any]]:
defaults = integration_defaults() defaults = integration_defaults()
cfg = load_config() or {} cfg = load_config() or {}
# Integrations are stored under the "integrations" key in the config
stored_integrations = cfg.get("integrations", {})
if not isinstance(stored_integrations, Mapping):
stored_integrations = {}
integrations: Dict[str, Dict[str, Any]] = {} integrations: Dict[str, Dict[str, Any]] = {}
for key, default in defaults.items(): for key, default in defaults.items():
stored = cfg.get(key) stored = stored_integrations.get(key)
merged: Dict[str, Any] = dict(default) merged: Dict[str, Any] = dict(default)
if isinstance(stored, Mapping): if isinstance(stored, Mapping):
for field, default_value in default.items(): for field, default_value in default.items():