diff --git a/backend/services/llamaswap.py b/backend/services/llamaswap.py index 830916e..a3b4c99 100644 --- a/backend/services/llamaswap.py +++ b/backend/services/llamaswap.py @@ -409,6 +409,17 @@ def set_group(group: str, members: list[str], swap: bool = False, persist: bool groups = cfg.setdefault("groups", {}) groups[group] = {"swap": swap, "persist": persist, "persistent": persist, "members": list(members)} + # Härtung: eine persistente (immer-warme) Gruppe verlangt ttl:0 je Mitglied. + # `persistent` schützt NUR gegen Verdrängung durch andere Modelle, NICHT gegen + # ttl-Selbstentladen — ein Mitglied mit ttl>0 fällt trotz Gruppen-Mitgliedschaft + # nach Leerlauf aus dem Warm-Set (live gefunden 03.07.2026: VL-30B mit ttl 300 + # entlud sich alle 5 Min). So kann dieser Fehler beim Warm-Set-Umbau nie wieder passieren. + if persist: + models = cfg.get("models") or {} + for mid in members: + spec = models.get(mid) + if isinstance(spec, dict): + spec["ttl"] = 0 write_config(cfg)