From 6a8c689e953add5dd7e13585991546f7f3751602 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Wed, 14 Oct 2026 09:36:32 +0100 Subject: [PATCH 1/4] =?UTF-8?q?campaigns:=20one=20gaussian=5Fx3@2=20freeze?= =?UTF-8?q?=20rule=20=E2=80=94=20freeze=20before=20any=20scored=20run,=20n?= =?UTF-8?q?o=20pilot=20restart?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The campaign and wave-1 task now match autofit_inference protocol §7: freeze @2 from the existing 17-row calibration before any scored run, never restart the pilot (its deferred runs move to scored wave 2), and keep the A2+A4 gate on scored wave 2. Refs PyAutoLabs/autofit_inference#6 (astra review 06 finding 2). Co-Authored-By: Claude Fable 5.1 --- campaigns.yaml | 17 +++++++++-------- tasks/gaussian_x3_search_wave1.md | 11 +++++++++-- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/campaigns.yaml b/campaigns.yaml index 5617d68..52afe00 100644 --- a/campaigns.yaml +++ b/campaigns.yaml @@ -92,13 +92,14 @@ campaigns: - id: gaussian-x3-search-benchmark title: PyAutoFit search benchmark on gaussian_x3 (autofit_inference) status: blocked - updated: '2026-10-08' - next: Run the 297 deferred wave-1 runs (and the JAX blend reference seed 1) on RAL partition ral on a PyAutoFit - revision after A2, then freeze gaussian_x3@2 before any wave-2 row. + 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: Phase A2 (PyAutoFit#1679, gradients under JAX) must merge first; NSS waits on A3b; no compute - submission is authorized by this ledger. + 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 @@ -170,7 +171,7 @@ tasks: status: blocked priority: normal path: tasks/gaussian_x3_search_wave1.md - updated: '2026-10-08' - next: Pilot partial (223 of 520 runs); run the deferred cells on RAL partition ral after A2, then freeze - gaussian_x3@2. + updated: '2026-10-14' + 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 diff --git a/tasks/gaussian_x3_search_wave1.md b/tasks/gaussian_x3_search_wave1.md index b5b9d5a..c78e9c3 100644 --- a/tasks/gaussian_x3_search_wave1.md +++ b/tasks/gaussian_x3_search_wave1.md @@ -69,5 +69,12 @@ pilot ran on PyAutoFit main `0dbf258c4f5e`, before phase A2 (PyAutoFit#1679, gra under JAX); BFGS/LBFGS non-finite results are expected to change once A2 merges and are not a judgement on those searches. The JAX blend reference is pending (2 of 3 Nautilus runs), so JAX blend rows are `not_assessed`. The calibration record keeps `@1` (17 -calibration rows < 20); the `gaussian_x3@2` freeze is deferred and still precedes any -wave-2 row. +calibration rows < 20). + +**Freeze gate (2026-10-14, autofit_inference protocol §7).** `gaussian_x3@2` is frozen +from that existing 17-row calibration before any scored run. The pilot is not +restarted: its 297 deferred runs move to the scored wave 2 and are never calibration +input. Scored wave 2 still waits for a PyAutoFit revision frozen after phases A2 and +A4. Seventeen rows suffice because the pre-declared < 20 rule already keeps the +σ-ratio band and ppc tolerance at `@1`, and the 3 missing rows cannot be recovered from +the pilot output on disk without new compute. From 418d6b553f4fc1143e85b2e42b21ba40d00baf50 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Wed, 14 Oct 2026 09:37:07 +0100 Subject: [PATCH 2/4] board: show a warm-start record's combined total and name the provider share autofit_inference exports warm_start, provider_wall_s and consumer_total_s as additive inference-summary@1 fields, with total_s the producer's combined attempt cost. The board (markdown and HTML) shows that total and appends the provider's share; the reader still sums no clocks. REFERENCE.md documents the additive fields. Refs PyAutoLabs/autofit_inference#6 (astra review 06 finding 4). Co-Authored-By: Claude Fable 5.1 --- REFERENCE.md | 5 +++++ insight/board.py | 17 +++++++++++++++-- tests/test_board.py | 16 ++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/REFERENCE.md b/REFERENCE.md index 9ac608b..73e81e6 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -44,6 +44,11 @@ setup nor sums stages. Diagnostics carry `status` and `values`. Samples carry availability and access limitations; safe output paths are hints, not verified public archive links. Large samples remain in project storage. +Warm starts (additive, v1 and v2): a record may carry `warm_start` (provider +provenance), `provider_wall_s` and `consumer_total_s`. Its `total_s` is then the +producer's combined attempt cost, with a `total_s` definition saying so; the board +shows that total and names the provider's share. The reader still sums nothing. + Comparisons declare id, records and protocol. The reader refuses changed scientific target/dataset/model/pipeline/stage/seed identities and incompatible clock definitions. Unknown controls are not proof of parity. It displays refusals without ratios or diff --git a/insight/board.py b/insight/board.py index 07b6685..3d91588 100644 --- a/insight/board.py +++ b/insight/board.py @@ -104,6 +104,19 @@ def md(v): return e(v).replace("|", "\\|").replace("\n", " ") +def total_value(r): + """The record's ``total_s`` as the producer stated it. When the producer declares a + warm-start provider (additive ``warm_start`` / ``provider_wall_s`` fields) the total + is its combined attempt cost and the provider's share is named; the reader never + sums clocks itself.""" + total = r["timings"]["total_s"] + provider = r.get("provider_wall_s") + if total is None or type(provider) not in (int, float): + return total + name = (r.get("warm_start") or {}).get("provider") or "unnamed" + return f"{total} (incl. {name} warm-start provider {provider})" + + def _dump(v): return json.dumps(v, sort_keys=True, ensure_ascii=False) @@ -174,7 +187,7 @@ def _detail(s, now=None): e(r["execution"]["status"]), e(r["scientific"]["convergence"]) + " / " + e(r["scientific"]["acceptance"]), e(r["timings"]["sampling_s"]), - e(r["timings"]["total_s"]), + e(total_value(r)), e(r["diagnostics"]["status"]), e(r["samples"]["availability"]), paths, @@ -359,7 +372,7 @@ def render_markdown(views, now=None, campaign_data=None): r["scientific"]["convergence"], r["scientific"]["acceptance"], r["timings"]["sampling_s"], - r["timings"]["total_s"], + total_value(r), r["archived"], ] out.append( diff --git a/tests/test_board.py b/tests/test_board.py index cc4f0df..66cd430 100644 --- a/tests/test_board.py +++ b/tests/test_board.py @@ -98,3 +98,19 @@ def test_capture_freshness_is_conservative(registry_file, fake_mind): s.outcome = "ok" s.refreshed_at = None assert "Last updated unavailable" in board.render_html([s]) + + +def test_warm_start_total_shows_combined_cost_and_names_the_provider(registry_file, fake_mind): + """autofit_inference#6 (review 06 finding 4): a warm-start record's total is the + producer's combined attempt cost, and the board says the provider is included.""" + s = view(registry_file, fake_mind) + r = s.doc["records"][0] + r["timings"]["total_s"] = 1150.1580484 + r["warm_start"] = {"provider": "nautilus", "provider_settings": "n_live_100"} + r["provider_wall_s"] = 1076.469658 + r["consumer_total_s"] = 73.6883904 + md = board.render_markdown([s], now="2026-10-04T00:00:00Z") + html = board.render_html([s], now="2026-10-04T00:00:00Z") + for text in (md, html): + assert "1150.1580484 (incl. nautilus warm-start provider 1076.469658)" in text + assert "73.6883904 |" not in md From f5f69abacdabe2032a66ba51291a8bafc80524d9 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Wed, 14 Oct 2026 09:38:09 +0100 Subject: [PATCH 3/4] tests: B3 acceptance check on the fit capture (producer revision + 223 pilot records) Schema validity alone passed on the zero-record B2 capture. The new check requires the committed fit receipt and snapshot to agree on the producer commit, never be the pre-pilot B2 capture, and hold exactly 223 pilot-flagged records; for the known B3/B3c producer revisions the 35/110/78 acceptance counts are pinned. Fails on the B2 capture (8eaea76), passes on the current one. Refs PyAutoLabs/autofit_inference#6 (astra review 06 finding 6). Co-Authored-By: Claude Fable 5.1 --- tests/test_fit_acceptance.py | 59 ++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 tests/test_fit_acceptance.py diff --git a/tests/test_fit_acceptance.py b/tests/test_fit_acceptance.py new file mode 100644 index 0000000..6a4ef51 --- /dev/null +++ b/tests/test_fit_acceptance.py @@ -0,0 +1,59 @@ +"""B3 acceptance on the committed ``fit`` capture (autofit_inference#6, review 06 +finding 6): schema validity alone passed on a zero-record B2 capture, so the pilot's +presence is checked explicitly. + +The wave-1 pilot is 223 rows, every one flagged ``pilot``; later waves add non-pilot +rows but never remove pilot ones. For the producer revisions whose content is known +(below) the exact acceptance counts are pinned too. +""" + +import json +from collections import Counter +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +PILOT_RECORDS = 223 +#: The B3 pilot (autofit_inference 900648b) carries producer revision 0c87bf1; the B3c +#: post-merge fixes (autofit_inference#6) re-export the same rows at 162644e. +KNOWN_REVISIONS = { + "0c87bf1add74ebec24c0dda6cd6684d1c8005f95": { + "accepted": 35, + "rejected": 110, + "not_assessed": 78, + }, + "162644e5c41a507e68914cd34e6fcc42d2c5ed03": { + "accepted": 35, + "rejected": 110, + "not_assessed": 78, + }, +} +#: The first producer commit whose capture holds the pilot. +FIRST_PILOT_COMMIT = "900648b5c66514167dd79a4859aed400fcc9551e" +#: Producer commits known to predate the pilot (the B2 capture had zero records). +PRE_PILOT_COMMITS = {"ec35be493712"} + + +def _load(kind): + return json.loads((ROOT / kind / "fit.json").read_text()) + + +def test_fit_capture_holds_the_wave1_pilot(): + snap, receipt = _load("snapshots"), _load("receipts") + doc = snap["summary"] + assert receipt["outcome"] == "ok" + assert receipt["resolved_commit"] == snap["commit"] + assert not any(snap["commit"].startswith(c) for c in PRE_PILOT_COMMITS) + assert receipt["record_count"] == len(doc["records"]) + pilot = [r for r in doc["records"] if r["configuration"].get("pilot") is True] + assert len(pilot) == PILOT_RECORDS, "the fit capture lost or never had the B3 pilot" + assert doc["coverage"]["observed"]["records"] >= PILOT_RECORDS + + +def test_fit_capture_counts_match_the_known_producer_revision(): + doc = _load("snapshots")["summary"] + expected = KNOWN_REVISIONS.get(doc["producer_revision"]) + if expected is None: + # A later producer revision: only the pilot-presence invariant above applies. + return + got = Counter(r["scientific"]["acceptance"] for r in doc["records"]) + assert dict(got) == expected From 04c802668bc31a408cd217802afd00eb2108fe03 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Wed, 14 Oct 2026 09:38:09 +0100 Subject: [PATCH 4/4] insight: refresh fit receipt and re-render the dashboard fetch --instance fit resolves autofit_inference main at 900648b5c665 (223 records, unchanged snapshot); board --offline re-renders the dashboard for the campaign freeze-rule and warm-start display changes. Co-Authored-By: Claude Fable 5.1 --- dashboard.html | 2 +- dashboard.md | 8 ++++---- receipts/fit.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dashboard.html b/dashboard.html index 7170e9b..63ca5a1 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
Last updated 2026-10-13 11:15:07 UTC
↻ Update

