claude-evolve 1.5.1 → 1.5.3

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.
package/README.md CHANGED
@@ -30,14 +30,29 @@ Evolution runs indefinitely until you stop it. Perfect for overnight optimizatio
30
30
 
31
31
  ## Commands
32
32
 
33
+ ### Core Commands
33
34
  ```bash
34
35
  claude-evolve # Interactive menu
35
36
  claude-evolve setup # Initialize workspace
36
37
  claude-evolve ideate # Generate new algorithm ideas
37
38
  claude-evolve run # Start evolution loop (runs forever)
38
- claude-evolve analyze # View results and progress
39
+ claude-evolve analyze # View results and progress with charts
39
40
  claude-evolve status # Quick progress overview
41
+ claude-evolve autostatus # Live auto-updating status display
42
+ ```
43
+
44
+ ### Management Commands
45
+ ```bash
40
46
  claude-evolve edit # Manage candidate statuses
47
+ claude-evolve config # View/edit configuration
48
+ claude-evolve cleanup # Clean up old lock files
49
+ ```
50
+
51
+ ### Maintenance Commands
52
+ ```bash
53
+ claude-evolve clean-invalid # Remove invalid candidates
54
+ claude-evolve cleanup-duplicates # Remove duplicate entries
55
+ claude-evolve csv-fix # Fix CSV formatting issues
41
56
  ```
42
57
 
43
58
  ## Working with Multiple Projects
@@ -246,7 +246,8 @@ with open('$csv_file', 'r') as f:
246
246
  "
247
247
 
248
248
  # Process generation stats
249
- for gen in $(cut -d' ' -f1 "$gen_stats_file" | sort -u || echo ""); do
249
+ # Sort generations numerically
250
+ for gen in $(cut -d' ' -f1 "$gen_stats_file" | sort -u | awk '{print substr($0,4), $0}' | sort -n | cut -d' ' -f2 || echo ""); do
250
251
  [[ -z "$gen" ]] && continue
251
252
  total_in_gen=$(grep -c "^$gen " "$gen_stats_file" 2>/dev/null || echo "0")
252
253
  completed_in_gen=$(grep -c "^$gen completed" "$gen_stats_file" 2>/dev/null || echo "0")
@@ -461,7 +462,8 @@ print(f'max_desc=\"{desc_escaped}\"')
461
462
  # Create generation averages file and track max generation
462
463
  gen_index=1
463
464
  max_gen_num=0
464
- for gen in $(cut -d' ' -f1 "$gen_data_temp" | sort -u); do
465
+ # Sort generations numerically for graph
466
+ for gen in $(cut -d' ' -f1 "$gen_data_temp" | sort -u | awk '{print substr($0,4), $0}' | sort -n | cut -d' ' -f2); do
465
467
  if grep -q "^$gen " "$gen_data_temp"; then
466
468
  # Calculate median for this generation
467
469
  # AIDEV-NOTE: Changed from mean to median to be more robust to outliers
@@ -568,7 +570,8 @@ print(f'max_desc=\"{desc_escaped}\"')
568
570
  # Build x-axis labels for generation chart (include all generations from data)
569
571
  xtics_labels=""
570
572
  label_index=1
571
- for gen in $(cut -d' ' -f1 "$gen_data_temp" | sort -u); do
573
+ # Sort generations numerically for graph
574
+ for gen in $(cut -d' ' -f1 "$gen_data_temp" | sort -u | awk '{print substr($0,4), $0}' | sort -n | cut -d' ' -f2); do
572
575
  if [[ -n $gen ]]; then
573
576
  gen_display=$(echo "$gen" | sed 's/gen0*//')
574
577
  if [[ -n $xtics_labels ]]; then
@@ -246,8 +246,8 @@ class AutoStatus:
246
246
  print("-" * min(self.display.cols, len(header_fmt)))
247
247
  row += 1
248
248
 
249
- # Sort generations
250
- sorted_gens = sorted(generations.keys())
249
+ # Sort generations numerically by extracting the number after 'gen'
250
+ sorted_gens = sorted(generations.keys(), key=lambda g: int(g[3:]) if g.startswith("gen") and g[3:].isdigit() else 0)
251
251
 
252
252
  # Calculate how many generations we can show
253
253
  available_rows = self.display.rows - row - 1 # Leave room at bottom