diff --git a/campaigns.yaml b/campaigns.yaml
index 52afe00..0b48355 100644
--- a/campaigns.yaml
+++ b/campaigns.yaml
@@ -91,18 +91,18 @@ campaigns:
project: ic50_workspace
- id: gaussian-x3-search-benchmark
title: PyAutoFit search benchmark on gaussian_x3 (autofit_inference)
- status: blocked
+ status: running
updated: '2026-10-14'
- next: Freeze gaussian_x3@2 from the existing 17-row wave-1 calibration before any scored run (protocol §7;
- the pilot is not restarted); then run scored wave 2, which absorbs the 297 deferred runs, and the JAX blend
- reference seed 1 on RAL partition ral on a PyAutoFit revision frozen after A2 and A4.
- recent_progress: Wave-1 pilot stopped at 223 of 520 expected runs by the B3 wrap-up ruling (2026-10-08);
- pilot ranks nothing; catalogue, calibration record and inference-summary@1 published.
- blockers: Scored wave 2 waits for phases A2 (PyAutoFit#1679, gradients under JAX) and A4; NSS waits on A3b;
- no compute submission is authorized by this ledger.
- job_status: unknown — live scheduler not queried; the local pilot was stopped and this ledger records no
- RAL submission
- evidence: https://github.com/PyAutoLabs/autofit_inference/issues/4
+ next: Scored wave 2 submitted on RAL partition ral 2026-10-14 (gaussian_x3@2 frozen in autofit_inference
+ 72d6faaf1717; PyAutoFit pin df6d218f10cd; references 408244/408245, probe 408246, builds 408346/408347,
+ scored arrays 408348/408365/408366/408367); when they finish, B5b pulls, judges under @2 and publishes.
+ recent_progress: Wave-1 pilot stopped at 223 of 520 runs (2026-10-08); gaussian_x3@2 frozen from its 17-row
+ calibration before any scored run and scored wave 2 (11,750 runs + 20-run probe) submitted 2026-10-14 (B5a,
+ autofit_inference#9).
+ blockers: none for the running wave; the JAX blend realisation-1 reference is built on the laptop in B5b.
+ job_status: unknown — live scheduler not queried; the Cortex ledger records the submission of 2026-10-14
+ 17:19 BST
+ evidence: https://github.com/PyAutoLabs/autofit_inference/issues/8
project: autofit_inference
tasks:
- id: drop_1e3_prior_centring_after_631
@@ -175,3 +175,13 @@ tasks:
next: Pilot stopped at 223 of 520 runs and is not restarted; freeze gaussian_x3@2 from its 17-row calibration
before any scored run; the deferred cells move to scored wave 2 (after A2 and A4).
evidence: https://github.com/PyAutoLabs/autofit_inference/issues/4
+- id: gaussian_x3_search_wave2
+ campaign: gaussian-x3-search-benchmark
+ title: gaussian_x3 search benchmark — wave 2 (scored)
+ status: running
+ priority: high
+ path: tasks/gaussian_x3_search_wave2.md
+ updated: '2026-10-14'
+ next: Submitted on RAL ral 2026-10-14 under gaussian_x3@2 (Cortex autofit_inference Runs); B5b pulls, builds the
+ JAX blend realisation-1 reference, sets probe-first timeouts, judges under @2 and publishes.
+ evidence: https://github.com/PyAutoLabs/autofit_inference/issues/8
diff --git a/dashboard.html b/dashboard.html
index 879849b..16a75ce 100644
--- a/dashboard.html
+++ b/dashboard.html
@@ -369,7 +369,7 @@
- PyAutoInsight: https://github.com/PyAutoLabs/PyAutoInsight
- autolens_inference: https://github.com/PyAutoLabs/autolens_inference
- autofit_inference: https://github.com/PyAutoLabs/autofit_inference
Wave-1 pilot stopped at 223 of 520 expected runs by the B3 wrap-up ruling (2026-10-08); pilot ranks nothing; catalogue, calibration record and inference-summary@1 published.
Freeze gaussian_x3@2 from the existing 17-row wave-1 calibration before any scored run (protocol §7; the pilot is not restarted); then run scored wave 2, which absorbs the 297 deferred runs, and the JAX blend reference seed 1 on RAL partition ral on a PyAutoFit revision frozen after A2 and A4.
Pilot stopped at 223 of 520 runs and is not restarted; freeze gaussian_x3@2 from its 17-row calibration before any scored run; the deferred cells move to scored wave 2 (after A2 and A4).
Wave-1 pilot stopped at 223 of 520 runs (2026-10-08); gaussian_x3@2 frozen from its 17-row calibration before any scored run and scored wave 2 (11,750 runs + 20-run probe) submitted 2026-10-14 (B5a, autofit_inference#9).
Scored wave 2 submitted on RAL partition ral 2026-10-14 (gaussian_x3@2 frozen in autofit_inference 72d6faaf1717; PyAutoFit pin df6d218f10cd; references 408244/408245, probe 408246, builds 408346/408347, scored arrays 408348/408365/408366/408367); when they finish, B5b pulls, judges under @2 and publishes.
Pilot stopped at 223 of 520 runs and is not restarted; freeze gaussian_x3@2 from its 17-row calibration before any scored run; the deferred cells move to scored wave 2 (after A2 and A4).
failed: TracerBoolConversionError: Attempted boolean conversion of traced array with shape bool[].
The error occurred while tracing the function log_l at <workspace>/PyAutoFit/autofit/non_linear/search/mcmc/blackjax/nuts/search.py:730 for jit. This concrete value was not available in Python because it depends on the value of the argument params.
See https://docs.jax.dev/en/latest/errors.html#jax.errors.TracerBoolConversionError
failed: TracerBoolConversionError: Attempted boolean conversion of traced array with shape bool[].
The error occurred while tracing the function log_l at <workspace>/PyAutoFit/autofit/non_linear/search/mcmc/blackjax/nuts/search.py:730 for jit. This concrete value was not available in Python because it depends on the value of the argument params.
diff --git a/dashboard.md b/dashboard.md
index 76d7747..c0ff6cf 100644
--- a/dashboard.md
+++ b/dashboard.md
@@ -1,6 +1,6 @@
# PyAutoInsight — inference control room
-
+
| Where | Count |
|---|---:|
@@ -10,7 +10,7 @@
| [Cached](#evidence) | 0 |
| [Failed](#evidence) | 0 |
-
+
## Check in on all inference work
Copy this into one chat. Add a campaign focus or idea before or after it, or leave it unchanged.
@@ -46,7 +46,7 @@ After taking action, report what changed, what the evidence supports and what re
| [N=50 NUTS versus three EP repeats](https://github.com/PyAutoLabs/PyAutoCortex/blob/d45f198804615c090e6b6694cf725ddb0be2354e/projects/ep_toy_gaussian.md) | Cortex records failed wave 1 (EMFILE/OOM), wave-2 preparation and no submission. | Present the existing wave-2 proposal with current dependency evidence for decision. |
| [Hierarchical slope recovery at scale](https://github.com/PyAutoLabs/PyAutoCortex/blob/d45f198804615c090e6b6694cf725ddb0be2354e/projects/slope_hierarchy_scale.md) | Cortex retains graphical baseline, post-processing OOM and stale EP hierarchical factor; Mind records later moments fix. | Verify the moments fix release and project mirror; recover missing summaries from existing samples before a proposed rerun. |
| [IC50 EP and graphical scale ladder](https://github.com/PyAutoLabs/PyAutoCortex/blob/d45f198804615c090e6b6694cf725ddb0be2354e/projects/ic50_workspace.md) | Cortex records N=5/10/25 results, failed N=50 EP rung and width-interpretation caveat. | Check implementation close-outs, then propose a seeded ladder with appropriate output and mean-field diagnostics. |
-| [PyAutoFit search benchmark on gaussian_x3 (autofit_inference)](https://github.com/PyAutoLabs/autofit_inference/issues/4) | Wave-1 pilot stopped at 223 of 520 expected runs by the B3 wrap-up ruling (2026-10-08); pilot ranks nothing; catalogue, calibration record and inference-summary@1 published. | Freeze gaussian_x3@2 from the existing 17-row wave-1 calibration before any scored run (protocol §7; the pilot is not restarted); then run scored wave 2, which absorbs the 297 deferred runs, and the JAX blend reference seed 1 on RAL partition ral on a PyAutoFit revision frozen after A2 and A4. |
+| [PyAutoFit search benchmark on gaussian_x3 (autofit_inference)](https://github.com/PyAutoLabs/autofit_inference/issues/8) | Wave-1 pilot stopped at 223 of 520 runs (2026-10-08); gaussian_x3@2 frozen from its 17-row calibration before any scored run and scored wave 2 (11,750 runs + 20-run probe) submitted 2026-10-14 (B5a, autofit_inference#9). | Scored wave 2 submitted on RAL partition ral 2026-10-14 (gaussian_x3@2 frozen in autofit_inference 72d6faaf1717; PyAutoFit pin df6d218f10cd; references 408244/408245, probe 408246, builds 408346/408347, scored arrays 408348/408365/408366/408367); when they finish, B5b pulls, judges under @2 and publishes. |
## Active tasks
@@ -58,6 +58,7 @@ After taking action, report what changed, what the evidence supports and what re
| [Graphical Model Scale-Up — Scoping](https://github.com/PyAutoLabs/PyAutoInsight/blob/main/tasks/graphical_scoping.md) | graphical-ep | needs-slicing | high | Reconcile current Cortex scale results and library dependencies; select one bounded inference phase with a witness. |
| [NUTS/HMC trial on validated likelihoods](https://github.com/PyAutoLabs/PyAutoInsight/blob/main/tasks/gradient_sampler_validated_likelihoods.md) | point-source-admission | needs-decision | normal | An unscoped idea, not permission to submit: reconcile point-source admission with imaging and weak-lensing candidate targets. |
| [gaussian_x3 search benchmark — wave 1 (the pilot)](https://github.com/PyAutoLabs/PyAutoInsight/blob/main/tasks/gaussian_x3_search_wave1.md) | gaussian-x3-search-benchmark | blocked | normal | Pilot stopped at 223 of 520 runs and is not restarted; freeze gaussian_x3@2 from its 17-row calibration before any scored run; the deferred cells move to scored wave 2 (after A2 and A4). |
+| [gaussian_x3 search benchmark — wave 2 (scored)](https://github.com/PyAutoLabs/PyAutoInsight/blob/main/tasks/gaussian_x3_search_wave2.md) | gaussian-x3-search-benchmark | running | high | Submitted on RAL ral 2026-10-14 under gaussian_x3@2 (Cortex autofit_inference Runs); B5b pulls, builds the JAX blend realisation-1 reference, sets probe-first timeouts, judges under @2 and publishes. |
[Ledger](https://github.com/PyAutoLabs/PyAutoInsight/blob/main/campaigns.yaml)
diff --git a/tasks/gaussian_x3_search_wave2.md b/tasks/gaussian_x3_search_wave2.md
new file mode 100644
index 0000000..e745975
--- /dev/null
+++ b/tasks/gaussian_x3_search_wave2.md
@@ -0,0 +1,65 @@
+# gaussian_x3 search benchmark — wave 2 (scored)
+
+Type: research
+Target: autofit_inference
+Campaign: gaussian-x3-search-benchmark
+Epic: search-extensibility (phase B5)
+Issue: https://github.com/PyAutoLabs/autofit_inference/issues/8
+Filed: 2026-10-14
+
+## Intent
+
+Wave 2 is the **scored** wave of the `gaussian_x3` search benchmark (autofit_inference,
+protocol `gaussian_x3@2`,
+[`wiki/project/protocol_gaussian_x3.md`](https://github.com/PyAutoLabs/autofit_inference/blob/main/wiki/project/protocol_gaussian_x3.md)
+§9 and §11 A2). Within each task (point/MAP, posterior, evidence; never across tasks) it
+measures which PyAutoFit searches find the right answer, how reliably across seeds and
+data realisations, and the expected wall per right answer. It absorbs the pilot's 297
+deferred runs, which are judged under `@2` and never used as calibration input.
+
+## Freeze
+
+`gaussian_x3@2` was frozen in autofit_inference `72d6faaf1717` **before any scored run**.
+It was frozen from the existing 17-row wave-1 calibration; the pilot was not restarted.
+The 223 pilot rows stay `@1`.
+
+## Menu and identity
+
+The wave runs 50 search seeds × data realisations 1–5 × every non-deferred leg × both
+datasets, on `ral_numpy_fp64` and, where the search is JAX-native, `ral_jax_cpu_fp64`.
+It runs against a private PyAutoFit checkout pinned at `df6d218f10cd`, the A4 merge.
+
+- The scored arrays are 11 750 runs.
+- The probe-first cells (Zeus on JAX, and NSS's 50-step entry) first run a 5-run probe.
+ Their timeout comes from that probe, and their remaining 980 runs follow in B5b.
+- Warm-started BlackJAXNUTS on the blend is `deferred`: the asserted blend still fails at
+ trace time at the pin.
+
+A row belongs to the wave only when its key matches all of
+`(dataset, sampler, settings_name, config_id, data_seed, protocol_id, pyautofit_sha)`.
+Every expected run is accounted as `row`, `failed`, `missing` or `deferred`
+(`scripts/misc/searches/_wave2.py`).
+
+## Submission (2026-10-14, B5a)
+
+All jobs ran on RAL `--partition=ral` only, with job ids on the Cortex ledger
+(`autofit_inference` `## Runs`) and in autofit_inference `wiki/project/state.md`:
+
+- references: 408244, 408245
+- probe: 408246
+- reference builds: 408346, 408347
+- scored arrays: 408348, 408365, 408366, 408367, each throttled to `%60`
+
+This task authorizes nothing further: B5a submitted the wave. Nothing has been pulled or
+scored yet.
+
+## Next (B5b, a separate Mind task)
+
+When the arrays finish:
+
+1. Pull the results.
+2. Build the JAX blend realisation-1 reference on the laptop. Any re-judging of the
+ pilot's `@1` rows against it is a reassessment and must be decided explicitly.
+3. Set the probe-first timeouts and submit the rest of those cells.
+4. Judge every row under `@2`, catalogue it, and publish the wave-2 summary.
+5. Refresh the Insight `fit` snapshot only then.