PyAutoLens v2026.7.19.1
π£ Major Milestones Announcement β PyAutoLens now ships an AI assistant (conversational + agentic), full JAX GPU support, and agentic-AI development via PyAutoScientist. Read the announcement β
What's New
Breaking Changes
- fix: Marquardt-scaled LM damping + zero-fill correction profiles (#626)
- Behaviour change (internal numerics): the LM damping in
al.pc.dense_util.solve_lm_step_fromis now Marquardt-scaled; identical solutions at convergence, different damping trajectories. No signatures changed.
- Behaviour change (internal numerics): the LM damping in
New Features
- feat: per-iteration evidence re-optimization for the interferometer LM engine (#628)
- feat: visibility-space iterative LM engine (interferometer phase 2a) (#625)
- feat: visibility-space potential corrections β sparse-operator route (interferometer phase 1) (#624)
- feat: xp-API dense kernels + iterative LM engine (potential correction phase 4) (#622)
- feat: potential_correction subpackage β gravitational imaging (phase 3) (#621)
- refactor: use paths.preserve_in_zip for the positions cache (#1389 phase 2) (#620)
- feat: cache solved multiple-image positions for SLaM resume fast-path (#619)
- feat: from_coolest(intermediate=True) β rebuild PEMDs as PowerLawIntermediate (#617)
- feat: COOLEST template import/export (autolens.interop.coolest) (#613)
Bug Fixes
- docs: fix stale autosummary entries breaking the docs build (#635)
- fix: interferometer LM objective double-counting + warm start (mid-tier certified) (#629)
- fix: COOLEST interop rejects relative file paths (#615)
Internal
- chore: rename PyAutoConf β PyAutoNerves in docs/prose (#637)
- refactor!: depend on and import
autonerves(renamed from autoconf) (#636) - refactor: re-export autoconf config surface from autolens (#634)
- Rename PyAutoBuild to PyAutoHands (#633)
- Add opt-in gauge_project_x0 to the imaging iterative warm start (#632)
- feat: x0 warm start for the imaging iterative engine (parity) (#630)
- Refactor: consolidate duplicated critical-curve plot helper; remove stale plan doc (#611)
Upstream Changes
PyAutoFit
- chore: rename PyAutoConf β PyAutoNerves in docs/prose (#1396)
- refactor!: depend on and import
autonerves(renamed from autoconf) (#1395) - refactor: re-export autoconf config surface from autofit (#1394)
- Rename PyAutoBuild to PyAutoHands (#1393)
- docs: pin Fitness's NaN guard contract β value-only, never gradient (#1392)
- refactor: public AbstractPaths.preserve_in_zip for post-completion artifacts (#1389) (#1390)
- fix: mark test-mode bypassed fits complete so they are resumable (#1387) (#1388)
- fix: AggregateFITS leaked one file handle per HDU per result (crash at ~500 results) (#1386)
- fix: from_dict dropped dict entries with falsy values (0.0 parameters vanish on load) (#1384)
- fix: EP projection β transform samples to base space + use log weights (#1383)
- feat: size-realistic test-mode bypass samples (PYAUTO_TEST_MODE_SAMPLES) (#1381)
- fix: sqlite database slicing + direct-write samples_summary (aggregator Phase D) (#1380)
- perf: aggregator result-loading speedups (single-scan listing, cached summaries, faster samples parse) (#1376)
- feat(search): add batch_size to the multi-start gradient searches (#1374)
PyAutoArray
- chore: rename PyAutoConf β PyAutoNerves in docs/prose (#395)
- refactor!: depend on and import
autonerves(renamed from autoconf) (#394) - refactor: re-export autoconf config surface from autoarray (#393)
- feat: opt-in gradient-safe log-det via Settings (default unchanged) (#392)
- feat: masked-grid derivative operators + mask regularizations (potential correction phase 1) (#390)
PyAutoGalaxy
- chore: rename PyAutoConf β PyAutoNerves in docs/prose (#513)
- refactor!: depend on and import
autonerves(renamed from autoconf) (#512) - refactor: re-export autoconf config surface from autogalaxy (#511)
- Rename PyAutoBuild to PyAutoHands (#510)
- feat: make Lenstool-native parameterization the default dPIE profile (#509)
- feat: zero-fill extrapolation for input pixelized mass profiles (#508)
- refactor: use paths.preserve_in_zip for the galaxy-image cache (#1389 phase 2) (#507)
- feat: input pixelized mass profiles (potential correction phase 2) (#505)
- feat: cache per-galaxy result images for SLaM resume fast-path (#502) (#504)
- feat: PowerLawIntermediate β intermediate-axis (COOLEST) Einstein radius power-law (#503)
- feat: COOLEST-standard profile parameter converters (autogalaxy.interop.coolest) (#501)
Full changelog: 2026.7.15.1...2026.7.19.1