You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Nautilus factor searches that converge in their first call still trigger an intermediate result update and a second no-op sampler call. Remove this overhead, following the completed Dynesty EP optimisation in #1642.
Plan
Recognize convergence immediately while preserving finite-budget updates.
Cover convergence, chunked execution and likelihood limits with regression tests.
Compare sampler/update calls, seeded results and timing, then run the full PyAutoFit suite serially.
Detailed implementation plan
Repository: PyAutoFit; clean main, no competing claim. Existing hook-maintenance branch does not overlap.
Branch: feature/ep-nautilus-single-pass.
Inspect the installed Nautilus run completion contract and likelihood counter before selecting the completion condition.
Update autofit/non_linear/search/nest/nautilus/search.py (Nautilus.call_search, and budget handling if required). Do not infer likelihood budget exhaustion from posterior sample counts.
Extend test_autofit/non_linear/search/nest/test_nautilus.py with converged and finite-cadence cases, global limits and a seeded real-search comparison. No public API change intended.
Validate targeted tests and full serial test_autofit; measure overhead without changing sampler settings or EP mathematics.
Original user request
We have begun a task speeding up the PyAutoFit source code to make EP run faster without PyautoFit overheads, continue this task
The human approved this bounded follow-up after explanation: “ok, do it.”
Existing prompt
PyAutoMind/draft/bug/autofit/nautilus_converged_run_double_pass.md records the redundant completion pass and the requirement to preserve finite-cadence sampling.
Implementation is complete in feature/ep-nautilus-single-pass (base 69bb11d54, source edits not yet committed). Nautilus uses its own convergence return, advances cumulative budgets using n_like, and stops at a global cap even if a batch overshoots it.
Validation:
Full serial PyAutoFit suite: 2934 passed, 2 skipped (300.23 s).
Nautilus tests: 16 passed; all 8 new regression cases fail against the original methods.
Real fits with seeds 13 and 14: 2 → 1 sampler calls, 1 → 0 intermediate updates, posterior parameters/likelihoods/weights bit-identical.
Instrumented intermediate update removed: 68–75 ms/search. Total timing is noisy; no end-to-end percentage speedup claimed.
Autofit workspace smoke: 8/8 scripts, 2/2 notebooks passed in isolated disposable checkouts. Wider smoke stopped during environment preparation after the shipping gate below.
These refer to canonical checkouts; the task branch is based on current PyAutoFit origin/main. Awaiting a human development-only override or cleared Heart before commit/push/PR. No merge or release requested. Detailed local evidence paths and resume instructions are in the Mind prompt's handoff.
The live human authorized the named #1651 development override and same-turn merge: "yeah, and then do a $prm".
Exact Heart RED reasons previously surfaced:
PyAutoFit: 1 commit(s) behind origin
PyAutoLens: 1 commit(s) behind origin
Passed branch gates: 2934 tests passed / 2 skipped serially; 16 Nautilus tests passed; 8 autofit workspace scripts + 2 notebooks passed; seeded posterior samples/likelihoods/weights bit-identical. The broader downstream smoke run has resumed. No release or CI/protection bypass is authorized; merge remains conditional on every required CI run and matrix leg passing.
All eight configured workspace groups passed against this task's PyAutoFit source, using pyauto-heart smoke and isolated disposable workspace checkouts.
Workspace
Scripts passed
Notebooks passed
Failed
autofit
8
2
0
autogalaxy
14
2
0
autolens
41
2
0
autolens_test
32
0
0
euclid
9
0
0
howtolens
50
0
0
autocti
3
0
0
autocti_test
3
0
0
Total
160
6
0
CTI environments used the documented no-root GSL extraction into task scratch; no system packages changed. Full log: .worktrees/ep-nautilus-single-pass/smoke-resume.log; workspace JSON reports: .smoke-root/*/test-results/ within that task.
Source validation remains 2934 tests passed / 2 skipped; all 8 new regression cases fail against the original methods. The human's named Heart RED development override and same-turn /prm authorization remain recorded above; no release is authorized.
Shipped. Merged in #1652 (merge 5cf687d, 2026-09-30): a converged single-chunk Nautilus fit no longer runs a second no-op run() pass with a during_analysis update. Pending the next PyAutoFit release.
Activity
Jammy2211 commentedon Sep 29, 2026
Implementation is complete in
feature/ep-nautilus-single-pass(base69bb11d54, source edits not yet committed). Nautilus uses its own convergence return, advances cumulative budgets usingn_like, and stops at a global cap even if a batch overshoots it.Validation:
Fresh Heart tick (2026-09-29T19:22:53Z) is RED:
These refer to canonical checkouts; the task branch is based on current PyAutoFit origin/main. Awaiting a human development-only override or cleared Heart before commit/push/PR. No merge or release requested. Detailed local evidence paths and resume instructions are in the Mind prompt's handoff.
Jammy2211 commentedon Sep 29, 2026
The live human authorized the named #1651 development override and same-turn merge: "yeah, and then do a $prm".
Exact Heart RED reasons previously surfaced:
PyAutoFit: 1 commit(s) behind originPyAutoLens: 1 commit(s) behind originPassed branch gates: 2934 tests passed / 2 skipped serially; 16 Nautilus tests passed; 8 autofit workspace scripts + 2 notebooks passed; seeded posterior samples/likelihoods/weights bit-identical. The broader downstream smoke run has resumed. No release or CI/protection bypass is authorized; merge remains conditional on every required CI run and matrix leg passing.
Jammy2211 commentedon Sep 29, 2026
Downstream smoke validation
All eight configured workspace groups passed against this task's PyAutoFit source, using
pyauto-heart smokeand isolated disposable workspace checkouts.CTI environments used the documented no-root GSL extraction into task scratch; no system packages changed. Full log:
.worktrees/ep-nautilus-single-pass/smoke-resume.log; workspace JSON reports:.smoke-root/*/test-results/within that task.Source validation remains 2934 tests passed / 2 skipped; all 8 new regression cases fail against the original methods. The human's named Heart RED development override and same-turn
/prmauthorization remain recorded above; no release is authorized.Jammy2211 commentedon Sep 30, 2026
Shipped. Merged in #1652 (merge 5cf687d, 2026-09-30): a converged single-chunk Nautilus fit no longer runs a second no-op
run()pass with a during_analysis update. Pending the next PyAutoFit release.