From d5fae52ad6bd8848e3c99ff9ef3d6cc1e3156bf2 Mon Sep 17 00:00:00 2001 From: techartdev Date: Wed, 18 Feb 2026 15:38:06 +0200 Subject: [PATCH] chore: Add force_ipv4_dns option and update translations; bump OpenClaw to 2026.2.17 --- openclaw_assistant/CHANGELOG.md | 10 +++++++++ openclaw_assistant/Dockerfile | 2 +- openclaw_assistant/config.yaml | 8 ++++++- openclaw_assistant/run.sh | 26 ++++++++++++++++++++++ openclaw_assistant/translations/bg.yaml | 4 ++++ openclaw_assistant/translations/de.yaml | 4 ++++ openclaw_assistant/translations/en.yaml | 4 ++++ openclaw_assistant/translations/es.yaml | 4 ++++ openclaw_assistant/translations/pl.yaml | 4 ++++ openclaw_assistant/translations/pt-BR.yaml | 4 ++++ 10 files changed, 68 insertions(+), 2 deletions(-) diff --git a/openclaw_assistant/CHANGELOG.md b/openclaw_assistant/CHANGELOG.md index dbec6fb..8c4df31 100644 --- a/openclaw_assistant/CHANGELOG.md +++ b/openclaw_assistant/CHANGELOG.md @@ -2,6 +2,16 @@ All notable changes to the OpenClaw Assistant Home Assistant Add-on will be documented in this file. +## [0.5.46] - 2026-02-18 + +### Added +- New add-on option `force_ipv4_dns` to enable IPv4-first DNS ordering for Node network calls (`NODE_OPTIONS=--dns-result-order=ipv4first`), helping Telegram connectivity on IPv6-broken networks. + +### Changed +- Added translations for `force_ipv4_dns` option. +- Updated docs with `force_ipv4_dns` configuration and Telegram network troubleshooting note. +- Bump OpenClaw to 2026.2.17 + ## [0.5.45] - 2026-02-16 ### Changed diff --git a/openclaw_assistant/Dockerfile b/openclaw_assistant/Dockerfile index 583561c..56252fc 100644 --- a/openclaw_assistant/Dockerfile +++ b/openclaw_assistant/Dockerfile @@ -102,7 +102,7 @@ USER root # Install OpenClaw globally RUN npm config set fund false && npm config set audit false \ - && npm install -g openclaw@2026.2.15 + && npm install -g openclaw@2026.2.17 # Shell aliases and color options for interactive use RUN tee -a /etc/bash.bashrc <<'EOF' diff --git a/openclaw_assistant/config.yaml b/openclaw_assistant/config.yaml index 17b3dfc..9c609d1 100644 --- a/openclaw_assistant/config.yaml +++ b/openclaw_assistant/config.yaml @@ -1,5 +1,5 @@ name: OpenClaw Assistant -version: "0.5.45" +version: "0.5.46" slug: openclaw_assistant description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on. url: https://github.com/techartdev/OpenClawHomeAssistant @@ -75,6 +75,11 @@ options: # Default is false for security. allow_insecure_auth: false + # Force IPv4-first DNS result ordering for Node fetch/network calls. + # Useful on networks where IPv6 resolution exists but IPv6 egress is broken + # (can affect Telegram API polling in some HAOS/VM setups). + force_ipv4_dns: false + schema: timezone: str @@ -94,4 +99,5 @@ schema: gateway_port: int(1,65535)? enable_openai_api: bool? allow_insecure_auth: bool? + force_ipv4_dns: bool? diff --git a/openclaw_assistant/run.sh b/openclaw_assistant/run.sh index 4dfe766..f49135b 100644 --- a/openclaw_assistant/run.sh +++ b/openclaw_assistant/run.sh @@ -50,12 +50,24 @@ GATEWAY_BIND_MODE=$(jq -r '.gateway_bind_mode // "loopback"' "$OPTIONS_FILE") GATEWAY_PORT=$(jq -r '.gateway_port // 18789' "$OPTIONS_FILE") ENABLE_OPENAI_API=$(jq -r '.enable_openai_api // false' "$OPTIONS_FILE") ALLOW_INSECURE_AUTH=$(jq -r '.allow_insecure_auth // false' "$OPTIONS_FILE") +FORCE_IPV4_DNS=$(jq -r '.force_ipv4_dns // false' "$OPTIONS_FILE") export TZ="$TZNAME" # Reduce risk of secrets ending up in logs set +x +# Optional network hardening/workaround: force IPv4-first DNS ordering for Node.js. +# Helps in environments where IPv6 resolves but has no working egress. +if [ "$FORCE_IPV4_DNS" = "true" ] || [ "$FORCE_IPV4_DNS" = "1" ]; then + if [ -n "${NODE_OPTIONS:-}" ]; then + export NODE_OPTIONS="${NODE_OPTIONS} --dns-result-order=ipv4first" + else + export NODE_OPTIONS="--dns-result-order=ipv4first" + fi + echo "INFO: Enabled IPv4-first DNS ordering (NODE_OPTIONS=--dns-result-order=ipv4first)" +fi + # HA add-ons mount persistent storage at /config (maps to /addon_configs/ on the host). export HOME=/config @@ -356,6 +368,20 @@ if [ -f "$TTYD_PID_FILE" ]; then fi if [ "$ENABLE_TERMINAL" = "true" ] || [ "$ENABLE_TERMINAL" = "1" ]; then + # Check if the terminal port is already in use before starting ttyd + if command -v ss >/dev/null 2>&1 && ss -tlnp 2>/dev/null | grep -q ":${TERMINAL_PORT} "; then + echo "" + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + echo "!! WARNING: terminal_port ${TERMINAL_PORT} IS ALREADY IN USE !!" + echo "!! !!" + echo "!! The web terminal (ttyd) could NOT be started because port !!" + echo "!! ${TERMINAL_PORT} is occupied by another process. !!" + echo "!! !!" + echo "!! ACTION REQUIRED: Go to Add-on Configuration and change !!" + echo "!! 'terminal_port' to a free port, then restart the add-on. !!" + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + echo "" + fi echo "Starting web terminal (ttyd) on 127.0.0.1:${TERMINAL_PORT} ..." ttyd -W -i 127.0.0.1 -p "${TERMINAL_PORT}" -b /terminal bash & TTYD_PID=$! diff --git a/openclaw_assistant/translations/bg.yaml b/openclaw_assistant/translations/bg.yaml index be72e85..03c33cf 100644 --- a/openclaw_assistant/translations/bg.yaml +++ b/openclaw_assistant/translations/bg.yaml @@ -58,3 +58,7 @@ configuration: allow_insecure_auth: name: Разрешаване на HTTP автентикация description: Разрешаване на HTTP автентикация за достъп до gateway в локалната мрежа. ВНИМАНИЕ - Активирайте само ако използвате HTTP (не HTTPS) за gateway_public_url. Необходимо за достъп от браузър през HTTP. + + force_ipv4_dns: + name: Принудителен IPv4 DNS ред + description: Принудително задава IPv4-приоритет при DNS резолв за Node мрежови заявки. Полезно е, когато IPv6 DNS се резолвира, но IPv6 интернет маршрутизацията е неработеща (може да влияе на Telegram API polling). diff --git a/openclaw_assistant/translations/de.yaml b/openclaw_assistant/translations/de.yaml index 4478793..96cba4d 100644 --- a/openclaw_assistant/translations/de.yaml +++ b/openclaw_assistant/translations/de.yaml @@ -58,3 +58,7 @@ configuration: allow_insecure_auth: name: Unsichere HTTP-Authentifizierung erlauben description: HTTP-Authentifizierung für Gateway-Zugriff im LAN erlauben. WARNUNG - Nur aktivieren, wenn HTTP (nicht HTTPS) für gateway_public_url verwendet wird. Erforderlich für Browser-Zugriff über HTTP. + + force_ipv4_dns: + name: IPv4-DNS-Reihenfolge erzwingen + description: Erzwingt IPv4-vorrangige DNS-Auflösung für Node-Netzwerkaufrufe. Nützlich, wenn IPv6-DNS aufgelöst wird, aber IPv6-Internet-Routing nicht funktioniert (kann Telegram-API-Polling beeinträchtigen). diff --git a/openclaw_assistant/translations/en.yaml b/openclaw_assistant/translations/en.yaml index d8c7bf1..c8268ad 100644 --- a/openclaw_assistant/translations/en.yaml +++ b/openclaw_assistant/translations/en.yaml @@ -58,3 +58,7 @@ configuration: allow_insecure_auth: name: Allow Insecure HTTP Auth description: Allow HTTP authentication for gateway access on LAN. WARNING - Only enable if using HTTP (not HTTPS) for gateway_public_url. Required for browser access over HTTP. + + force_ipv4_dns: + name: Force IPv4 DNS Order + description: Force IPv4-first DNS ordering for Node network calls. Useful when IPv6 DNS resolves but IPv6 internet routing is broken (can affect Telegram API polling). diff --git a/openclaw_assistant/translations/es.yaml b/openclaw_assistant/translations/es.yaml index 62de2b8..7ad2e36 100644 --- a/openclaw_assistant/translations/es.yaml +++ b/openclaw_assistant/translations/es.yaml @@ -58,3 +58,7 @@ configuration: allow_insecure_auth: name: Permitir autenticación HTTP insegura description: Permitir autenticación HTTP para acceso al gateway en LAN. ADVERTENCIA - Solo habilitar si usa HTTP (no HTTPS) para gateway_public_url. Requerido para acceso desde navegador por HTTP. + + force_ipv4_dns: + name: Forzar orden DNS IPv4 + description: Fuerza el orden de DNS con prioridad IPv4 para llamadas de red de Node. Útil cuando el DNS IPv6 resuelve, pero el enrutamiento IPv6 a Internet falla (puede afectar el polling de la API de Telegram). diff --git a/openclaw_assistant/translations/pl.yaml b/openclaw_assistant/translations/pl.yaml index ddcc614..6b23b18 100644 --- a/openclaw_assistant/translations/pl.yaml +++ b/openclaw_assistant/translations/pl.yaml @@ -58,3 +58,7 @@ configuration: gateway_mode: name: Tryb Gateway description: Tryb działania gateway - local (uruchom gateway lokalnie, zalecane) lub remote (połącz się ze zdalnym gateway) + + force_ipv4_dns: + name: Wymuś kolejność DNS IPv4 + description: Wymusza preferowanie IPv4 przy rozwiązywaniu DNS dla wywołań sieciowych Node. Przydatne, gdy DNS IPv6 się rozwiązuje, ale routing IPv6 do Internetu nie działa (może wpływać na polling API Telegrama). diff --git a/openclaw_assistant/translations/pt-BR.yaml b/openclaw_assistant/translations/pt-BR.yaml index c676e30..3f5c97a 100644 --- a/openclaw_assistant/translations/pt-BR.yaml +++ b/openclaw_assistant/translations/pt-BR.yaml @@ -58,3 +58,7 @@ configuration: allow_insecure_auth: name: Permitir Autenticação HTTP Insegura description: Permitir autenticação HTTP para acesso ao gateway na LAN. AVISO - Habilite somente se estiver usando HTTP (não HTTPS) para gateway_public_url. Necessário para acesso pelo navegador via HTTP. + + force_ipv4_dns: + name: Forçar ordem DNS IPv4 + description: Força a ordem de DNS com prioridade para IPv4 nas chamadas de rede do Node. Útil quando o DNS IPv6 resolve, mas o roteamento IPv6 para a internet está quebrado (pode afetar o polling da API do Telegram).