The _direct_evaluate() function in evaluator.py does not support artifact side channels, and I am not sure what it is even still good for, since the cascade evaluation function determines itself whether a cascade function is available. Should the direct evaluate option simply be removed?
How to reproduce a bug:
Set
evaluator:
cascade_evaluation: false
in the config.yaml and use an evaluator program that returns an EvaluationResult object.
The _direct_evaluate() function will trigger a warning in response and discard the data.
https://github.com/codelion/openevolve/blob/c779ac9a5d013c1ef8a12fa4ba8869c271b28a0c/openevolve/evaluator.py#L226