-

Active campaigns

CampaignRecent progressNext steps
HST SLaM base backend parityProject and Cortex ledgers retain the 24 September rerun submissions; published rows require coverage reconciliation.Reconcile all seeds and stages with current project rows and Cortex before proposing another run.
HST SLaM Delaunay variantDelaunay is a separate target/recipe; pre-speedup runs are archived, reruns recorded on 24 September.Retrieve or account for every rerun, failed seed and missing stage; preserve the archived comparison context.
Point-source sampler admission2 October project record reports five Nautilus seeds; no gradient-sampler admission measurement.Assess a bounded gradient-sampler admission proposal with the human; no new job is authorized.
Graphical and EP inference coordinationMind campaign map and two scoping contracts preserved verbatim; implementation work remains in Mind.Reconcile current Cortex observations and shipped fixes, then select one bounded phase.
Analytic Gaussian ensemble and control calibrationCortex records accepted wave-1 baseline and 30 September independent-review caveats.Use Cortex planned diagnostic on passing, edge and worst seeds; retain the human conclusion there.
N=50 NUTS versus three EP repeatsCortex 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 scaleCortex 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 ladderCortex 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)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.Run the 297 deferred wave-1 runs (and the JAX blend reference seed 1) on RAL partition ral on a PyAutoFit revision after A2, then freeze gaussian_x3@2 before any wave-2 row.

