Self-evolving agents — genes that drive real temperature, and an experiment that snapshots mid-run and resumes on another instance (exp6 + exp6.5, v0.25 → v0.30) A genetic algorithm over forkable AgentDefs successfully demonstrated cross-instance mid-run snapshot and resume across five loomcycle releases. The experiment evolved three genes (creativity, courage, caution) with per-agent temperature tuning, and after fixing pause/resume bugs, a breeder agent was paused mid-MUTATE, snapshotted, restored on a fresh instance, and autonomously completed its work. The genetic lineage crossed instance boundaries, proving that evolution can survive instance migration. A genetic algorithm over forkable AgentDefs, run in two iterations across five loomcycle releases. exp6 v0.25.2 static + v0.26.2 fully-dynamic was prompt-only evolution — three genes creativity / courage / caution baked as literal text into each solver's system prompt and inherited via AgentDef.fork + parent def id lineage. exp6.5 closes the experiment cleanly across v0.28.0 → v0.30.0 with all three previously-open gaps now fixed. 1 Per-agent model tunings 447, v0.28.0 make AgentDef.sampling a real fork-overlay field — content-hashed, round-tripping through mergedDef + applyOverlay + lookup.SubstrateAgentDef, exposed via Context op=self. The creativity gene now sets sampling.temperature = round creativity/10, 2 — 0.0 focused, 1.0 wild — so a gene mutation actually changes the model's sampling, not just prompt text. Real evolution, not pretend. 2 F41 fixed 446, v0.28.0, RFC X Phase 1 — cooperative pause now parks in-flight sub-runs at iteration boundaries, gates new POST /v1/runs with HTTP 503 during the quiesce window, and emits a precise warning when a fan-out parent can't yet park. 3 F42 fixed 456, v0.30.0, RFC X Phase 2 — cross-instance resume of a snapshotted mid-run. ResumePausedRuns reconstructs a paused run's loop from its restored transcript and re-enters loop.Run under the same run id, fired after a snapshot restore response reports paused runs resumed and at boot crash recovery . The killer demo: pause the breeder mid-MUTATE after gen:1:summary was written but only gen:2:var:0 was seeded — three of four planned forks for gen 2 hadn't happened yet , snapshot capturing paused runs:1, agent=exp6-breeder, 91 transcript events. Wipe the DB. Boot a fresh loomcycle instance. Restore the file — response: {agent defs restored:10, memory restored:18, evaluations restored:4, paused runs restored:1, paused runs resumed:1}. Boot log: "resume: re-dispatched 1 paused run s ; 0 skipped/flagged". The re-dispatched breeder finishes its work autonomously with no external driver — right after restore gen 2 had only var0, with nothing else running the resumed breeder seeded var1-3 on its own, completing the very mutate it was parked in the middle of. The experiment then continues to completion: result:summary {generations:5, best score:0.91, winner def id:def e7a3, stopped:max gen}, mean score climbing 0.763 → 0.865, genes converging creativity 3.0 → 8.8, courage 3.5 → 8.2, caution 7.0 → 4.5 . The per-agent temperature gene survived the mid-run restore too — the v0.30.0 winner has sampling.temperature 0.8, set during a forked variant on instance 1 and preserved through snapshot → wipe → restore on instance 2. Cross-instance lineage check, sharper this time: a gen-2 variant forged on the fresh instance by the re-dispatched breeder has parent def id resolving to exp6-solver v8 — a gen-1 def that exists on instance 2 only because it was restored from the file. The genetic lineage chain crossed not just the instance boundary but the mid-run instance boundary. The new gen-2 variants weren't just runs the driver spawned afterward; they were the breeder's own work, picked up from where it had been parked, and committed back to the substrate of the new machine. The single failure mode that previously forced "snapshot only at a quiescent boundary" is fixed: pause/snapshot truly anytime. One residual tracked in RFC X Phase 3 not blocking : parking the fan-out parent itself during parallel spawn so a mid-SOLVE snapshot also captures the orchestrator — orthogonal to the F42 restore-side fix, doesn't block any real workflow since the breeder's MUTATE phase is where the interesting mid-run state lives anyway which the v0.30.0 demo captures cleanly . F40 history, still load-bearing : the AgentDef create/fork overlay was silently dropping the entire def scopes capability family on v0.25.2; a runtime-authored meta-agent couldn't fork. Fixed in v0.26.2 436, RFC W by round-tripping the five def scopes through the substrate, deliberately not part of content sha256 since ACLs are authority not content. The fix persists through snapshot — the breeder's agent def scopes survives the file, so a restored breeder can still fork. exp6.5 relies on this every time it crosses an instance boundary. The engineering lessons worth keeping: an evolutionary substrate needs more than forkable defs — it needs gene-to-runtime mappings that go past prompt text sampling.temperature is the first ; an experiment that fits in a 76 KB file and resumes from any pause point is a different kind of artifact than one that lives in a process; "pause anytime" is a contract that requires both halves of the runtime to participate — the F41 fix made pause wait for in-flight runs to park and gated new spawns, the F42 fix made paused runs come back to life on the other side of a snapshot. Either alone would have been a soft promise; together they make "checkpoint and continue, anytime, anywhere" a real guarantee. What this unlocks: long-running production experiments — prompt evolution, A/B routing of competing agent versions, auto-tuning loops, durable workflows that span days — can be checkpointed at any moment, handed to another developer or another machine, and continue from exactly where they were. The first experiment in the series that needed no new substrate primitives — and now the first portable experiment artifact that survives a mid-run boundary, a DB wipe, and resumes autonomously on a clean machine.