]> ### 2026.08.29.r026 - Erkennt optionale Agent-Werkzeugcontainer dynamisch über `mike.ai.role=toolbox` statt über einen fest eingebauten Namen. - Die WebGUI bietet den Toolbox-Schalter nur bei vorhandenem Label an und zeigt andernfalls eine konkrete Einrichtungsanleitung. - Bei Aktivierung erhalten MCP-Clients den aktuellen Containernamen und die Nutzung über `unraid_system_shell`/`docker exec` als Serverhinweis. ### 2026.08.28.r025 - Die freie Unraid-Shell ist als direkter Host-Terminalweg beschrieben, damit Agenten sie statt lokaler Proxy-Skripte oder MUA-Quellcodeanalyse verwenden. - Mehrzeilige Skripte bis 256 KiB und synchrone Laufzeiten bis 30 Minuten werden unterstützt; nur noch längere Arbeiten benötigen die vorhandenen asynchronen Job-Werkzeuge. ### 2026.08.25.r024 - Container-Inspect liefert standardmäßig nur Status, Image, Netzwerkmodus und Ports; Umgebungsvariablennamen und Mounts sind nur noch über `detail=full` enthalten. - Reduziert große MCP-Ausgaben bei gezielten Containerdiagnosen und hält Secrets weiterhin vollständig aus den Antworten heraus. ### 2026.08.24.r023 - Begrenzt die Ausgabe der Nur-Lese-Shell bereits serverseitig auf standardmäßig 12.000 Zeichen und erlaubt ein explizites Limit von 1.000 bis 30.000 Zeichen. - Präzisiert die Werkzeugbeschreibung für eine zielgerichtete Diagnosekette statt breiter Konfigurations- und Verzeichnisabfragen. ### 2026.08.24.r022 - Allgemeine asynchrone Root-Jobs mit getrennten Werkzeugen für Start, kompakten Status und Aufräumen verhindern HTTP-Timeouts bei langen autorisierten Arbeiten. - Bestehende Freigaben der kritischen Root-Shell erhalten dieselbe Berechtigungsklasse automatisch; Nur-Lese-Profile bleiben unverändert. - Jobstatus enthält nur Zustand, Exit-Code und begrenzte, redigierte Log-Enden. Kommandoargumente und mögliche Secrets werden nicht zurückgegeben. ### 2026.08.24.r021 - Die gefilterte Sammlungssuche beendet den Abstieg an einem passenden Verzeichnis. Episodenordner fluten dadurch nicht mehr das begrenzte Erkennungsergebnis. - Der zweite Aufruf auf den gefundenen Sammlungspfad bleibt unverändert und liefert die vollständige gebündelte Bestandsaufnahme. ### 2026.08.24.r020 - Neues begrenztes Nur-Lese-Werkzeug `unraid_files_inventory` erfasst Datei- und Ordnernamen eines Shares in einem Aufruf, ohne Dateiinhalte zu lesen. - Ein Namensfilter findet gezielt Sammlungsordner; ein zweiter gebündelter Aufruf inventarisiert den exakten Treffer. Medienprüfungen benötigen keine Kette aus wiederholten `ls`/`find`-Aufrufen mehr. - Bestehende Freigaben der Nur-Lese-Shell erhalten das engere Inventarwerkzeug automatisch, ohne Schreibrechte hinzuzufügen. ### 2026.08.24.r019 - Ein gebündelter Docker-Updateablauf prüft echte Image-IDs, überspringt bereits aktuelle Images trotz veraltetem Unraid-Cache und erhält den ursprünglichen Laufzustand. - Bis zu 25 ausdrücklich benannte Container werden in einem Werkzeugaufruf aktualisiert und anschließend kompakt auf Container-ID, Zustand, RestartCount und Health geprüft. - Eine bestehende Freigabe des bisherigen Einzel-Update-Werkzeugs schaltet automatisch dessen sicherere Batch-Variante frei. ### 2026.08.24.r018 - Added focused, batched container-log analysis via `focus_terms` to avoid repeated shell/grep loops. - Repaired the repository self-test command. ### 2026.08.24.r017 - Community-Applications-Suche akzeptiert bis zu fünf mit `|` getrennte Namens-, Schreib- oder Zweckvarianten in einem einzigen begrenzten Feed-Durchlauf. - Treffer nennen die tatsächlich passenden Varianten; kleine Agenten müssen Synonyme nicht mehr in einzelnen Werkzeugrunden abfragen. ### 2026.08.23.r016 - Docker-Update-Status wird primär über Unraids nativen Containernamen-Schlüssel aufgelöst; Image-, `library/`- und `:latest`-Varianten bleiben als kompatible Fallbacks erhalten. - Alternative Cacheformate und boolesche oder textuelle Statuswerte werden global normalisiert, statt einzelne Container wie Windows11 und WindowsXP als `unknown` zu verlieren. - Unvollständige Ergebnisse enthalten `unknown_count`, `status_complete` und kennzeichnen `updates_available` ausdrücklich als Mindestzahl. ### 2026.08.22.r015 - Docker-Liste kann serverseitig nach running/stopped/created/exited filtern und liefert verbindliche Zustandszähler. - Kompakte Antworten ohne Live-Metriken sind nun Standard; CPU/RAM/I/O und Detailfelder werden nur bei Bedarf erzeugt. - Die Werkzeugbeschreibung weist kleine Modelle ausdrücklich auf state=running für aktive Container hin. ### 2026.08.21.r014 - CA-Template-Normalisierung: Fehlende Mode-Attribute werden ergänzt, damit Unraids Docker-Manager Community-Apps ohne PHP-Warnungen einliest. ### 2026.08.21.r013 - CA-Port-Override-Fix: Numerische XML-Ziele wie Port 8080 werden nach PHPs JSON-Dekodierung sicher als Text normalisiert. ### 2026.08.21.r012 - CA-Installationsfix: Vorhandene Container werden über eine exakte Docker-Namensabfrage erkannt statt durch fehleranfällige Interpretation von Docker-Fehlertexten. ### 2026.08.21.r011 - CA-Vorschau-Fix: asynchrone Bun-Dateiprüfungen werden korrekt abgewartet; freie Container- und Templatenamen werden nicht mehr fälschlich als belegt gemeldet. ### 2026.08.21.r010 - Sieben kompakte Unraid-Lesewerkzeuge für Systemzustand, Storage/Parity, SMART, Benachrichtigungen, Shares und Docker-Update-Status. - Community Applications: offizieller Feed, kompakte Suche sowie sicherer Vorschau- und Installationsablauf. - CA-Installationen benötigen ein exaktes, zehn Minuten gültiges Freigabeticket und erzeugen reguläre Unraid-Benutzertemplates für die GUI-Verwaltung. - PHP-Helfer werden ohne Shell-Interpreter als direkte Argumentliste gestartet. ### 2026.08.21.r009 - WebGUI-Fix: Alle Formulare senden neben dem internen MUA-CSRF-Wert auch Unraids verpflichtendes csrf_token; Button-Klicks enden nicht mehr auf einer leeren Seite. ### 2026.08.21.r008 - Neue getrennte Nur-Lese-Shell: unraid_system_shell_readonly mit Programm-Allowlist und direkter argv-Ausführung ohne /bin/sh. - Schreibende Unterbefehle und Optionen für ip, find, ss, dmesg, date, mount und hostname werden serverseitig abgelehnt. - Die uneingeschränkte Root-Shell bleibt als separates kritisches Werkzeug standardmäßig deaktiviert. - GUI-Fix: MUA-eigene CSS-Klassennamen verhindern die Kollision mit Unraids globaler notice-Klasse; die blaue Karte wird wieder korrekt dargestellt. ### 2026.08.21.r007 - Navigation: MUA liegt unter Settings → User Utilities; der Klick im Plugin-Manager öffnet zuverlässig die MUA-Seite (korrekte Groß-/Kleinschreibung). - Sicherheitsprofile: Nur Lesen (Standard), Betrieb + Diagnose, Alles sperren und expliziter Vollzugriff. - Fix: Eine leere Tool-Auswahl aktiviert nicht mehr versehentlich alle Tools. - Secrets: Container-Umgebungswerte werden nicht mehr ausgegeben; häufige Secrets in Logs werden redigiert. - API-Key: nur einmalige Klartextanzeige nach Rotation; danach ausschließlich maskiert. - Config-Server: zusätzlicher, pro Start erneuerter Admin-Token und CSRF-Schutz in der WebGUI. - Netzwerk: CORS standardmäßig aus, Request-Limit 1 MiB und Rate-Limit pro Client. - Audit: Werkzeugname, Risikostufe, Ergebnis und Laufzeit ohne Argumente/Inhalte in mua-audit.log. - WebGUI vollständig neu geordnet: Statuskarten, Sicherheitsprofile und Werkzeuge nach Risikostufe. ### 2026.08.18.r006 - Neues Tool: unraid_system_shell — direkter Shell-Zugriff auf den Unraid-Host (root, /bin/sh -c). Liefert exit_code + stdout + stderr (JSON). - WebGUI: unraid_system_shell in der System-Tool-Gruppe (jetzt 2 System-Tools, insgesamt 22 Tools). ### 2026.08.18.r005 - Fix: unraid_docker_analyze_logs scan-all-Modus (ohne container-Parameter) funktionierte nicht — docker logs ohne Container-Argument lief ins Leere. Jetzt Loop über alle laufenden Container. - Output: sample_matches enthält jetzt den Container-Namen + neues Feld containers_with_matches. ### 2026.08.18.r004 - Auto-Restart: Binary erkennt Update auf Platte (mtime/size) und startet den Service automatisch neu. - WebGUI: „MUA neu starten"-Button (manueller Restart über Config-Server). - POST-INSTALL/UPDATE: Service wird nach Installation/Update automatisch neu gestartet. - WebGUI: Version wird dynamisch aus /health gelesen (kein hartkodiertes rNNN). ### 2026.08.18.r002 - API-Key-Authentifizierung (Bearer-Token) für den MCP-HTTP-Endpunkt (Port 3002). /health bleibt offen. - Einstellungs-Maske im WebGUI-Tab: API-Key generieren + Tools per Checkbox aktivieren/deaktivieren. - Config-Server auf 127.0.0.1:3013 (nur localhost) für WebGUI-Integration. - Tool-Filter: deaktivierte Tools werden in tools/list ausgeblendet und bei tools/call abgelehnt. ### 2026.08.18.r001 - Initial release: 21 Docker, network, and system tools as MCP server over HTTP (Streamable HTTP, port 3002). - Runtime: TypeScript (Bun Runtime, compiled binary) — no PHP built-in server. set -e echo "" echo "====================================================" echo " MUA - Mikes Unraid Agent" echo " Installation" echo "====================================================" echo "" # Verzeichnisse mkdir -p &emhttpLOC; mkdir -p &pluginLOC; mkdir -p /var/log/plugins touch /var/log/plugins/mua.log &txzURL; &txzSHA256; set +e echo "" echo " Starte MUA-Service neu..." /etc/rc.d/rc.mua restart 2>/dev/null || true echo "" echo " Führe Health-Check aus..." sleep 3 if curl -sf "http://127.0.0.1:3002/health" > /dev/null 2>&1; then echo "" echo " Health-Check: OK" echo "" echo "====================================================" echo " MUA installiert und läuft auf Port 3002" echo " Endpunkt: http://$(hostname -I | awk '{print $1}'):3002/mcp" echo " WebGUI: Settings > User Utilities > MUA" echo "====================================================" else echo "" echo " WARNUNG: Health-Check fehlgeschlagen" echo " Logs: tail -f /var/log/plugins/mua.log" echo "====================================================" fi exit 0 # Service stoppen vor Update /etc/rc.d/rc.mua stop 2>/dev/null || true # Alte PHP-Dateien entfernen (falls vorhanden) rm -rf &emhttpLOC;/mcp rm -rf &emhttpLOC;/scripts rm -f &emhttpLOC;/plugin.php echo "" echo "====================================================" echo " MUA - Mikes Unraid Agent" echo " Deinstallation" echo "====================================================" echo "" # 1. Service stoppen /etc/rc.d/rc.mua stop 2>/dev/null || true # 2. Service-Datei entfernen rm -f /etc/rc.d/rc.mua # 3. Binary entfernen rm -f /usr/local/bin/mua # 4. PHP-Helper entfernen rm -f /usr/local/bin/unraid-docker-mcp-helper.php rm -f /usr/local/bin/unraid-mcp-status-helper.php # 5. Plugin-Verzeichnis entfernen rm -rf &emhttpLOC; # 6. Config entfernen rm -rf &pluginLOC; # 7. Logs entfernen rm -f /var/log/plugins/mua.log rm -f /var/log/plugins/mua-audit.log rm -f /var/run/mua.pid rm -f /var/run/mua-admin.token echo "" echo " MUA wurde deinstalliert." echo "===================================================="