Merge pull request 'fix: fitness_flags not propagated to manifest entries for newly admitted candidates (#990)' (#1096) from fix/issue-990 into master

This commit is contained in:
johba 2026-03-22 07:14:02 +01:00
commit a3de10bf1d

View file

@ -834,7 +834,8 @@ for fname in sorted(os.listdir(output_dir)):
f'candidate_{int(cand_str):03d}.push3'
)
if os.path.exists(push3_path):
qualifying.append((fitness, push3_path, gen_idx, cand_str))
flags = d.get('fitness_flags')
qualifying.append((fitness, push3_path, gen_idx, cand_str, flags))
except (json.JSONDecodeError, ValueError, TypeError, AttributeError):
pass
@ -844,7 +845,7 @@ qualifying.sort(key=lambda x: x[0], reverse=True)
new_items = [] # (fitness, push3_path, manifest_entry)
seen = set(existing_hashes)
for fitness, push3_path, gen_idx, cand_str in qualifying:
for fitness, push3_path, gen_idx, cand_str, flags in qualifying:
h = file_hash(push3_path)
if h in seen:
continue
@ -864,13 +865,14 @@ for fitness, push3_path, gen_idx, cand_str in qualifying:
break
counter += 1
entry = {
'file': filename,
'fitness': fitness,
'origin': 'evolved',
'run': run_id,
'generation': gen_idx,
'date': today,
'note': f'Evolved from {seed_name} (run{run_id} gen{gen_idx})',
'file': filename,
'fitness': fitness,
'fitness_flags': flags,
'origin': 'evolved',
'run': run_id,
'generation': gen_idx,
'date': today,
'note': f'Evolved from {seed_name} (run{run_id} gen{gen_idx})',
}
new_items.append((fitness, push3_path, entry))
@ -903,7 +905,7 @@ pinned = [(effective_fitness(e), e, None) for e in existing
evolved = [(effective_fitness(e), e, None) for e in existing
if e.get('origin') == 'evolved']
for fitness, push3_path, entry in new_items:
evolved.append((fitness, entry, push3_path))
evolved.append((effective_fitness(entry), entry, push3_path))
evolved.sort(key=lambda x: x[0], reverse=True)
admitted_evolved = evolved[:MAX_EVOLVED]