Active tasks

TaskCampaignStatusPriorityNext steps
Drop the 1e-3 prior centring for shear / multipole / ell_comps in the benchmarkslam-hst-baseblockednormalVerify the release containing Galaxy#634 and Lens#754 before changing priors; retain zero-centre gradient witness.
EP campaign — phase map for the 2026 Q3 graphical/EP pushgraphical-epneeds-decisionhighReconcile current Cortex records and human gates; this campaign map is never issued or bulk scheduled.
Expectation Propagation Scale-Up — Scopinggraphical-epneeds-slicinghighReconcile completed wrapper work and Pulse profiling ownership before selecting a bounded remaining inference phase.
Graphical Model Scale-Up — Scopinggraphical-epneeds-slicinghighReconcile current Cortex scale results and library dependencies; select one bounded inference phase with a witness.
NUTS/HMC trial on validated likelihoodspoint-source-admissionneeds-decisionnormalAn 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)gaussian-x3-search-benchmarkblockednormalPilot partial (223 of 520 runs); run the deferred cells on RAL partition ral after A2, then freeze gaussian_x3@2.

Ledger

Inference Results

PyAutoFit

Integrity: ok · Freshness: freshness policy unspecified · evidence 2026-10-08T18:53:07Z · Scientific qualification: 35/223 accepted by producer; remaining assessments shown below

