From 0aa819f1680bd16de32e76520dc791c437bb0540 Mon Sep 17 00:00:00 2001 From: openhands Date: Sat, 14 Mar 2026 04:07:00 +0000 Subject: [PATCH 1/2] fix: generation_N.jsonl candidate_id format mismatch vs filenames (#669) --- tools/push3-evolution/evolve.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/push3-evolution/evolve.sh b/tools/push3-evolution/evolve.sh index 89624ff..640d391 100755 --- a/tools/push3-evolution/evolve.sh +++ b/tools/push3-evolution/evolve.sh @@ -452,7 +452,8 @@ for gen in $(seq 0 $((GENERATIONS - 1))); do CAND_IDX="${CAND_FILE##*candidate_}" CAND_IDX="${CAND_IDX%.push3}" - CID="gen${gen}_c${CAND_IDX}" + # Canonical candidate_id format: "candidate_XXX" (matches source filename and batch-eval IDs). + CID="candidate_${CAND_IDX}" # Read mutations_applied from sidecar; default 0 if missing. OPS_FILE="${CAND_FILE%.push3}.ops" From b6c07b1d93123ec4b4c4dc4adec3335eca7d4978 Mon Sep 17 00:00:00 2001 From: openhands Date: Sat, 14 Mar 2026 04:27:59 +0000 Subject: [PATCH 2/2] fix: generation_N.jsonl candidate_id format mismatch vs filenames (#669) --- tools/push3-evolution/evolve.sh | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tools/push3-evolution/evolve.sh b/tools/push3-evolution/evolve.sh index 640d391..a8c2392 100755 --- a/tools/push3-evolution/evolve.sh +++ b/tools/push3-evolution/evolve.sh @@ -762,7 +762,7 @@ for fname in sorted(os.listdir(output_dir)): if not (fname.startswith('generation_') and fname.endswith('.jsonl')): continue try: - int(fname[len('generation_'):-len('.jsonl')]) # validate integer suffix + gen_idx = int(fname[len('generation_'):-len('.jsonl')]) # validate integer suffix except ValueError: continue with open(os.path.join(output_dir, fname)) as f: @@ -773,13 +773,11 @@ for fname in sorted(os.listdir(output_dir)): fitness = int(d.get('fitness', 0)) if fitness < threshold: continue - # cid format: "gen{N}_c{MMM}" - if not cid.startswith('gen') or '_c' not in cid: + # cid format: "candidate_XXX" (gen_idx derived from enclosing filename) + if not cid.startswith('candidate_'): continue - after_gen = cid[3:] # strip "gen" - gen_str, cand_str = after_gen.split('_c', 1) - gen_idx = int(gen_str) - push3_path = os.path.join( + cand_str = cid[len('candidate_'):] # numeric suffix, e.g. "001" + push3_path = os.path.join( work_dir, f'gen_{gen_idx}', f'candidate_{int(cand_str):03d}.push3' )