diff --git a/config/build/env_vars.yaml b/config/build/env_vars.yaml index 0b54277..6034aad 100644 --- a/config/build/env_vars.yaml +++ b/config/build/env_vars.yaml @@ -56,3 +56,15 @@ overrides: # at the script's already-cheap defaults (num_warmup=200, num_samples=500). - pattern: "searches/BlackJAXNUTS" unset: [PYAUTO_TEST_MODE, PYAUTO_DISABLE_JAX] + # MultiStartAdam is a JAX-native gradient MAP search that hard-raises when the + # analysis is not on the JAX backend. Under this profile's defaults it never + # reaches that guard: PYAUTO_TEST_MODE=2 bypasses the sampler before `_fit` + # runs, so the script passes without executing its JAX path at all — the + # backend regression it exists to catch went unnoticed here and surfaced only + # under mode=release. Run it for real (a jitted 3-parameter fit, ~6s) so the + # weekly mode=smoke workspace-validation sweep, which runs every script under + # this profile, actually exercises it. Note this profile does NOT feed the + # per-PR gate — that is the curated smoke_tests.txt list, which contains + # neither this script nor BlackJAXNUTS. + - pattern: "searches/MultiStartAdam" + unset: [PYAUTO_TEST_MODE, PYAUTO_DISABLE_JAX] diff --git a/config/build/env_vars_release.yaml b/config/build/env_vars_release.yaml index 0609d68..aa630f6 100644 --- a/config/build/env_vars_release.yaml +++ b/config/build/env_vars_release.yaml @@ -52,3 +52,17 @@ overrides: # already satisfied by defaults. - pattern: "searches/BlackJAXNUTS" set: { PYAUTO_DISABLE_JAX: "0" } + # MultiStartAdam is a JAX-native gradient MAP search (jax.vmap of + # jax.value_and_grad over the autofit Fitness). Unlike the samplers below it + # hard-raises when the analysis is not on the JAX backend, so the disabling + # default turned it into a release-validation failure the moment it landed. + - pattern: "searches/MultiStartAdam" + set: { PYAUTO_DISABLE_JAX: "0" } + # The *_jax sampler scripts exist to validate the JAX likelihood path. They + # carry no hard backend guard, so under the disabling default they silently + # validated the NumPy path and passed vacuously — the same failure mode the + # jax_assertions/ note above describes, minus the loud failure. + - pattern: "searches/Dynesty_jax" + set: { PYAUTO_DISABLE_JAX: "0" } + - pattern: "searches/Nautilus_jax" + set: { PYAUTO_DISABLE_JAX: "0" }