umbau(boxwart): Backend auf Box-Wart umgestellt – Waechter, Modell-Nutzung, Zeitplan
MC2 wird Updater, Waechter und Modell-Radar (Konzept „MC2 als Box-Wart“, 23.09.2026). - Neuer Waechter (services/waechter.py) loest sentry.py ab: Dienste, Timer-Laeufe, Hermes-Jobs samt Werkzeugfehlern, Kern-HTTP-Proben, Platte. Abgestuerzte Dienste startet er selbst neu (max. 2/h), rote Hinweise gehen an Telegram und Lucy. Laeuft im mc2-steward; waehrend eines Updates haelt er still. - Neue Schnittstellen (routers/boxwart.py): /api/start, /api/hinweise (+ Aktionen), /api/modelle/nutzung, /api/zeitplan. - Modell-Nutzung aus dem llama-swap-Journal (wer fragt wie oft, 24 h je Stunde). - Entfernt: Ideen, Wissen, Chronik, Skills, Verbinden, Konsolen-Proxy, /api/events; Lucys Werkzeug idee_notieren; box_status nennt jetzt die offenen Hinweise. - Behoben: projekte-sync ueberspringt leere Gitea-Repos (lief seit 07.09. stuendlich rot); Motor-Version kam aus dem verwaisten /opt/llamacpp statt /opt/llamacpp-vulkan. - Erste Backend-Tests (8) fuer Waechter und Modell-Nutzung. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
3669a6e7dc
commit
12dadfe6ef
+11
-19
@@ -93,27 +93,19 @@ def box_status() -> str:
|
||||
lines += [f"{'✅' if s.get('ok') else '❌'} {s.get('name')}" for s in svcs]
|
||||
except Exception:
|
||||
lines.append("(Dienste-Liste nicht abrufbar)")
|
||||
# Hinweise des Wächters (Box-Wart, 09/2026): das, was der Commander tun sollte.
|
||||
try:
|
||||
hinweise = _get("/api/hinweise").get("hinweise", [])
|
||||
except Exception:
|
||||
hinweise = []
|
||||
if hinweise:
|
||||
lines.append(f"Offene Hinweise ({len(hinweise)}):")
|
||||
lines += [f"{'🔴' if h.get('stufe') == 'rot' else '🟡'} {h.get('titel')}" for h in hinweise[:5]]
|
||||
else:
|
||||
lines.append("Keine offenen Hinweise.")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def idee_notieren(titel: str, notiz: str = "") -> str:
|
||||
"""Legt eine Idee/einen Auftrag des Commanders in die Ideen-Queue der Box. Nutzen, sobald
|
||||
der Commander eine Idee für später äußert ('wäre cool wenn …', 'bau mal irgendwann …',
|
||||
'die Box soll …') — NICHT nur versprechen. Die Box arbeitet die Idee selbst aus und baut;
|
||||
das Ergebnis landet als Branch auf Gitea; gemergt wird nur vom Commander (Ampel gruen).
|
||||
titel = kurze deutsche Überschrift; notiz = seine Worte plus nötiger Kontext."""
|
||||
try:
|
||||
r = _post("/api/ideen", {"titel": titel, "notiz": notiz})
|
||||
except httpx.HTTPStatusError as e:
|
||||
try:
|
||||
detail = e.response.json().get("detail", "")
|
||||
except Exception:
|
||||
detail = e.response.text[:200]
|
||||
return f"Fehlgeschlagen: {detail}"
|
||||
except Exception as exc:
|
||||
return f"Queue nicht erreichbar ({exc})."
|
||||
return f"Idee ist in der Queue ({r.get('id', '?')}). Die Box arbeitet sie von allein ab."
|
||||
# idee_notieren ist mit der Ideen-Warteschlange entfallen (Box-Wart-Umbau 09/2026).
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user