From 037219a0cffee5a8cbcee6237df72669cd2ad2ed Mon Sep 17 00:00:00 2001 From: mrveiss Date: Sun, 5 Apr 2026 21:48:02 +0300 Subject: [PATCH 1/2] fix(ansible): add AUTOBOT_AI_STACK_HOST/PORT to backend env template (#3503) Co-Authored-By: Claude Sonnet 4.6 --- autobot-slm-backend/ansible/roles/backend/defaults/main.yml | 4 ++++ .../ansible/roles/backend/templates/backend.env.j2 | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/autobot-slm-backend/ansible/roles/backend/defaults/main.yml b/autobot-slm-backend/ansible/roles/backend/defaults/main.yml index bffc26cbb..14ddcfe68 100644 --- a/autobot-slm-backend/ansible/roles/backend/defaults/main.yml +++ b/autobot-slm-backend/ansible/roles/backend/defaults/main.yml @@ -55,6 +55,10 @@ backend_llm_provider: "ollama" # Default LLM provider for all agents backend_llm_endpoint: "http://127.0.0.1:11434" # Default Ollama endpoint backend_llm_model: "qwen3.5:9b" # Default LLM model +# AI Stack connection (co-located: use 127.0.0.1; WSL2: may need 10.255.255.254) +backend_ai_stack_host: "127.0.0.1" +backend_ai_stack_port: 8080 + # Service Authentication service_auth_service_id: "main-backend" service_auth_keys_dir: "/etc/autobot/service-keys" diff --git a/autobot-slm-backend/ansible/roles/backend/templates/backend.env.j2 b/autobot-slm-backend/ansible/roles/backend/templates/backend.env.j2 index 39d0f455a..97277914a 100644 --- a/autobot-slm-backend/ansible/roles/backend/templates/backend.env.j2 +++ b/autobot-slm-backend/ansible/roles/backend/templates/backend.env.j2 @@ -44,6 +44,10 @@ AUTOBOT_SLM_TLS_ENABLED=true AUTOBOT_TTS_WORKER_HOST={{ tts_host | default('127.0.0.1') }} AUTOBOT_TTS_WORKER_PORT={{ tts_port | default(8083) }} +# AI Stack (agent processing service) +AUTOBOT_AI_STACK_HOST={{ backend_ai_stack_host }} +AUTOBOT_AI_STACK_PORT={{ backend_ai_stack_port }} + # ChromaDB (remote on AI Stack VM) AUTOBOT_CHROMADB_HOST={{ backend_chromadb_host | default(ai_stack_host | default('127.0.0.1')) }} AUTOBOT_CHROMADB_PORT={{ backend_chromadb_port | default('8100') }} From fd9d99606b531137b32fc755a2c560cb0ec40363 Mon Sep 17 00:00:00 2001 From: mrveiss Date: Sun, 5 Apr 2026 22:08:15 +0300 Subject: [PATCH 2/2] fix(ansible): auto-detect WSL2 and set correct ai_stack_host per-host (#3503) Detect WSL2 at deploy time by reading /proc/version on each target host. When the host is WSL2 and backend_ai_stack_host has not been overridden from the default 127.0.0.1, set it to 10.255.255.254 (the WSL2 mirrored networking loopback IP). This ensures every re-provisioning produces a correct AUTOBOT_AI_STACK_HOST in the env file without any manual override. Co-Authored-By: Claude Sonnet 4.6 --- .../ansible/roles/backend/tasks/main.yml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/autobot-slm-backend/ansible/roles/backend/tasks/main.yml b/autobot-slm-backend/ansible/roles/backend/tasks/main.yml index efba2da1f..b27b2013f 100644 --- a/autobot-slm-backend/ansible/roles/backend/tasks/main.yml +++ b/autobot-slm-backend/ansible/roles/backend/tasks/main.yml @@ -27,6 +27,28 @@ state: present tags: ['backend', 'users'] +# ========================================================== +# WSL2 auto-detection (#3503): 127.0.0.1 is ECONNREFUSED on +# WSL2 mirrored networking — override backend_ai_stack_host +# per-host at deploy time if it has not been explicitly set. +# ========================================================== +- name: "Backend | Read /proc/version to detect WSL2 (#3503)" + ansible.builtin.slurp: + src: /proc/version + register: _proc_version + changed_when: false + failed_when: false + tags: ['backend', 'config'] + +- name: "Backend | Set backend_ai_stack_host=10.255.255.254 on WSL2 hosts (#3503)" + ansible.builtin.set_fact: + backend_ai_stack_host: "10.255.255.254" + when: + - _proc_version.content is defined + - (_proc_version.content | b64decode | lower) is search('microsoft') + - backend_ai_stack_host == '127.0.0.1' + tags: ['backend', 'config'] + # ============================================================ # Per-role env at /etc/autobot/ (#926 Phase 4) # ============================================================