Project dashboard · Ingest receipt

Current results

TargetStageSamplerConfigurationSeedExecutionConvergence / acceptanceSampler clock (s)Fit call (s)DiagnosticsSamplesEvidence
gaussian_x3_blend/data_seed1/seed0single searchbfgslocal_jax_cpu_fp640failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed13.60236716270446813.88767320000261availableunknownresult
gaussian_x3_blend/data_seed1/seed1single searchbfgslocal_jax_cpu_fp641failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed14.8931858539581315.443632700000308availableunknownresult
gaussian_x3_blend/data_seed1/seed2single searchbfgslocal_jax_cpu_fp642failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed12.52607297897338913.512804099998903availableunknownresult
gaussian_x3_blend/data_seed1/seed3single searchbfgslocal_jax_cpu_fp643completenot_assessed / not_assessed14.95915532112121649.19529500000135availableunknownresult
gaussian_x3_blend/data_seed1/seed4single searchbfgslocal_jax_cpu_fp644failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed13.58659744262695314.05181679999805availableunknownresult
gaussian_x3_blend/data_seed1/seed5single searchbfgslocal_jax_cpu_fp645failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed17.4019801616668718.110931600000185availableunknownresult
gaussian_x3_blend/data_seed1/seed6single searchbfgslocal_jax_cpu_fp646failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed14.23751783370971714.935181099997862availableunknownresult
gaussian_x3_blend/data_seed1/seed7single searchbfgslocal_jax_cpu_fp647failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed14.59865355491638215.270657600001869availableunknownresult
gaussian_x3_blend/data_seed1/seed8single searchbfgslocal_jax_cpu_fp648completenot_assessed / not_assessed10.69766545295715340.309002100002544availableunknownresult
gaussian_x3_blend/data_seed1/seed9single searchbfgslocal_jax_cpu_fp649failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed11.59244132041931212.118992199997592availableunknownresult
gaussian_x3_blend/data_seed1/seed0single searchbfgslocal_numpy_fp640failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected7.0074257850646977.736843099999533availableunknownresult
gaussian_x3_blend/data_seed1/seed1single searchbfgslocal_numpy_fp641failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected7.5578756332397468.733155400001124availableunknownresult
gaussian_x3_blend/data_seed1/seed2single searchbfgslocal_numpy_fp642failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected7.5922012329101569.3094577999982availableunknownresult
gaussian_x3_blend/data_seed1/seed3single searchbfgslocal_numpy_fp643failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected8.89510560035705610.495542200002092availableunknownresult
gaussian_x3_blend/data_seed1/seed4single searchbfgslocal_numpy_fp644failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected7.0470001697540287.982328100002633availableunknownresult
gaussian_x3_blend/data_seed1/seed5single searchbfgslocal_numpy_fp645failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected6.6906182765960698.159760599999572availableunknownresult
gaussian_x3_blend/data_seed1/seed6single searchbfgslocal_numpy_fp646failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected8.791458606719979.973385900000721availableunknownresult
gaussian_x3_blend/data_seed1/seed7single searchbfgslocal_numpy_fp647failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected6.41832447052001957.853619100002106availableunknownresult
gaussian_x3_blend/data_seed1/seed8single searchbfgslocal_numpy_fp648failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected8.5289349555969249.719483400000172availableunknownresult
gaussian_x3_blend/data_seed1/seed9single searchbfgslocal_numpy_fp649failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected8.3923377990722669.515777500000695availableunknownresult
gaussian_x3_blend/data_seed1/seed0single searchblackjax_nutslocal_jax_cpu_fp640failed: TracerBoolConversionError: Attempted boolean conversion of traced array with shape bool[]. +

