fix: _validate_env_vars skips Anthropic-backend agents + missing sed escaping
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful

- 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.
This commit is contained in:
Agent 2026-04-16 12:28:57 +00:00
parent 53a1fe397b
commit a3eb33ccf7
2 changed files with 4 additions and 3 deletions

View file

@ -1789,7 +1789,6 @@ _validate_env_vars() {
while IFS='|' read -r service_name forge_user base_url _api_key; do while IFS='|' read -r service_name forge_user base_url _api_key; do
[ -n "$service_name" ] || continue [ -n "$service_name" ] || continue
[ -n "$forge_user" ] || continue [ -n "$forge_user" ] || continue
[ -n "$base_url" ] || continue
# Derive variable names (user -> USER_UPPER) # Derive variable names (user -> USER_UPPER)
local user_upper local user_upper
@ -1809,7 +1808,7 @@ _validate_env_vars() {
errors=$((errors + 1)) errors=$((errors + 1))
fi fi
# Check backend URL or API key # Check backend URL or API key (conditional based on base_url presence)
if [ -n "$base_url" ]; then if [ -n "$base_url" ]; then
# Local model: needs ANTHROPIC_BASE_URL # Local model: needs ANTHROPIC_BASE_URL
if [ -z "${env_vars[ANTHROPIC_BASE_URL]:-}" ]; then if [ -z "${env_vars[ANTHROPIC_BASE_URL]:-}" ]; then

View file

@ -262,8 +262,10 @@ disinto_hire_an_agent() {
# Local model agent: write ANTHROPIC_BASE_URL # Local model agent: write ANTHROPIC_BASE_URL
local backend_var="ANTHROPIC_BASE_URL" local backend_var="ANTHROPIC_BASE_URL"
local backend_val="$local_model" 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 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" echo " ${backend_var} updated"
else else
printf '%s=%s\n' "$backend_var" "$backend_val" >> "$env_file" printf '%s=%s\n' "$backend_var" "$backend_val" >> "$env_file"