From ea9c70be5c9bed109325a8f4dacae7bfc83a05bf Mon Sep 17 00:00:00 2001 From: techartdev Date: Fri, 6 Feb 2026 11:58:44 +0200 Subject: [PATCH] Update OpenClaw version to 0.5.35 and add gateway mode configuration --- openclaw_assistant/Dockerfile | 2 +- openclaw_assistant/config.yaml | 9 ++++++++- openclaw_assistant/oc_config_helper.py | 26 ++++++++++++++++++------- openclaw_assistant/run.sh | 5 +++-- openclaw_assistant/translations/bg.yaml | 4 ++++ openclaw_assistant/translations/de.yaml | 4 ++++ openclaw_assistant/translations/en.yaml | 4 ++++ openclaw_assistant/translations/es.yaml | 4 ++++ 8 files changed, 47 insertions(+), 11 deletions(-) diff --git a/openclaw_assistant/Dockerfile b/openclaw_assistant/Dockerfile index b9c8d59..4bd03f4 100644 --- a/openclaw_assistant/Dockerfile +++ b/openclaw_assistant/Dockerfile @@ -83,7 +83,7 @@ USER root # Install OpenClaw globally RUN npm config set fund false && npm config set audit false \ - && npm install -g openclaw@2026.2.2-3 + && npm install -g openclaw@2026.2.3-1 COPY run.sh /run.sh COPY oc_config_helper.py /oc_config_helper.py diff --git a/openclaw_assistant/config.yaml b/openclaw_assistant/config.yaml index 2d53598..63be8de 100644 --- a/openclaw_assistant/config.yaml +++ b/openclaw_assistant/config.yaml @@ -1,5 +1,5 @@ name: OpenClaw Assistant -version: "0.5.34" +version: "0.5.35" slug: openclaw_assistant description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on. url: https://github.com/techartdev/OpenClawHomeAssistant @@ -50,6 +50,12 @@ options: clean_session_locks_on_start: true clean_session_locks_on_exit: true + # Gateway mode: + # - local: Run gateway locally (recommended for most users) + # - remote: Connect to a remote gateway + # Default is local. + gateway_mode: local + # Gateway network bind mode: # - loopback: bind to 127.0.0.1 only (local access only, more secure) # - lan: bind to all interfaces (accessible from local network) @@ -78,6 +84,7 @@ schema: clean_session_locks_on_start: bool? clean_session_locks_on_exit: bool? + gateway_mode: list(local|remote)? gateway_bind_mode: list(loopback|lan)? gateway_port: int(1,65535)? allow_insecure_auth: bool? diff --git a/openclaw_assistant/oc_config_helper.py b/openclaw_assistant/oc_config_helper.py index a34172c..f0fe2a2 100644 --- a/openclaw_assistant/oc_config_helper.py +++ b/openclaw_assistant/oc_config_helper.py @@ -57,15 +57,21 @@ def set_gateway_setting(key, value): return write_config(cfg) -def apply_gateway_settings(bind_mode: str, port: int, allow_insecure_auth: bool): +def apply_gateway_settings(mode: str, bind_mode: str, port: int, allow_insecure_auth: bool): """ Apply gateway settings to OpenClaw config. Args: + mode: "local" or "remote" bind_mode: "loopback" or "lan" port: Port number to listen on (must be 1-65535) allow_insecure_auth: Allow insecure HTTP authentication """ + # Validate gateway mode + if mode not in ["local", "remote"]: + print(f"ERROR: Invalid mode '{mode}'. Must be 'local' or 'remote'") + return False + # Validate bind mode if bind_mode not in ["loopback", "lan"]: print(f"ERROR: Invalid bind_mode '{bind_mode}'. Must be 'loopback' or 'lan'") @@ -91,12 +97,17 @@ def apply_gateway_settings(bind_mode: str, port: int, allow_insecure_auth: bool) control_ui = gateway["controlUi"] + current_mode = gateway.get("mode", "") current_bind = gateway.get("bind", "") current_port = gateway.get("port", 18789) current_insecure = control_ui.get("allowInsecureAuth", False) changes = [] + if current_mode != mode: + gateway["mode"] = mode + changes.append(f"mode: {current_mode} -> {mode}") + if current_bind != bind_mode: gateway["bind"] = bind_mode changes.append(f"bind: {current_bind} -> {bind_mode}") @@ -130,13 +141,14 @@ def main(): cmd = sys.argv[1] if cmd == "apply-gateway-settings": - if len(sys.argv) != 5: - print("Usage: oc_config_helper.py apply-gateway-settings ") + if len(sys.argv) != 6: + print("Usage: oc_config_helper.py apply-gateway-settings ") sys.exit(1) - bind_mode = sys.argv[2] - port = int(sys.argv[3]) - allow_insecure_auth = sys.argv[4].lower() == "true" - success = apply_gateway_settings(bind_mode, port, allow_insecure_auth) + mode = sys.argv[2] + bind_mode = sys.argv[3] + port = int(sys.argv[4]) + allow_insecure_auth = sys.argv[5].lower() == "true" + success = apply_gateway_settings(mode, bind_mode, port, allow_insecure_auth) sys.exit(0 if success else 1) elif cmd == "get": diff --git a/openclaw_assistant/run.sh b/openclaw_assistant/run.sh index ffa804d..3625407 100644 --- a/openclaw_assistant/run.sh +++ b/openclaw_assistant/run.sh @@ -44,7 +44,8 @@ ROUTER_KEY=$(jq -r '.router_ssh_key_path // "/data/keys/router_ssh"' "$OPTIONS_F CLEAN_LOCKS_ON_START=$(jq -r '.clean_session_locks_on_start // true' "$OPTIONS_FILE") CLEAN_LOCKS_ON_EXIT=$(jq -r '.clean_session_locks_on_exit // true' "$OPTIONS_FILE") -# Gateway bind mode (loopback or lan) +# Gateway configuration +GATEWAY_MODE=$(jq -r '.gateway_mode // "local"' "$OPTIONS_FILE") GATEWAY_BIND_MODE=$(jq -r '.gateway_bind_mode // "loopback"' "$OPTIONS_FILE") GATEWAY_PORT=$(jq -r '.gateway_port // 18789' "$OPTIONS_FILE") ALLOW_INSECURE_AUTH=$(jq -r '.allow_insecure_auth // false' "$OPTIONS_FILE") @@ -232,7 +233,7 @@ fi if [ -f "$OPENCLAW_CONFIG_PATH" ]; then if [ -f "$HELPER_PATH" ]; then - if ! python3 "$HELPER_PATH" apply-gateway-settings "$GATEWAY_BIND_MODE" "$GATEWAY_PORT" "$ALLOW_INSECURE_AUTH"; then + if ! python3 "$HELPER_PATH" apply-gateway-settings "$GATEWAY_MODE" "$GATEWAY_BIND_MODE" "$GATEWAY_PORT" "$ALLOW_INSECURE_AUTH"; then rc=$? echo "ERROR: Failed to apply gateway settings via oc_config_helper.py (exit code ${rc})." echo "ERROR: Gateway configuration may be incorrect; aborting startup." diff --git a/openclaw_assistant/translations/bg.yaml b/openclaw_assistant/translations/bg.yaml index 8bd312a..91e30f7 100644 --- a/openclaw_assistant/translations/bg.yaml +++ b/openclaw_assistant/translations/bg.yaml @@ -39,6 +39,10 @@ configuration: name: Изчистване на заключвания при изход description: Изчистване на заключващи файлове на сесии при нормално спиране на добавката + gateway_mode: + name: Режим на Gateway + description: Режим на работа на Gateway - local (локално изпълнение на gateway, препоръчително) или remote (свързване към отдалечен gateway) + gateway_bind_mode: name: Режим на свързване на Gateway description: Режим на мрежово свързване - loopback (само 127.0.0.1, по-сигурно) или lan (всички интерфейси, достъпно от локалната мрежа) diff --git a/openclaw_assistant/translations/de.yaml b/openclaw_assistant/translations/de.yaml index 658d821..2769098 100644 --- a/openclaw_assistant/translations/de.yaml +++ b/openclaw_assistant/translations/de.yaml @@ -39,6 +39,10 @@ configuration: name: Sitzungssperren beim Beenden bereinigen description: Sitzungssperrdateien beim ordnungsgemäßen Stoppen des Add-ons bereinigen + gateway_mode: + name: Gateway-Modus + description: Gateway-Betriebsmodus - local (Gateway lokal ausführen, empfohlen) oder remote (mit einem entfernten Gateway verbinden) + gateway_bind_mode: name: Gateway-Bindungsmodus description: Netzwerk-Bindungsmodus - loopback (nur 127.0.0.1, sicherer) oder lan (alle Schnittstellen, vom lokalen Netzwerk aus zugänglich) diff --git a/openclaw_assistant/translations/en.yaml b/openclaw_assistant/translations/en.yaml index e38d137..b8ebcbc 100644 --- a/openclaw_assistant/translations/en.yaml +++ b/openclaw_assistant/translations/en.yaml @@ -39,6 +39,10 @@ configuration: name: Clean Session Locks on Exit description: Cleanup session lock files when add-on stops gracefully + gateway_mode: + name: Gateway Mode + description: Gateway operation mode - local (run gateway locally, recommended) or remote (connect to a remote gateway) + gateway_bind_mode: name: Gateway Bind Mode description: Network bind mode - loopback (127.0.0.1 only, more secure) or lan (all interfaces, accessible from local network) diff --git a/openclaw_assistant/translations/es.yaml b/openclaw_assistant/translations/es.yaml index 7a4bdb0..652c0d7 100644 --- a/openclaw_assistant/translations/es.yaml +++ b/openclaw_assistant/translations/es.yaml @@ -39,6 +39,10 @@ configuration: name: Limpiar bloqueos de sesión al salir description: Limpiar archivos de bloqueo de sesión cuando el complemento se detiene correctamente + gateway_mode: + name: Modo del Gateway + description: Modo de operación del Gateway - local (ejecutar gateway localmente, recomendado) o remote (conectar a un gateway remoto) + gateway_bind_mode: name: Modo de enlace del Gateway description: Modo de enlace de red - loopback (solo 127.0.0.1, más seguro) o lan (todas las interfaces, accesible desde la red local)