Active campaigns

CampaignRecent progressNext steps
HST SLaM base backend parityProject and Cortex ledgers retain the 24 September rerun submissions; published rows require coverage reconciliation.Reconcile all seeds and stages with current project rows and Cortex before proposing another run.
HST SLaM Delaunay variantDelaunay is a separate target/recipe; pre-speedup runs are archived, reruns recorded on 24 September.Retrieve or account for every rerun, failed seed and missing stage; preserve the archived comparison context.
Point-source sampler admission2 October project record reports five Nautilus seeds; no gradient-sampler admission measurement.Assess a bounded gradient-sampler admission proposal with the human; no new job is authorized.
Graphical and EP inference coordinationMind campaign map and two scoping contracts preserved verbatim; implementation work remains in Mind.Reconcile current Cortex observations and shipped fixes, then select one bounded phase.
Analytic Gaussian ensemble and control calibrationCortex records accepted wave-1 baseline and 30 September independent-review caveats.Use Cortex planned diagnostic on passing, edge and worst seeds; retain the human conclusion there.
N=50 NUTS versus three EP repeatsCortex 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 scaleCortex 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 ladderCortex 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)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.

Active tasks

TaskCampaignStatusPriorityNext steps
Drop the 1e-3 prior centring for shear / multipole / ell_comps in the benchmarkslam-hst-baseblockednormalVerify the release containing Galaxy#634 and Lens#754 before changing priors; retain zero-centre gradient witness.
EP campaign — phase map for the 2026 Q3 graphical/EP pushgraphical-epneeds-decisionhighReconcile current Cortex records and human gates; this campaign map is never issued or bulk scheduled.
Expectation Propagation Scale-Up — Scopinggraphical-epneeds-slicinghighReconcile completed wrapper work and Pulse profiling ownership before selecting a bounded remaining inference phase.
Graphical Model Scale-Up — Scopinggraphical-epneeds-slicinghighReconcile current Cortex scale results and library dependencies; select one bounded inference phase with a witness.
NUTS/HMC trial on validated likelihoodspoint-source-admissionneeds-decisionnormalAn 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)gaussian-x3-search-benchmarkblockednormalPilot 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).

Ledger

Inference Results

PyAutoFit

Integrity: ok · Freshness: freshness policy unspecified · evidence 2026-10-08T18:53:07Z · Scientific qualification: 35/223 accepted by producer; remaining assessments shown below

Project dashboard · Ingest receipt

Current results

