# `Mutare.Sandbox.ProjectEvaluation`
[🔗](https://github.com/foxbenjaminfox/mutare/blob/v0.2.1/lib/mutare/sandbox/project_evaluation.ex#L1)

Preserve evidence of failures while evaluating the sandbox's `mix.exs` files.

Selection precedes project evaluation, so required library code and `project/0`
can fail with a mutation active, before configuration or application startup.
Wrapping the whole project source covers both inline and externally required
project definitions, independently of the compiler-options hook. The selector
and watcher bootstrap stays outside this wrapper so its own failures cannot
produce project evidence.

The wrapper prints a marker for escaping errors, exits, and throws, then re-raises
them with their original class, reason, and stacktrace. On success, the wrapper
returns the source's value and adds no output. `Mutare.Sandbox.Command.Output` requires
the marker and an exception header, even when deep calls lose all project frames.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
