From 5d6e31aa625fda16c03612f70ca56dc9c80f1e24 Mon Sep 17 00:00:00 2001 From: Bernardo Johnston Date: Sat, 14 Feb 2026 21:14:33 -0600 Subject: [PATCH] fix: detect 'everclaw/' provider misconfiguration during install (v0.9.6) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds post-bootstrap config validation that catches the #1 onboarding issue: using 'everclaw/' as a model prefix. Everclaw is a skill, not a provider — this silently routes to Venice instead of Morpheus. Triggered by real user report (Alex) who staked MOR correctly but got billing errors because requests never reached the Morpheus network. --- install.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/install.sh b/install.sh index f99cfb4..cf7690a 100755 --- a/install.sh +++ b/install.sh @@ -230,6 +230,46 @@ bootstrap_inference() { configure_smartagent_defaults } +# ─── Post-Bootstrap: Validate Config (v0.9.6) ──────────────────────────────── +validate_config() { + local config_file="$HOME/.openclaw/openclaw.json" + [[ -f "$config_file" ]] || return 0 + + # Detect "everclaw/" provider prefix — the #1 misconfiguration + local bad + bad=$(python3 -c " +import json +try: + c = json.load(open('$config_file')) + bad = [] + p = c.get('agents',{}).get('defaults',{}).get('model',{}).get('primary','') + if p.startswith('everclaw/'): bad.append(p) + for f in c.get('agents',{}).get('defaults',{}).get('model',{}).get('fallbacks',[]): + if f.startswith('everclaw/'): bad.append(f) + if 'everclaw' in c.get('models',{}).get('providers',{}): bad.append('provider:everclaw') + print(' '.join(bad)) +except: pass +" 2>/dev/null) + + if [[ -n "$bad" ]]; then + warn "═══════════════════════════════════════════════════" + warn " MISCONFIGURATION: 'everclaw/' is not a provider!" + warn "═══════════════════════════════════════════════════" + err "" + err "Your config uses 'everclaw/' as a model prefix." + err "Everclaw is a SKILL, not an inference provider." + err "This routes to Venice (billing errors) instead of Morpheus." + err "" + log "Fix: change your model to:" + info " mor-gateway/kimi-k2.5 — Morpheus API Gateway" + info " morpheus/kimi-k2.5 — Local Morpheus P2P" + err "" + log "Or re-run the bootstrap to auto-fix:" + info " node ~/.openclaw/workspace/skills/everclaw/scripts/bootstrap-gateway.mjs" + err "" + fi +} + # ─── Step 5: Configure Workspace ───────────────────────────────────────────── configure_workspace() { log "Configuring SmartAgent workspace..." @@ -379,6 +419,7 @@ main() { echo "" log "Step 4/6: Decentralized Inference" bootstrap_inference + validate_config echo "" log "Step 5/6: Workspace"