TargetStageSamplerConfigurationSeedExecutionConvergence / acceptanceSampler clock (s)Fit call (s)DiagnosticsSamplesEvidence
gaussian_x3_blend/data_seed1/seed0single searchbfgslocal_jax_cpu_fp640failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed13.60236716270446813.88767320000261availableunknownresult
gaussian_x3_blend/data_seed1/seed1single searchbfgslocal_jax_cpu_fp641failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed14.8931858539581315.443632700000308availableunknownresult
gaussian_x3_blend/data_seed1/seed2single searchbfgslocal_jax_cpu_fp642failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed12.52607297897338913.512804099998903availableunknownresult
gaussian_x3_blend/data_seed1/seed3single searchbfgslocal_jax_cpu_fp643completenot_assessed / not_assessed14.95915532112121649.19529500000135availableunknownresult
gaussian_x3_blend/data_seed1/seed4single searchbfgslocal_jax_cpu_fp644failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed13.58659744262695314.05181679999805availableunknownresult
gaussian_x3_blend/data_seed1/seed5single searchbfgslocal_jax_cpu_fp645failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed17.4019801616668718.110931600000185availableunknownresult
gaussian_x3_blend/data_seed1/seed6single searchbfgslocal_jax_cpu_fp646failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed14.23751783370971714.935181099997862availableunknownresult
gaussian_x3_blend/data_seed1/seed7single searchbfgslocal_jax_cpu_fp647failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed14.59865355491638215.270657600001869availableunknownresult
gaussian_x3_blend/data_seed1/seed8single searchbfgslocal_jax_cpu_fp648completenot_assessed / not_assessed10.69766545295715340.309002100002544availableunknownresult
gaussian_x3_blend/data_seed1/seed9single searchbfgslocal_jax_cpu_fp649failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / not_assessed11.59244132041931212.118992199997592availableunknownresult
gaussian_x3_blend/data_seed1/seed0single searchbfgslocal_numpy_fp640failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected7.0074257850646977.736843099999533availableunknownresult
gaussian_x3_blend/data_seed1/seed1single searchbfgslocal_numpy_fp641failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected7.5578756332397468.733155400001124availableunknownresult
gaussian_x3_blend/data_seed1/seed2single searchbfgslocal_numpy_fp642failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected7.5922012329101569.3094577999982availableunknownresult
gaussian_x3_blend/data_seed1/seed3single searchbfgslocal_numpy_fp643failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected8.89510560035705610.495542200002092availableunknownresult
gaussian_x3_blend/data_seed1/seed4single searchbfgslocal_numpy_fp644failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected7.0470001697540287.982328100002633availableunknownresult
gaussian_x3_blend/data_seed1/seed5single searchbfgslocal_numpy_fp645failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected6.6906182765960698.159760599999572availableunknownresult
gaussian_x3_blend/data_seed1/seed6single searchbfgslocal_numpy_fp646failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected8.791458606719979.973385900000721availableunknownresult
gaussian_x3_blend/data_seed1/seed7single searchbfgslocal_numpy_fp647failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected6.41832447052001957.853619100002106availableunknownresult
gaussian_x3_blend/data_seed1/seed8single searchbfgslocal_numpy_fp648failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected8.5289349555969249.719483400000172availableunknownresult
gaussian_x3_blend/data_seed1/seed9single searchbfgslocal_numpy_fp649failed: non-finite result (max_log_likelihood=inf, max_log_posterior=inf)not_assessed / rejected8.3923377990722669.515777500000695availableunknownresult
gaussian_x3_blend/data_seed1/seed0single searchblackjax_nutslocal_jax_cpu_fp640failed: 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.TracerBoolConversionErrornot_converged / not_assessedunknown42.179321799998434availableunknownresult
gaussian_x3_blend/data_seed1/seed1single searchblackjax_nutslocal_jax_cpu_fp641failed: 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 adc8d22..3c54f29 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. | Run the 297 deferred wave-1 runs (and the JAX blend reference seed 1) on RAL partition ral on a PyAutoFit revision after A2, then freeze gaussian_x3@2 before any wave-2 row. | +| [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. | ## Active tasks @@ -57,7 +57,7 @@ After taking action, report what changed, what the evidence supports and what re | [Expectation Propagation Scale-Up — Scoping](https://github.com/PyAutoLabs/PyAutoInsight/blob/main/tasks/ep_scoping.md) | graphical-ep | needs-slicing | high | Reconcile completed wrapper work and Pulse profiling ownership before selecting a bounded remaining inference phase. | | [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 partial (223 of 520 runs); run the deferred cells on RAL partition ral after A2, then freeze gaussian_x3@2. | +| [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). | [Ledger](https://github.com/PyAutoLabs/PyAutoInsight/blob/main/campaigns.yaml) diff --git a/receipts/fit.json b/receipts/fit.json index a246b5f..c1ba485 100644 --- a/receipts/fit.json +++ b/receipts/fit.json @@ -13,5 +13,5 @@ "record_count": 223, "errors": [], "cached_from": null, - "refreshed_at": "2026-10-13T11:15:07Z" + "refreshed_at": "2026-10-14T08:37:47Z" }