From 58021331e1ebede76cf8f23402798dc8f30a265e Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Fri, 3 Jul 2026 23:47:11 +0200 Subject: [PATCH] Warm-Set haerten: brains-Mitglieder bekommen automatisch ttl:0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit set_group() setzte persistent:true (Verdraengungsschutz), aber NICHT ttl:0. persistent schuetzt nur gegen Verdraengung durch andere Modelle, nicht gegen ttl-Selbstentladen → ein Mitglied mit ttl>0 faellt trotz brains-Mitgliedschaft nach Leerlauf aus dem Warm-Set (live: VL-30B mit ttl 300 entlud sich alle 5 Min). Jetzt erzwingt set_group bei persist=True ttl:0 fuer jedes Mitglied → der Fehler kann beim Warm-Set-Umbau nie wieder passieren. Co-Authored-By: Claude Opus 4.8 --- backend/services/llamaswap.py | 11 +++++++++++ 1 file changed, 11 insertions(+) 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)