Skip to content

test(compat): verify OpenEvolve bundle round trips - #543

Merged
codelion merged 1 commit into
algorithmicsuperintelligence:mainfrom
Yushu-Li:test/alphaevolve-roundtrip
Oct 24, 2026
Merged

codelion merged 1 commit into
algorithmicsuperintelligence:mainfrom
Yushu-Li:test/alphaevolve-roundtrip

Conversation

@Yushu-Li

Copy link
Copy Markdown
Contributor

The bundle exporter and configuration importer have individual coverage, but an OE example has not been exercised through the complete export/import path back into a real OE run. Add offline integration coverage for the unchanged function_minimization and circle_packing examples, and run it in the dedicated interop workflow introduced by #542.

Each case loads an existing example YAML, bounds its generation budget to one, exports the original Python seed/evaluator, relocates the bundle, reads its actual experiment/evaluation JSON, and imports the generated candidate evaluator. Temporary module registrations and the original input directory are removed before evaluator serialization. The direct and returned paths each evaluate the seed and a fixed comment-only proposal through the public run_evolution API and actual OE workers, from an unrelated working directory.

Compare all numeric seed/child metrics except elapsed evaluation time, require positive finite fitness and exact candidate source hashes, and verify worker evaluation records, evolution traces and saved best programs. Check exported source hashes, an unmutated source configuration, imported budget/language/model weights and names, explicit local endpoint/key rebinding, the documented prompt prefix and warnings for omitted settings. Circle packing exercises an explicit two-model mapping. A negative check rejects an unguarded helper before executing examples.

Reuse the existing subprocess environment allowlist and startup tripwires: no real credentials are forwarded, and network/cloud SDK attempts are blocked and recorded in helpers, workers and evaluator subprocesses. These are safeguards for trusted fixtures, not a sandbox. The workflow additionally triggers for changes to the two OE examples; no production code, base dependencies or existing unit/integration jobs are changed.

This verifies the supported subset under controlled inputs, not lossless search behavior or learned improvement. Fix NumPy's random stream on both paths and explicitly align one island, single-stage/single-worker evaluation and diff mode. Prompt construction, artifacts, timing, search controls and other documented export losses are not claimed to round-trip. Actual managed AlphaEvolve service execution remains unverified.

Validation:

  • Existing full offline unit suite: 881 tests passed (64.044 seconds).
  • Existing pinned upstream integration group: all 8 checks passed.
  • New round-trip group: all 3 checks passed, including a separate clean Python 3.12 environment with neither google nor alpha_evolve installed. Both examples produced identical direct/returned fitness; each case recorded two actual evaluated proposals, one on each side, and zero network/cloud attempts.
  • Black/isort, Python 3.10 grammar checks, official actionlint v1.7.7 and Frame scans of both new Python files passed.

Reproduce the new group with python tests/alphaevolve_upstream/test_roundtrip.py -v from an installed OE checkout; it does not require an AlphaEvolve source checkout. GitHub-hosted Ubuntu execution will be verified after publication.

Continues #468 without closing it. The walkthrough documents the local round-trip scope and the remaining authenticated managed-service acceptance check for maintainer review.

@codelion
codelion merged commit 8c65f74 into algorithmicsuperintelligence:main Oct 24, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants