From a3eb33ccf76582fef4ce686c3b216b44220b2d4a Mon Sep 17 00:00:00 2001 From: Agent Date: Thu, 16 Apr 2026 12:28:57 +0000 Subject: [PATCH] fix: _validate_env_vars skips Anthropic-backend agents + missing sed escaping - bin/disinto: Remove '[ -n "$base_url" ] || continue' guard that caused all Anthropic-backend agents to be silently skipped during validation. The base_url check is now scoped only to backend-credential selection. - lib/hire-agent.sh: Add sed escaping for ANTHROPIC_BASE_URL value before sed substitution (same pattern as ANTHROPIC_API_KEY at line 256). Fixes AI review BLOCKER and MINOR issues on PR #866. --- bin/disinto | 3 +-- lib/hire-agent.sh | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bin/disinto b/bin/disinto index 69e34dd..dc56f39 100755 --- a/bin/disinto +++ b/bin/disinto @@ -1789,7 +1789,6 @@ _validate_env_vars() { while IFS='|' read -r service_name forge_user base_url _api_key; do [ -n "$service_name" ] || continue [ -n "$forge_user" ] || continue - [ -n "$base_url" ] || continue # Derive variable names (user -> USER_UPPER) local user_upper @@ -1809,7 +1808,7 @@ _validate_env_vars() { errors=$((errors + 1)) fi - # Check backend URL or API key + # Check backend URL or API key (conditional based on base_url presence) if [ -n "$base_url" ]; then # Local model: needs ANTHROPIC_BASE_URL if [ -z "${env_vars[ANTHROPIC_BASE_URL]:-}" ]; then diff --git a/lib/hire-agent.sh b/lib/hire-agent.sh index 5ebe5a1..149845b 100644 --- a/lib/hire-agent.sh +++ b/lib/hire-agent.sh @@ -262,8 +262,10 @@ disinto_hire_an_agent() { # Local model agent: write ANTHROPIC_BASE_URL local backend_var="ANTHROPIC_BASE_URL" local backend_val="$local_model" + local escaped_val + escaped_val=$(printf '%s\n' "$backend_val" | sed 's/[&/\]/\\&/g') if grep -q "^${backend_var}=" "$env_file" 2>/dev/null; then - sed -i "s|^${backend_var}=.*|${backend_var}=${backend_val}|" "$env_file" + sed -i "s|^${backend_var}=.*|${backend_var}=${escaped_val}|" "$env_file" echo " ${backend_var} updated" else printf '%s=%s\n' "$backend_var" "$backend_val" >> "$env_file"