diff --git a/burst-compute/w44-portal-toggle-step5-2026-07-23.md b/burst-compute/w44-portal-toggle-step5-2026-07-23.md new file mode 100644 index 0000000..df550f3 --- /dev/null +++ b/burst-compute/w44-portal-toggle-step5-2026-07-23.md @@ -0,0 +1,21 @@ +# W44 Burst-Compute: Portal-Toggle, Schritt 5 (2026-07-23) -- ALLE 5 SCHRITTE FERTIG + +**Datei:** `/opt/gpu1-status/app.py`, GPUPCs-Tab (`loadShadow()`-Funktion). + +## Gebaut +- Neue Karte "Auto-Burst (Monster + GPU-Shadow)" im GPUPCs-Tab, nach der Monster-PC-Karte, vor der bestehenden "Token & Auto-Start"-Karte. +- Checkbox "An" (bindet an `enabled`), Zahlenfeld Idle-Timeout (5-240 Min), Live-Anzeige `monster_desired`/`shadow_desired`/letzter Tick. +- `loadAutoBurst()` liest `/api/burst/dispatcher/status`, `saveAutoBurst()` schreibt `/api/burst/dispatcher/toggle` (aus Schritt 4) -- kein neuer Endpoint noetig, nur UI-Anbindung an bereits gebaute+verifizierte Logik. +- Wird beim Oeffnen des GPUPCs-Tabs automatisch geladen (`loadAutoBurst()` in `loadShadow()`-Renderpfad). + +## Ablauf (Portal-Skill) +1. Fresh-Read+Backup: `app.py.bak-w44-step5-20260723_184246`, md5 identisch mit Live-Stand +2. Zwei Unique-String-Replaces (`assert count==1` je Anker: Karten-HTML-Einfuegung + JS-Funktionsblock vor `loadShadow(){`) +3. `py_compile` OK +4. Testinstanz `:9092`: `/`=200, HTML enthaelt `ab-box`, `ab-enabled`, `loadAutoBurst`, `saveAutoBurst` -- gestoppt +5. Vor dem Restart auffaelig: MainPID war zwischen Schritt4-Verifikation und jetzt bereits einmal gewechselt (207132 -> 207758, 18:40:54) -- vermutlich ein anderer Worker (#45/Cleanup/#53) hat parallel restartet. Kein Konflikt, da mein Fresh-Read fuer Schritt5 NACH diesem fremden Restart erfolgte (18:42:46) und die Anker sauber getroffen haben. +6. `systemctl restart` -- PID-Gegenprobe: 207758 -> 208816 (Start 18:44:47, nach Edit) +7. Live: `:9090/`=200, HTML enthaelt alle neuen Marker, `cp.go-ki.eu`=200 + +## Status: Default bleibt AUS +`auto_burst_state.json` existiert weiterhin nicht -> `enabled=False`. Der Portal-Toggle ist jetzt der korrekte, von Baer selbst bedienbare Weg, Auto-Burst live zu aktivieren -- ich habe das NICHT selbst im Code hart auf `True` gesetzt (siehe Begruendung im Gesamt-Beleg an main).