claude-evolve 1.6.8 → 1.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -139,6 +139,8 @@ call_ai_for_evolution() {
139
139
  # Exhausted retries
140
140
  echo "[WORKER-$$] All models hit usage limits after $max_retries retries" >&2
141
141
  echo "[WORKER-$$] Unable to complete evolution due to API limits" >&2
142
+ # Clean up any partial target file before exiting
143
+ rm -f "$target_file"
142
144
  exit 3
143
145
  fi
144
146
  fi
@@ -156,19 +158,18 @@ call_ai_for_evolution() {
156
158
  fi
157
159
  fi
158
160
 
159
- # Success if file was modified OR exit code is 0 (for cases where file validation isn't applicable)
160
- if [[ "$file_was_modified" == "true" ]] || [[ $ai_exit_code -eq 0 ]]; then
161
- if [[ "$file_was_modified" == "true" ]]; then
162
- echo "[WORKER-$$] AI successfully modified $target_file (exit code: $ai_exit_code)" >&2
163
- else
164
- echo "[WORKER-$$] AI succeeded with exit code 0" >&2
165
- fi
161
+ # Success only if the target file was actually modified.
162
+ # Even if AI exited with code 0, if there were no changes, treat as failure to avoid stale copies.
163
+ if [[ "$file_was_modified" == "true" ]]; then
164
+ echo "[WORKER-$$] AI successfully modified $target_file (exit code: $ai_exit_code)" >&2
166
165
  # Output the result for the worker to use
167
166
  echo "$ai_output"
168
167
  return 0
169
168
  fi
170
169
 
171
- # Non-limit failure - don't retry
170
+ # Non-limit failure - no modification detected; clean up the copied file
171
+ echo "[WORKER-$$] AI changed nothing or failed; cleaning up temporary file" >&2
172
+ rm -f "$target_file"
172
173
  echo "[WORKER-$$] AI failed: exit code $ai_exit_code, no file changes detected" >&2
173
174
  return 1
174
175
  done
@@ -580,4 +581,4 @@ with EvolutionCSV('$FULL_CSV_PATH') as csv:
580
581
  CURRENT_CANDIDATE_ID=""
581
582
  done
582
583
 
583
- echo "[WORKER-$$] No more pending candidates, worker exiting"
584
+ echo "[WORKER-$$] No more pending candidates, worker exiting"
package/lib/ai-cli.sh CHANGED
@@ -97,11 +97,17 @@ $prompt"
97
97
  local ai_exit_code=$?
98
98
  ;;
99
99
  codex-qwen3)
100
- # Qwen3-Coder via Codex CLI with Ollama backend (agentic, explores files)
100
+ # Qwen3-Coder via Codex CLI with Ollama backend (only mildly agentic)
101
101
  local ai_output
102
102
  ai_output=$(timeout 600 codex exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check --oss --model qwen3-coder:30b "$prompt" 2>&1)
103
103
  local ai_exit_code=$?
104
104
  ;;
105
+ codex-oss)
106
+ # Codex-OSS via Codex CLI with Ollama backend
107
+ local ai_output
108
+ ai_output=$(timeout 600 codex exec --dangerously-bypass-approvals-and-sandbox --skip-git-repo-check --oss "$prompt" 2>&1)
109
+ local ai_exit_code=$?
110
+ ;;
105
111
  aider-qwen3|qwen3)
106
112
  # Qwen3-Coder via Aider + Ollama
107
113
  # Extract the target filename from the prompt (e.g., "Modify the algorithm in evolution_gen01-001.py...")
@@ -345,4 +351,4 @@ call_ai_with_round_robin() {
345
351
  # Legacy function name for compatibility
346
352
  call_ai_with_fallbacks() {
347
353
  call_ai_with_round_robin "$@"
348
- }
354
+ }
package/lib/config.sh CHANGED
@@ -55,9 +55,9 @@ DEFAULT_MEMORY_LIMIT_MB=12288
55
55
 
56
56
  # Default LLM CLI configuration - use simple variables instead of arrays
57
57
  # Run: 100% local with qwen3 via Codex+Ollama (more reliable than aider)
58
- DEFAULT_LLM_RUN="codex-qwen3"
58
+ DEFAULT_LLM_RUN="codex-qwen3 codex-oss"
59
59
  # Ideate: Commercial models for idea generation + local fallback
60
- DEFAULT_LLM_IDEATE="gemini sonnet-think gpt5high o3high glm grok-4 codex-qwen3"
60
+ DEFAULT_LLM_IDEATE="gemini sonnet-think gpt5high o3high glm grok-4 codex-qwen3 codex-oss"
61
61
 
62
62
  # Load configuration from config file
63
63
  load_config() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-evolve",
3
- "version": "1.6.8",
3
+ "version": "1.6.10",
4
4
  "bin": {
5
5
  "claude-evolve": "./bin/claude-evolve",
6
6
  "claude-evolve-main": "./bin/claude-evolve-main",