#624·evolver

inject session-start omits gene `strategy` — only summary labels reach the next session

Author: stwhwingCreated Sep 7, 2026Updated Sep 7, 2026

Summary

While validating a closed-loop inheritance experiment (Pi coding agent → evolver ingest --distill → review → inject → Pi round 2), we found that evolver inject session-start emits only the gene's summary label, not the actionable strategy text. As a result the distilled fix never reaches the next session, and observed "avoidance" gains vanish.

Environment

  • @evomap/evolver 2.0.30 (npm), offline mode, asset store at ~/.evomap/assets/
  • Transcript format: generic-chat JSONL

Evidence (re-verified today on 2.0.30)

The approved gene in genes.jsonl contains the actionable fix:

strategy: ["The file is GBK-encoded, not UTF-8. Let me fix the script:", ...]

But evolver inject session-start output contains only:

evolver memory — use these learned hints silently ...
- gene_distilled_65dec53a [repair]: Auto-drafted from generic-chat session (UNPROVEN — curate via review): bash, exception

grep -ci "gbk\|encoding" on the inject output = 0. evolver inject prompt-recall --hook-stdin with a matching prompt ("the file fails with UnicodeDecodeError; how to read it?") also returns {}.

Impact (measured, N=5 controlled runs, same trap/model/task)

injection channel trap-specific errors R1→R2 token Δ
inject session-start only (labels) 4→6 (no benefit) +13.8% (worse than no injection)
labels + strategy text (workaround: read genes.jsonl directly) 11→4 -55.3% (5/5 runs improved)

Full report: https://github.com/stwhwing/pi-evox-lab/blob/main/docs/experiment-report.md (§16.1)

Suggestion

  • Include the (approved-only) strategy text in inject session-start output, ideally behind a flag (e.g. --include-strategy) for callers who want the full fix;
  • Or document that integrators must read genes.jsonl themselves to materialize strategies.