From 37e0a28229238b40570974dd858be6937bae5a25 Mon Sep 17 00:00:00 2001 From: Niels Vanmassenhove Date: Sun, 22 Feb 2026 19:52:20 +0100 Subject: [PATCH] fix namespace persistence by removing alias --- appdaemon/models/config/misc.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/appdaemon/models/config/misc.py b/appdaemon/models/config/misc.py index 00833c509..c728932fc 100644 --- a/appdaemon/models/config/misc.py +++ b/appdaemon/models/config/misc.py @@ -36,16 +36,24 @@ class FilterConfig(BaseModel): class NamespaceConfig(BaseModel): writeback: ADWritebackType | None = None - persist: bool = Field(default=False, alias="persistent") + persist: bool = Field(default=False) save_interval: ParsedTimedelta = Field(default=timedelta(seconds=1)) @model_validator(mode="before") @classmethod def validate_persistence(cls, values: Any): - """Sets persistence to True if writeback is set to safe or hybrid.""" + """Sets persistence to True if writeback is set to safe or hybrid. + + Also handles backward compatibility by converting the legacy 'persistent' + field name to 'persist'. + """ match values: - case {"writeback": wb} if wb is not None: - values["persist"] = True + case dict(): + # Handle backward compatibility: convert 'persistent' to 'persist' + if "persistent" in values: + values["persist"] = values.pop("persistent") + if values.get("writeback") is not None: + values["persist"] = True case _ if getattr(values, "writeback", None) is not None: values.persist = True return values