fix: evolve.sh does not write \note\ field — schema drift between hand-written and evolved entries (#719)

- Pass seed basename into the admission Python block as argv[7]
- Add \`note\` field to every new evolved entry: "Evolved from <seed> (run<N> gen<G>)"
- Add migration comment noting entries admitted before this fix may have note: null

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
openhands 2026-03-15 04:57:58 +00:00
parent 5b8c1cc485
commit 4a47e8e2d1
2 changed files with 7 additions and 0 deletions

View file

@ -41,3 +41,4 @@
- [2026-03-15] `llm`-origin entries in manifest have null fitness and no evaluation path (#724): evaluate-seeds.sh scores null-fitness seeds and writes results back to manifest.jsonl
- [2026-03-15] manifest.jsonl schema has no canonical machine-readable definition (#720)
- [2026-03-15] CID format change silently drops historical generation JSONL on re-admission (#757): warn on unrecognised CID format instead of silently skipping
- [2026-03-15] evolve.sh does not write `note` field — schema drift between hand-written and evolved entries (#719): auto-generate note "Evolved from <seed> (run<N> gen<G>)" for every admitted entry

View file

@ -752,6 +752,9 @@ log "========================================================"
log ""
log "=== Seed pool admission (run=$RUN_ID, threshold=$ADMISSION_THRESHOLD) ==="
# NOTE: entries admitted before fix #719 (2026-03-15) may have note: null.
# All entries admitted by this script from this point forward carry an
# auto-generated note of the form "Evolved from <seed> (run<N> gen<G>)".
mkdir -p "$SEEDS_DIR"
@ -760,6 +763,7 @@ _ADMISSION_RC=0
python3 - "$OUTPUT_DIR" "$WORK_DIR" "$SEEDS_DIR" \
"$ADMISSION_THRESHOLD" "$RUN_ID" "$(date -u '+%Y-%m-%d')" \
"$(basename "$SEED")" \
> "$_ADMISSION_OUT" 2>&1 <<'PYEOF' || _ADMISSION_RC=$?
import json, sys, os, hashlib, shutil, tempfile
@ -767,6 +771,7 @@ output_dir, work_dir, seeds_dir = sys.argv[1], sys.argv[2], sys.argv[3]
threshold = int(sys.argv[4])
run_id = sys.argv[5]
today = sys.argv[6]
seed_name = sys.argv[7]
MAX_EVOLVED = 100 # cap applies to evolved entries only; hand-written are always pinned
manifest_path = os.path.join(seeds_dir, 'manifest.jsonl')
@ -860,6 +865,7 @@ for fitness, push3_path, gen_idx, cand_str in qualifying:
'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))