diff --git a/src/lib/onboard.ts b/src/lib/onboard.ts index d57e4a84c57..7a4b791a2f9 100644 --- a/src/lib/onboard.ts +++ b/src/lib/onboard.ts @@ -3003,6 +3003,8 @@ async function createSandbox( const effectiveAgent = agent || agentDefs.loadAgent("openclaw"); registry.registerSandbox({ name: sandboxName, + model: model || null, + provider: provider || null, gpuEnabled: !!gpu, agent: agent ? agent.name : null, agentVersion: fromDockerfile ? null : effectiveAgent.expectedVersion || null, @@ -5392,7 +5394,7 @@ async function onboard(opts = {}) { startRecordedStep("inference", { sandboxName, provider, model }); const inferenceResult = await setupInference( - GATEWAY_NAME, + sandboxName, model, provider, endpointUrl, diff --git a/uninstall.sh b/uninstall.sh index 1300f5d2967..471007b0c38 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -323,15 +323,20 @@ stop_orphaned_openshell_processes() { fi done < <(pgrep "${_pgrep_user[@]}" -x ssh 2>/dev/null || true) - # Deduplicate - local -A seen=() + # Deduplicate (portable — no associative arrays, works on Bash 3.2+) local -a unique_pids=() - for pid in "${pids[@]}"; do - if [ -z "${seen[$pid]:-}" ]; then - seen[$pid]=1 - unique_pids+=("$pid") - fi - done + if [ "${#pids[@]}" -gt 0 ]; then + local _seen=" " + for pid in "${pids[@]}"; do + case "$_seen" in + *" $pid "*) ;; + *) + _seen="$_seen$pid " + unique_pids+=("$pid") + ;; + esac + done + fi if [ "${#unique_pids[@]}" -eq 0 ]; then info "No orphaned openshell processes found"