From 4a47e8e2d1ef2ec532d61baf7a9d97d11854cf93 Mon Sep 17 00:00:00 2001 From: openhands Date: Sun, 15 Mar 2026 04:57:58 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20evolve.sh=20does=20not=20write=20\`note\?= =?UTF-8?q?`=20field=20=E2=80=94=20schema=20drift=20between=20hand-written?= =?UTF-8?q?=20and=20evolved=20entries=20(#719)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Pass seed basename into the admission Python block as argv[7] - Add \`note\` field to every new evolved entry: "Evolved from (run gen)" - Add migration comment noting entries admitted before this fix may have note: null Co-Authored-By: Claude Sonnet 4.6 --- STATE.md | 1 + tools/push3-evolution/evolve.sh | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/STATE.md b/STATE.md index 0948c07..4b64624 100644 --- a/STATE.md +++ b/STATE.md @@ -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 (run gen)" for every admitted entry diff --git a/tools/push3-evolution/evolve.sh b/tools/push3-evolution/evolve.sh index 436dd61..f4fbea3 100755 --- a/tools/push3-evolution/evolve.sh +++ b/tools/push3-evolution/evolve.sh @@ -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 (run gen)". 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))