Record verified router rollout and execute actual smoke probes

This commit is contained in:
Mikei386
2026-09-20 19:18:38 +02:00
parent 6071b1a2cd
commit 82c50962bf
5 changed files with 111 additions and 13 deletions
+91
View File
@@ -0,0 +1,91 @@
# Router-Korrekturen vom 20. September 2026
Die Funktionsänderungen aus Commit `6071b1a` wurden auf Athena ausgerollt.
Nur Profile Controller und Router wurden neu erstellt. Medium, Qwen3-TTS,
Gateway, Netzwerk, Kernel und NVIDIA-Treiber blieben unverändert.
## Änderungen
- Die Modusanzeige liest einen gemeinsamen Controller-Snapshot statt 16
identischer HTTP-Abfragen. Der Controller liest die Containerliste einmal
statt separat für alle acht Spezialdienste. Eine erstmalige Video-UI-Abfrage
kann zusätzliche Docker-Exec-Aufrufe erfordern; deren Fehler sind isoliert.
- `/profiles/status` liefert den aktiven Textprofilnamen unabhängig von den
Spezialworkern. Fehlende optionale Container erscheinen als `missing` und in
`worker_errors`, ohne den gesamten Status auf HTTP 503 zu setzen.
- Chat-Completions und andere profilbezogene Requests begrenzen die Wartezeit
auf den GPU-Koordinator mit `CHAT_WAIT_TIMEOUT` (Standard 300 Sekunden).
Bei Überschreitung folgt HTTP 503 mit `model_wait_timeout`. Das Zeitlimit
für einen anschließend gestarteten Profilwechsel bleibt `SWITCH_TIMEOUT`;
es handelt sich nicht um ein Gesamtzeitlimit für die Generierung.
- Der Chat-Pfad verwendet die bereits geprüfte Readiness-Antwort der Profilwahl
weiter. Bildvalidierung läuft vor dem GPU-Lock. Ultra lehnt Bilder vor einem
Profilwechsel mit HTTP 400 ab und meldet im nativen Katalog nur Texteingaben.
- Die Profilmatrix generiert nun auch die Vision-Fähigkeit des Routerregisters.
- Bereits laufende TTS-Container werden nicht erneut gestartet. Fehlende
Profilcontainer werden vor dem Stoppen anderer Dienste erkannt.
- Startup-Recovery akzeptiert denselben geprüften kleinen MTP-Kontextaufschlag
wie normale Profilwechsel und vermeidet damit unnötige Wiederherstellung.
- `manage.sh validate` und `manage.sh deploy` führen die schnellen, GPU-freien
Releaseprüfungen aus. `dev/check.sh --integration` ergänzt lokale Mock-Tests.
- Der Smoke-Test übergibt sein Python-Prüfprogramm jetzt mit `docker exec -i`
tatsächlich an den Container; ohne `-i` wurde der Here-Document-Inhalt nicht
ausgeführt. Die überholte Netzwerk-Testannahme wurde auf Dashboard und
Portainer begrenzt; der bestehende WebRTC-Namespace bleibt erhalten.
## Messung auf Athena
Je drei aufeinanderfolgende lesende Abfragen im Routercontainer, vor und nach
dem Deployment, keine parallele Chat-Anfrage während der Statusmessung:
| Endpunkt | Vorher (ms) | Nachher (ms) |
|---|---|---|
| `/status` | 708,97 / 799,55 / 742,91 | 52,02 / 52,47 / 52,70 |
| `/ready` | 42,67 / 40,80 / 42,71 | 10,62 / 12,75 / 9,76 |
Der Median von `/status` sank um rund 93 Prozent (Faktor 14,2).
Das belegt weniger Verwaltungsaufwand; es ist kein Benchmark für die
Token-Generierung oder die Leistung der GPUs.
## Prüfung
- 86 Python-Unit-Tests lokal erfolgreich, außerdem auf Athena erfolgreich.
- 68 lokale Integrationsprüfungen mit Mock-Modell-, Bild- und Sprachservern
erfolgreich, einschließlich Streaming und konkurrierender Profilanfragen.
- Profilmatrix und Compose-Konfiguration geprüft.
- Nach dem Deployment: Router und Controller gesund, `/health` und `/ready`
erfolgreich, keine Workerfehler, korrektes Ultra-Modellangebot.
- Ein echter Chat im bereits geladenen Medium-Profil antwortete mit `OK`
(zwei Ausgabetokens bei einem Limit von acht).
- Medium läuft weiter mit seinem Startzeitpunkt vom 19. September,
19:41:46 UTC; Gateway unverändert seit 17. September, 09:05:07 UTC.
- Im geprüften Kerneljournal ab 20. September, 19:00 Uhr Ortszeit keine neuen
Kernel-Panic-, OOM-Kill- oder NVIDIA-Xid-Meldungen.
Keine GPU-Stresstests, Profilwechsel-Benchmarks, Treiberänderungen oder
vollständige Wiederherstellung wurden ausgeführt. Bildmodell-Haltezeiten,
zusätzliche Parallelität und größere GPU-Speicherbudgets wurden nicht verändert.
## Rückfall und Git-Stand
Vorherige Live-Anpassungen wurden bytegenau mit dem veröffentlichten Quellstand
verglichen und in `safety/pre-router-audit-20260920` lokal gesichert. Der
kanonische Checkout `/opt/mike-ai/stack` wurde auf den veröffentlichten Commit
umgestellt; die frühere Abweichung von Live-Dateien und Git-HEAD ist damit für
diesen Checkout behoben. Der separate Applio-UI-Checkout wurde nicht verändert.
Unter `/opt/mike-ai/safety/router-audit-20260920` liegen die geschützte
Quell-/Konfigurationssicherung, Image-IDs und das begrenzte Deploymentskript.
Die alten Router-/Controller-Images haben zusätzliche Rollback-Tags. Diese
Sicherung auf der Systemplatte ersetzt kein externes Backup.
## Noch offene Betriebsfragen
- Die externe Restic-Konfiguration fehlt weiterhin. Ziel und Zugang müssen
festgelegt werden; ein aktiver Timer allein ist kein funktionierendes Backup.
- `/data` war zu 93 Prozent belegt (rund 63 GiB verfügbar). Es wurden keine
Modelle oder Nutzerdaten gelöscht. Zusätzliche Modellkopien und größere
Benchmarks sollten erst nach einer gezielten Speicherprüfung erfolgen.
- Für weitere Inferenzoptimierung sind repräsentative Messungen von
Modellladezeiten, Cache-Treffern und Zeit bis zum ersten Token nötig.
Die bewährten GPU-Parameter blieben aus Gründen der Fernwartbarkeit erhalten.