fix: automate verified Unraid update workflows
This commit is contained in:
+1
-1
@@ -15,7 +15,7 @@
|
||||
| Platform Context MCP | Athena-/MikeAI-Wissen, begrenzter Laufzeitsnapshot und kontrollierte Dokumentationspflege | eigener Container ohne Docker-Socket, Shell, Egress oder Secrets | Kern |
|
||||
| Athena Operator MCP | Entwicklung und vollständiger Betrieb der KI-Plattform mit gebundenen Freigaben | unprivilegierte MCP-Fassade plus rootseitiger strukturierter Executor; keine freie Shell | Kern |
|
||||
| Operator-Kontext | `docs/QWEN_OPERATOR_CONTEXT.md` plus `config/operator-system-prompt.txt` | versionierte Selbstbeschreibung und Sicherheitsregeln für Qwen | Kern |
|
||||
| Unraid/MUA | MUA-Plugin auf dem HomeServer, direkter MCP-Endpunkt | read-only Automatik plus bewusst aktivierte Verwaltung in Open WebUI | Kern |
|
||||
| Unraid/MUA | MUA r019+ auf dem HomeServer, direkter MCP-Endpunkt | read-only Automatik; Verwaltung bei explizitem Änderungsauftrag; idempotente Batch-Updates | Kern |
|
||||
| Whisper | ggml-org/whisper.cpp | Service im Router-Deploy | optional |
|
||||
| XTTS-v2 | Coqui, offizielles CUDA-12.1-Image per Digest | RTX-3060-Container, Stimme `Annmarie Nele`, CPML | Kern |
|
||||
| TTS-Gateway | `platform/docker/tts-gateway/` | interne Queue, stabile deutsche Satzblöcke, automatische Erkennung rein englischer Texte und Piper-Fallback | Kern |
|
||||
|
||||
@@ -180,14 +180,17 @@ Mehrdomänen-Aufgabe erhält automatisch ein begrenztes mittleres Reasoning-
|
||||
Budget; einfache Aufgaben bleiben schnell. Allgemeine
|
||||
Webrecherche erfolgt über Open WebUIs native `search_web`/`fetch_url`-Werkzeuge;
|
||||
`web-local` ist nur noch manuell für Spezialfälle verfügbar. Dadurch bleiben
|
||||
Fachkataloge klein und kurze Profile verlieren keinen unnötigen Kontext. MUA
|
||||
mit erweiterten Verwaltungsrechten bleibt von der Automatik ausgeschlossen;
|
||||
eine automatisch bereitgestellte Verbindung erteilt niemals Schreibrechte
|
||||
oder eine Änderungsfreigabe.
|
||||
Fachkataloge klein und kurze Profile verlieren keinen unnötigen Kontext. Reine
|
||||
Unraid-Abfragen erhalten nur MUA read-only. Verlangt die aktuelle Nachricht
|
||||
ausdrücklich eine Unraid-Änderung, stellt die Automatik zusätzlich den
|
||||
Verwaltungszugang für die feste Kette Prüfen → Ändern → Verifizieren bereit.
|
||||
Die Bereitstellung ersetzt niemals die ausdrückliche Änderungsanweisung.
|
||||
|
||||
Unraid ist ausschließlich über das MUA-Plugin angebunden. Die automatische
|
||||
Verbindung `mua-readonly-local` und die bewusst aktivierte Verbindung `mua`
|
||||
nutzen denselben MUA-Endpunkt. Der frühere GraphQL-basierte Unraid-MCP wurde
|
||||
Unraid ist ausschließlich über das MUA-Plugin angebunden. Die Verbindungen
|
||||
`mua-readonly-local` und `mua` nutzen denselben MUA-Endpunkt. Mehrere bestätigte
|
||||
Docker-Updates laufen ab MUA r019 gebündelt und idempotent; echte Image-IDs
|
||||
verhindern Neuerstellungen aufgrund eines veralteten Statuscaches. Der frühere
|
||||
GraphQL-basierte Unraid-MCP wurde
|
||||
entfernt und gehört weder zum Start noch zum Recovery.
|
||||
|
||||
Der GitHub-Container läuft produktiv. Token-Datei, interner
|
||||
|
||||
@@ -58,7 +58,11 @@ laufen, sondern alle fachlichen Funktionen geprüft wurden.
|
||||
- [ ] native OpenWebUI-Websuche funktioniert ohne `web-local`; Auto Tool Selector wählt GitHub, Home
|
||||
Assistant, ARR, Navidrome, Unraid read-only, Athena-Plattformwissen und
|
||||
den Athena Operator korrekt
|
||||
- [ ] normale Unterhaltung erhält kein MCP; MUA wird niemals automatisch gewählt
|
||||
- [ ] normale Unterhaltung erhält kein MCP; reine Unraid-Abfragen erhalten nur
|
||||
MUA read-only; ausdrücklich verlangte Unraid-Änderungen erhalten automatisch
|
||||
MUA read-only plus Verwaltung
|
||||
- [ ] MUA r019 oder neuer meldet `unraid_docker_update_verified_batch`; ein
|
||||
Wiederholungstest mit aktuellem Image endet ohne Container-Neuerstellung
|
||||
- [ ] eine synthetische CSV wird lokal ausgewertet; kein Webwerkzeug erhält Dateidaten
|
||||
- [ ] ein rekursiver GitHub-Komplettbaum ist nicht als Werkzeug verfügbar
|
||||
- [ ] der zweite identische Werkzeugaufruf wird gestoppt und eine Abschlussantwort erzeugt
|
||||
|
||||
+5
-3
@@ -13,9 +13,11 @@ Reihenfolge ist absichtlich festgelegt:
|
||||
jüngste Nutzernachricht und stellt pro Anfrage höchstens drei passende MCPs
|
||||
bereit. Er erkennt GitHub, Home Assistant, Sonarr/Radarr, Navidrome,
|
||||
Unraid-Diagnose und Athena-Plattformwissen. Manuell gewählte Werkzeuge
|
||||
bleiben erhalten. MUA mit erweiterten Verwaltungsrechten wird nie
|
||||
automatisch zugeschaltet. Die Auswahl eines MCP ist ausdrücklich keine
|
||||
Freigabe für eine Zustandsänderung.
|
||||
bleiben erhalten. Bei einer ausdrücklich verlangten Unraid-Änderung werden
|
||||
MUA-Diagnose und -Verwaltung gemeinsam bereitgestellt; reine Statusfragen
|
||||
bleiben read-only. Docker-Updates verwenden MUA r019 gebündelt, vergleichen
|
||||
echte Image-IDs und erhalten den Laufzustand. Die Auswahl eines MCP ist
|
||||
ausdrücklich keine Freigabe für eine andere Zustandsänderung.
|
||||
4. `MikeAI Stability Guard`, Priorität 30: begrenzt einzelne und gesamte
|
||||
Werkzeugresultate, verdichtet bei Bedarf zuerst alte Tool-Ausgaben und
|
||||
Dialogteile und stoppt identische beziehungsweise ausufernde Tool-Schleifen.
|
||||
|
||||
@@ -242,16 +242,23 @@ WireGuard-Adresse sind alle Fach-MCPs direkt erreichbar.
|
||||
| ARR | Sonarr/Radarr, Indexersuche, kontrollierte Grabs | Lesen; Schreiben nur Preview/Approval |
|
||||
| Navidrome | Bibliothek, Empfehlungen, Playlists/Favoriten | eigener Benutzer; gezielt aktivieren |
|
||||
| MUA read-only | Host-, Docker-, Array-, Netzwerk- und Logdiagnose | automatischer Standard |
|
||||
| MUA/Admin | eng definierte Unraid-Verwaltung | bewusst aktivieren |
|
||||
| MUA/Admin | eng definierte Unraid-Verwaltung | bei ausdrücklich verlangter Änderung automatisch zusätzlich bereitgestellt |
|
||||
|
||||
Für automatische Unraid-Diagnose existiert in Open WebUI zusätzlich
|
||||
`mua-readonly-local`. Diese Verbindung nutzt denselben lokalen MUA-Endpunkt,
|
||||
blendet aber Start/Stop, Installation, Änderungen und die freie Root-Shell
|
||||
serverseitig in Open WebUI aus. Die vollständige Verbindung `mua` wird niemals
|
||||
automatisch bereitgestellt.
|
||||
serverseitig in Open WebUI aus. Die vollständige Verbindung `mua` wird nur bei
|
||||
einer in der aktuellen Nachricht ausdrücklich verlangten Unraid-Änderung
|
||||
zusätzlich bereitgestellt.
|
||||
Es gibt keinen zweiten GraphQL-basierten Unraid-MCP. Schlägt MUA fehl, darf
|
||||
nicht auf GraphQL ausgewichen oder dessen API eigenmächtig aktiviert werden.
|
||||
|
||||
Für mehrere Docker-Image-Updates ist
|
||||
`unraid_docker_update_verified_batch` verbindlich. Es ersetzt wiederholte
|
||||
Einzelaufrufe, vergleicht echte Image-IDs, erhält laufend/gestoppt und
|
||||
verifiziert das Ergebnis im selben Aufruf. Details stehen in
|
||||
`docs/UNRAID_AUTOMATIC_UPDATE_WORKFLOW.md`.
|
||||
|
||||
Der vorhandene Deemix-Dienst läuft auf Unraid und ist als externe Abhängigkeit
|
||||
im Diensteverzeichnis eingetragen. Für ein Deemix-MCP wird standardmäßig nur
|
||||
ein Relay auf Athena gebaut; ein zweites Deemix-Backend erfordert einen
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
# Automatischer Unraid-Docker-Updateablauf
|
||||
|
||||
Stand: 24. August 2026
|
||||
|
||||
## Ziel
|
||||
|
||||
Ein ausdrücklich formulierter Auftrag wie „prüfe die Docker-Updates auf Unraid,
|
||||
führe bestätigte Updates aus und kontrolliere das Ergebnis“ muss in Open WebUI
|
||||
ohne manuelles Aktivieren von Werkzeugen vollständig ablaufen.
|
||||
|
||||
## Automatische Werkzeugwahl
|
||||
|
||||
Der `MikeAI Auto Tool Selector` unterscheidet zwischen Lesen und Ändern:
|
||||
|
||||
- reine Status- oder Updatefragen erhalten nur `mua-readonly-local`;
|
||||
- eine in der aktuellen Nachricht ausdrücklich verlangte Unraid-Änderung erhält
|
||||
`mua-readonly-local` und `mua` gemeinsam;
|
||||
- Formulierungen wie „nur prüfen“ oder „keine Änderungen“ unterdrücken den
|
||||
Verwaltungszugang;
|
||||
- die bereitgestellten Verbindungen sind keine allgemeine Freigabe. Der Auftrag
|
||||
muss die konkrete Änderung selbst enthalten.
|
||||
|
||||
Der vorgesehene Ablauf lautet immer:
|
||||
|
||||
1. Zustand und Kandidaten read-only erfassen.
|
||||
2. Die engste gebündelte Änderung ausführen.
|
||||
3. Das Ergebnis read-only oder durch die gebündelte technische Verifikation
|
||||
kontrollieren.
|
||||
|
||||
## Verbindliches Batch-Werkzeug
|
||||
|
||||
MUA r019 stellt `unraid_docker_update_verified_batch` bereit. Das Werkzeug
|
||||
akzeptiert 1 bis 25 exakte, mit `|` getrennte Containernamen.
|
||||
|
||||
Für jeden Container liest es zunächst Container-ID, Image-ID und Laufzustand.
|
||||
Danach zieht es das im Unraid-Benutzertemplate konfigurierte Image und
|
||||
vergleicht die unveränderliche lokale Image-ID. Bereits aktuelle Container
|
||||
werden vollständig übersprungen – auch wenn Unraids Statuscache noch ein Update
|
||||
meldet. Nur bei tatsächlich geänderter Image-ID wird neu erstellt. Laufend
|
||||
bleibt laufend, gestoppt bleibt gestoppt.
|
||||
|
||||
Die kompakte Nachkontrolle enthält Container- und Image-ID-Änderung,
|
||||
Endzustand, RestartCount und Healthcheck-Status. Templates, Ports, Volumes und
|
||||
Netzwerke werden nicht verändert. Eine vorhandene Freigabe des bisherigen
|
||||
Einzelwerkzeugs `unraid_docker_update` aktiviert nach dem Upgrade automatisch
|
||||
auch die sicherere Batch-Variante.
|
||||
|
||||
## Idempotenz
|
||||
|
||||
Der Cache `/var/lib/docker/unraid-update-status.json` ist nur ein
|
||||
Kandidatenhinweis. Er darf nie allein eine Neuerstellung auslösen. Autoritativ
|
||||
ist der Image-ID-Vergleich nach dem Pull.
|
||||
|
||||
Ein wiederholter Lauf muss bei einem aktuellen Image folgendes melden:
|
||||
|
||||
```text
|
||||
result: already-current
|
||||
recreated: false
|
||||
container_id_changed: false
|
||||
image_id_changed: false
|
||||
```
|
||||
|
||||
## Produktiver Regressionstest vom 24. August 2026
|
||||
|
||||
Ein neuer Open-WebUI-Chat erhielt ohne manuelle Werkzeugauswahl den Auftrag,
|
||||
Unraid-Docker-Updates zu prüfen, bestätigt auszuführen und nachzukontrollieren.
|
||||
|
||||
- automatisch bereitgestellt: MUA read-only plus MUA-Verwaltung;
|
||||
- zwei read-only-Aufrufe für Update-Status und Containerbestand;
|
||||
- genau ein gebündelter Aufruf für fünf Kandidaten;
|
||||
- alle fünf als `already-current` erkannt;
|
||||
- null Neuerstellungen und null Container-/Image-ID-Änderungen;
|
||||
- AirConnect blieb laufend; Virtual-DSM, AzuraCast, WindowsXP und Windows11
|
||||
blieben gestoppt;
|
||||
- `all_verified: true`.
|
||||
|
||||
Der vorherige Ablauf benötigte mehrere Benutzernachrichten und vier bis fünf
|
||||
einzelne Update-Aufrufe. Dieser Pfad ist ersetzt.
|
||||
|
||||
## Recovery-Prüfung
|
||||
|
||||
1. MUA-Health muss r019 oder neuer melden.
|
||||
2. Open WebUI muss den Auto Tool Selector 3.3.0 oder neuer enthalten.
|
||||
3. „Gibt es Docker-Updates auf Unraid? Nur prüfen“ darf nur MUA read-only
|
||||
bereitstellen.
|
||||
4. Ein ausdrücklich schreibender synthetischer Auftrag muss beide MUA-Zugänge
|
||||
bereitstellen und das Batch-Werkzeug wählen.
|
||||
5. Ein Wiederholungstest mit aktuellem Image darf keine Neuerstellung auslösen.
|
||||
|
||||
Reference in New Issue
Block a user