claude-evolve 1.5.30 → 1.5.31

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.
@@ -40,6 +40,7 @@ SELECTORS:
40
40
  pending Target all candidates with pending status
41
41
  running Target all candidates with running status
42
42
  skipped Target all candidates with skipped status
43
+ 0perf Target all candidates with 0 performance score
43
44
 
44
45
  ACTIONS:
45
46
  failed Mark candidates as failed (keeps scores)
@@ -50,6 +51,7 @@ ACTIONS:
50
51
  failed-retry2 Mark candidates for retry attempt 2 (bug fixing)
51
52
  failed-retry3 Mark candidates for retry attempt 3 (bug fixing)
52
53
  reboot Reset completely (delete .py files, clear scores, set pending)
54
+ reset Same as reboot (synonym)
53
55
  delete Delete candidates from CSV and remove .py files (asks confirmation)
54
56
 
55
57
  EXAMPLES:
@@ -62,6 +64,8 @@ EXAMPLES:
62
64
  claude-evolve edit complete failed # Mark all complete as failed for re-run
63
65
  claude-evolve edit all pending # Mark everything as pending for re-run
64
66
  claude-evolve edit gen02 reboot # Full reset of gen02 (delete files + clear data)
67
+ claude-evolve edit gen02 reset # Same as reboot (synonym)
68
+ claude-evolve edit 0perf pending # Reset all candidates with 0 performance
65
69
  claude-evolve edit gen02 delete # Delete gen02 from CSV and remove .py files
66
70
 
67
71
  DESCRIPTION:
@@ -112,16 +116,16 @@ if ! validate_config; then
112
116
  fi
113
117
 
114
118
  # Validate selector format
115
- if [[ "$SELECTOR" != "all" && ! "$SELECTOR" =~ ^gen[0-9]+$ && "$SELECTOR" != "failed" && "$SELECTOR" != "complete" && "$SELECTOR" != "pending" && "$SELECTOR" != "running" && "$SELECTOR" != "skipped" ]]; then
116
- echo "[ERROR] Selector must be 'all', 'genXX' (e.g., gen01), or status ('failed', 'complete', 'pending', 'running', 'skipped')" >&2
119
+ if [[ "$SELECTOR" != "all" && ! "$SELECTOR" =~ ^gen[0-9]+$ && "$SELECTOR" != "failed" && "$SELECTOR" != "complete" && "$SELECTOR" != "pending" && "$SELECTOR" != "running" && "$SELECTOR" != "skipped" && "$SELECTOR" != "0perf" ]]; then
120
+ echo "[ERROR] Selector must be 'all', 'genXX' (e.g., gen01), or status ('failed', 'complete', 'pending', 'running', 'skipped', '0perf')" >&2
117
121
  exit 1
118
122
  fi
119
123
 
120
124
  # Validate action
121
125
  case "$ACTION" in
122
- failed|complete|pending|skipped|failed-retry1|failed-retry2|failed-retry3|reboot|delete) ;;
126
+ failed|complete|pending|skipped|failed-retry1|failed-retry2|failed-retry3|reboot|reset|delete) ;;
123
127
  *)
124
- echo "[ERROR] Action must be one of: failed, complete, pending, skipped, failed-retry1, failed-retry2, failed-retry3, reboot, delete" >&2
128
+ echo "[ERROR] Action must be one of: failed, complete, pending, skipped, failed-retry1, failed-retry2, failed-retry3, reboot, reset, delete" >&2
125
129
  exit 1
126
130
  ;;
127
131
  esac
@@ -213,12 +217,16 @@ try:
213
217
  elif selector.startswith('gen') and '-' in candidate_id:
214
218
  # Generation selector (e.g., gen01, gen02)
215
219
  matches = candidate_id.startswith(selector + '-')
216
- elif selector in ['failed', 'complete', 'pending', 'running', 'skipped']:
220
+ elif selector in ['failed', 'complete', 'pending', 'running', 'skipped', '0perf']:
217
221
  # Status selector
218
222
  if selector == 'pending':
219
223
  matches = current_status == '' or current_status == 'pending'
220
224
  elif selector == 'failed':
221
225
  matches = current_status.startswith('failed')
226
+ elif selector == '0perf':
227
+ # Select candidates with performance == 0
228
+ performance = row[3] if len(row) > 3 else ''
229
+ matches = performance == '0' or performance == '0.0'
222
230
  else:
223
231
  matches = current_status == selector
224
232
 
@@ -367,6 +375,10 @@ try:
367
375
  matches = current_status.startswith('failed')
368
376
  elif selector == 'skipped':
369
377
  matches = current_status == 'skipped'
378
+ elif selector == '0perf':
379
+ # Select candidates with performance == 0
380
+ performance = row[3] if len(row) > 3 else ''
381
+ matches = performance == '0' or performance == '0.0'
370
382
  else:
371
383
  matches = current_status == selector
372
384
 
@@ -487,6 +499,10 @@ with EvolutionCSV('$FULL_CSV_PATH') as csv:
487
499
  matches = current_status.startswith('failed')
488
500
  elif selector == 'skipped':
489
501
  matches = current_status == 'skipped'
502
+ elif selector == '0perf':
503
+ # Select candidates with performance == 0
504
+ performance = row[3] if len(row) > 3 else ''
505
+ matches = performance == '0' or performance == '0.0'
490
506
  else:
491
507
  matches = current_status == selector
492
508
 
@@ -544,7 +560,7 @@ case "$ACTION" in
544
560
  failed-retry3)
545
561
  update_candidates_status "$SELECTOR" "failed-retry3" "false"
546
562
  ;;
547
- reboot)
563
+ reboot|reset)
548
564
  echo "[INFO] Performing full reboot of '$SELECTOR'..."
549
565
  delete_evolution_files "$SELECTOR"
550
566
  update_candidates_status "$SELECTOR" "" "true" # Clear scores and set pending
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-evolve",
3
- "version": "1.5.30",
3
+ "version": "1.5.31",
4
4
  "bin": {
5
5
  "claude-evolve": "./bin/claude-evolve",
6
6
  "claude-evolve-main": "./bin/claude-evolve-main",