Bump OpenClaw to version 0.5.72 and add repair for known invalid config settings
This commit is contained in:
@@ -811,6 +811,18 @@ Go to **Settings → Add-ons → OpenClaw Assistant → Log** tab. Logs show sta
|
|||||||
3. Is the port correct? `openclaw config get gateway.port`
|
3. Is the port correct? `openclaw config get gateway.port`
|
||||||
4. Is the firewall blocking the port? Check your HA host firewall rules
|
4. Is the firewall blocking the port? Check your HA host firewall rules
|
||||||
|
|
||||||
|
### Gateway restart loop: `web_search provider is not available: brave`
|
||||||
|
|
||||||
|
**Symptom**: Logs repeat `Invalid config at /config/.openclaw/openclaw.json` and `tools.web.search.provider: web_search provider is not available: brave`.
|
||||||
|
|
||||||
|
**Cause**: The persisted OpenClaw config selects the Brave web search provider, but that provider plugin is not currently installed or enabled in the add-on runtime.
|
||||||
|
|
||||||
|
**Fix**: In v0.5.72+ the add-on clears that unavailable provider automatically during startup. On older versions, run this in the add-on terminal, then restart:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
jq 'del(.tools.web.search.provider)' /config/.openclaw/openclaw.json > /tmp/openclaw.json && mv /tmp/openclaw.json /config/.openclaw/openclaw.json
|
||||||
|
```
|
||||||
|
|
||||||
### "disconnected (1008): control ui requires device identity" / "requires HTTPS or localhost"
|
### "disconnected (1008): control ui requires device identity" / "requires HTTPS or localhost"
|
||||||
|
|
||||||
**Symptom**: Gateway UI shows error 1008 or "requires secure context / device identity".
|
**Symptom**: Gateway UI shows error 1008 or "requires secure context / device identity".
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
All notable changes to the OpenClaw Assistant Home Assistant Add-on will be documented in this file.
|
All notable changes to the OpenClaw Assistant Home Assistant Add-on will be documented in this file.
|
||||||
|
|
||||||
|
## [0.5.72] - 2026-05-04
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Repair startup when a persisted OpenClaw config still selects the unavailable `tools.web.search.provider=brave` provider. The add-on now clears that provider before launching the gateway so OpenClaw can start; users can reinstall/enable the Brave provider later if they want web search through Brave.
|
||||||
|
|
||||||
## [0.5.70] - 2026-04-30
|
## [0.5.70] - 2026-04-30
|
||||||
|
|
||||||
- Bump OpenClaw to 2026.4.27.
|
- Bump OpenClaw to 2026.4.27.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: OpenClaw Assistant
|
name: OpenClaw Assistant
|
||||||
version: "0.5.71"
|
version: "0.5.72"
|
||||||
slug: openclaw_assistant
|
slug: openclaw_assistant
|
||||||
description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on.
|
description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on.
|
||||||
url: https://github.com/techartdev/OpenClawHomeAssistant
|
url: https://github.com/techartdev/OpenClawHomeAssistant
|
||||||
|
|||||||
@@ -256,6 +256,43 @@ def set_control_ui_origins(origins_csv: str, additional_origins_csv: str = "", d
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def repair_known_invalid_settings():
|
||||||
|
"""Repair known config values that prevent OpenClaw from starting."""
|
||||||
|
cfg = read_config()
|
||||||
|
if cfg is None:
|
||||||
|
return True
|
||||||
|
|
||||||
|
tools = cfg.get("tools")
|
||||||
|
if not isinstance(tools, dict):
|
||||||
|
return True
|
||||||
|
|
||||||
|
web = tools.get("web")
|
||||||
|
if not isinstance(web, dict):
|
||||||
|
return True
|
||||||
|
|
||||||
|
search = web.get("search")
|
||||||
|
if not isinstance(search, dict):
|
||||||
|
return True
|
||||||
|
|
||||||
|
provider = search.get("provider")
|
||||||
|
changes = []
|
||||||
|
|
||||||
|
if provider == "brave":
|
||||||
|
del search["provider"]
|
||||||
|
changes.append("removed unavailable tools.web.search.provider=brave")
|
||||||
|
|
||||||
|
if not changes:
|
||||||
|
print("INFO: No known invalid OpenClaw config settings found")
|
||||||
|
return True
|
||||||
|
|
||||||
|
if write_config(cfg):
|
||||||
|
print(f"INFO: Repaired OpenClaw config: {', '.join(changes)}")
|
||||||
|
return True
|
||||||
|
|
||||||
|
print("ERROR: Failed to write config")
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""CLI entry point for use by run.sh"""
|
"""CLI entry point for use by run.sh"""
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
@@ -300,6 +337,13 @@ def main():
|
|||||||
success = set_control_ui_origins(origins_csv, additional_origins_csv, disable_device_auth)
|
success = set_control_ui_origins(origins_csv, additional_origins_csv, disable_device_auth)
|
||||||
sys.exit(0 if success else 1)
|
sys.exit(0 if success else 1)
|
||||||
|
|
||||||
|
elif cmd == "repair-known-invalid-settings":
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
print("Usage: oc_config_helper.py repair-known-invalid-settings")
|
||||||
|
sys.exit(1)
|
||||||
|
success = repair_known_invalid_settings()
|
||||||
|
sys.exit(0 if success else 1)
|
||||||
|
|
||||||
elif cmd == "set":
|
elif cmd == "set":
|
||||||
if len(sys.argv) != 4:
|
if len(sys.argv) != 4:
|
||||||
print("Usage: oc_config_helper.py set <key> <value>")
|
print("Usage: oc_config_helper.py set <key> <value>")
|
||||||
|
|||||||
@@ -562,9 +562,20 @@ fi
|
|||||||
|
|
||||||
if [ -f "$OPENCLAW_CONFIG_PATH" ]; then
|
if [ -f "$OPENCLAW_CONFIG_PATH" ]; then
|
||||||
if [ -f "$HELPER_PATH" ]; then
|
if [ -f "$HELPER_PATH" ]; then
|
||||||
|
if python3 "$HELPER_PATH" repair-known-invalid-settings; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
rc=$?
|
||||||
|
echo "ERROR: Failed to repair known invalid OpenClaw config settings via oc_config_helper.py (exit code ${rc})."
|
||||||
|
echo "ERROR: Gateway configuration may be invalid; aborting startup."
|
||||||
|
exit "${rc}"
|
||||||
|
fi
|
||||||
|
|
||||||
# In lan_https mode the gateway uses an internal port; nginx owns the external one.
|
# In lan_https mode the gateway uses an internal port; nginx owns the external one.
|
||||||
EFFECTIVE_GW_PORT="$GATEWAY_INTERNAL_PORT"
|
EFFECTIVE_GW_PORT="$GATEWAY_INTERNAL_PORT"
|
||||||
if ! python3 "$HELPER_PATH" apply-gateway-settings "$GATEWAY_MODE" "$GATEWAY_REMOTE_URL" "$GATEWAY_BIND_MODE" "$EFFECTIVE_GW_PORT" "$ENABLE_OPENAI_API" "$GATEWAY_AUTH_MODE" "$GATEWAY_TRUSTED_PROXIES"; then
|
if python3 "$HELPER_PATH" apply-gateway-settings "$GATEWAY_MODE" "$GATEWAY_REMOTE_URL" "$GATEWAY_BIND_MODE" "$EFFECTIVE_GW_PORT" "$ENABLE_OPENAI_API" "$GATEWAY_AUTH_MODE" "$GATEWAY_TRUSTED_PROXIES"; then
|
||||||
|
:
|
||||||
|
else
|
||||||
rc=$?
|
rc=$?
|
||||||
echo "ERROR: Failed to apply gateway settings via oc_config_helper.py (exit code ${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."
|
echo "ERROR: Gateway configuration may be incorrect; aborting startup."
|
||||||
|
|||||||
Reference in New Issue
Block a user