diff --git a/docs/QWEN_OPERATOR_CONTEXT.md b/docs/QWEN_OPERATOR_CONTEXT.md index 6cb7a78..9fda516 100644 --- a/docs/QWEN_OPERATOR_CONTEXT.md +++ b/docs/QWEN_OPERATOR_CONTEXT.md @@ -113,6 +113,12 @@ exakter SHA-256-Prüfsumme übernommen werden; ihr Inhalt wird nicht erneut erzeugt. Vollständige Compose-Dateien oder Base64-Kopien sind unnötig. Interne MCPs verwenden Docker-DNS und benötigen ohne ausdrücklichen Auftrag weder einen VPN-Port noch eine WireGuard-Änderung. +Der Athena-Host selbst besitzt absichtlich keinen direkten Heimnetzpfad. Ein +nicht erreichbarer Git-SSH-Server wird deshalb mit kurzem Timeout ehrlich +gemeldet, statt den Lauf minutenlang zu blockieren. Bis ein eigener, ausdrücklich +freigegebener Git-Transport entworfen ist, muss der fertige lokale Commit von +einem Heimnetz-Client gepusht werden; Remote, Schlüssel und Routing bleiben +unverändert. `run_checks` prüft, `compose_deploy` rollt nur benannte Dienste aus, `git_publish` veröffentlicht nur ausdrücklich ausgewählte Pfade und `recovery` erneuert den Recovery-Koffer. Lege niemals diff --git a/platform/mcp/compose.yaml b/platform/mcp/compose.yaml index ae09c3a..48c0f59 100644 --- a/platform/mcp/compose.yaml +++ b/platform/mcp/compose.yaml @@ -211,7 +211,7 @@ services: build: context: . dockerfile: Dockerfile.athena-operator - image: mike-ai/mcp-athena-operator:2.3.3 + image: mike-ai/mcp-athena-operator:2.3.4 container_name: mike-ai-mcp-athena-operator environment: ATHENA_OPERATOR_SOCKET: /operator/operator.sock diff --git a/platform/operator/athena_operatord.py b/platform/operator/athena_operatord.py index be4a406..68c354d 100755 --- a/platform/operator/athena_operatord.py +++ b/platform/operator/athena_operatord.py @@ -29,7 +29,7 @@ from pathlib import Path from typing import Any -VERSION = "2.3.3" +VERSION = "2.3.4" STACK = Path(os.environ.get("ATHENA_OPERATOR_STACK", "/opt/mike-ai/stack")).resolve() REPOSITORY = Path(os.environ.get("ATHENA_OPERATOR_REPOSITORY", "/data/mike-ai-operator/repository")).resolve() STATE = Path(os.environ.get("ATHENA_OPERATOR_STATE", "/data/mike-ai-operator/state")).resolve() @@ -120,7 +120,7 @@ def run(argv: list[str], *, cwd: Path = STACK, timeout: int = 900, check: bool = environment["GIT_SSH_COMMAND"] = ( f"ssh -i {shlex.quote(str(git_key))} -o IdentitiesOnly=yes " f"-o UserKnownHostsFile={shlex.quote(str(known_hosts))} " - "-o StrictHostKeyChecking=yes" + "-o StrictHostKeyChecking=yes -o BatchMode=yes -o ConnectTimeout=8" ) completed = subprocess.run( argv, cwd=cwd, env=environment,