Bug fixes
- MAP-Elites eviction (#454): cell owners are now protected during population eviction — non-elite/homeless programs are removed first, preserving diversity.
- Zombie programs (#454): programs displaced from their MAP-Elites cell are removed instead of lingering as unsampleable entries that consume population slots.
- Program sampling (#452): removed dead
iteration.py, sized inspirations bynum_diverse_programs, and deduplicated inspirations against the top/diverse programs shown in the prompt. - Library API: fixed
run_evolution()with a lambda evaluator raisingSyntaxError(return <lambda>(...)); the lambda is now serialized into a self-contained, subprocess-safe evaluator module. - Initial program artifacts: artifacts produced while evaluating the initial program are now stored (original PR #462).
Testing / CI
- Integration tests now run against the public
codelion/dhara-250mmodel (served via optillm) instead of the gated gemma, with a boundedmax_tokens. - The full integration suite runs in CI (no longer skipping real-LLM tests), with HF model caching and the
math-verifydependency optillm omits. - New Frame SAST workflow scans PR-changed Python files for high/critical issues.
Full changelog: v0.2.27...v0.3.0