Feat: Hermes-Entfesselung — volle Stack-Control-Plane + PC-Executor-Autostart-Fix
mcp_mc.py: 7 -> 23 Tools (hf_search/quants, install/delete/load/unload_model, set_model_role, list_jobs, cancel_job, list_services, backup_now, list_backups, token_stats, check_updates, apply_update, service_logs). Hermes kann den Stack jetzt vollständig steuern (alles was die MC2-UI kann). executor.py: _ensure_streams() — unter pythonw (kein Konsolenfenster, für Scheduled-Task-Autostart) sind sys.stdout/stderr=None und uvicorn-Logging crasht beim Start. Jetzt Umleitung auf %LOCALAPPDATA%\HermesPCExecutor\executor.log. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -126,7 +126,24 @@ def _get_local_ip() -> str:
|
||||
return socket.gethostbyname(socket.gethostname())
|
||||
|
||||
|
||||
def _ensure_streams() -> None:
|
||||
"""Unter pythonw (kein Konsolenfenster) sind sys.stdout/stderr = None →
|
||||
uvicorns Logging crasht beim Start. Dann auf eine Logdatei umbiegen."""
|
||||
import sys
|
||||
if sys.stdout is not None and sys.stderr is not None:
|
||||
return
|
||||
logdir = os.path.join(
|
||||
os.environ.get("LOCALAPPDATA", os.path.dirname(os.path.abspath(__file__))),
|
||||
"HermesPCExecutor",
|
||||
)
|
||||
os.makedirs(logdir, exist_ok=True)
|
||||
f = open(os.path.join(logdir, "executor.log"), "a", buffering=1, encoding="utf-8")
|
||||
sys.stdout = f
|
||||
sys.stderr = f
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
_ensure_streams()
|
||||
my_ip = _get_local_ip()
|
||||
print(f"Hermes PC Executor läuft auf http://{my_ip}:{MY_PORT}")
|
||||
uvicorn.run(app, host="0.0.0.0", port=MY_PORT)
|
||||
|
||||
Reference in New Issue
Block a user