PyAutoLens v2026.6.25.641
What's New
Breaking Changes
- feat: datacube shared-state for AnalysisInterferometer via curvature preloads (#566)
- Honour PYAUTO_TEST_MODE in LOSSampler to fix los_halos simulator timeouts (#559)
autolens.lens.los.negative_kappa_fromgains two optional keyword arguments,quad_limit=50andquad_epsrel=1.49e-8(both scipy's ownquaddefaults), threaded into its inner and outer integrals. Existing callers are unaffected.LOSSampler.galaxies_fromnow readsautoconf.test_mode.is_test_mode()internally; its signature is unchanged. No removals or renames. See full details below.
New Features
- docs: add signpost llms.txt + consolidate agent instructions into AGENTS.md (#570)
- test: regression guard for HowToLens tutorial_3 NaN axis-limits crash (#560)
Bug Fixes
- fix(jax): defensive pytree dedup in imaging/interferometer analyses (#561)
Internal
- main.yml → thin caller to Pulse reusable lib-tests (Stage 4 Phase A) (#572)
- Remove url_check.yml: URL hygiene centralised in PyAutoPulse (#571)
- docs: consolidate agent instructions into canonical AGENTS.md (#569)
- refactor(latent): LatentLens class + declare Analysis.Latent (Phase 2) (#568)
- Feature/positions threshold (#507)
Upstream Changes
PyAutoFit
- main.yml → thin caller to Pulse reusable lib-tests (Stage 4 Phase A) (#1322)
- Remove url_check.yml: URL hygiene centralised in PyAutoPulse (#1321)
- docs: add signpost llms.txt + consolidate agent instructions into AGENTS.md (#1320)
- docs: consolidate agent instructions into canonical AGENTS.md (#1319)
- refactor(latent): migrate af.ex.Analysis + cookbook docs to the Latent class (#1318)
- fix: skip latent computation without keys (#1317)
- refactor(latent): first-class Latent class + engine extraction (Phase 1) (#1315)
- fix: expand bypass-mode fake samples (#1314)
- test: skip NSS tests without optional dependency (#1312)
- fix(latent): degenerate latent edge cases (quantile n=1, latent exceptions, anti-correlated NaNs) (#1311)
- fix(latent): global masking in compute_latent_samples to prevent KeyError on per-batch NaN drops (#1310)
- feat: cross-Analysis shared per-evaluation state in FactorGraphModel (#1308)
- chore(deps): allow anesthetic>=2.9.0 to unblock jax>=0.7 / numpy>=2 resolution (#1306)
- fix(nss): chunked algo.init follow-up to #1303 (#1305)
- feat(nss): chunk_size kwarg for inversion-heavy A100 likelihoods (#1303)
- fix(jax): structural defense against cached_property pytree/dict leaks (#1302)
PyAutoArray
- main.yml → thin caller to Pulse reusable lib-tests (Stage 4 Phase A) (#349)
- Remove url_check.yml: URL hygiene centralised in PyAutoPulse (#348)
- docs: add signpost llms.txt + consolidate agent instructions into AGENTS.md (#347)
- docs: consolidate agent instructions into canonical AGENTS.md (#346)
- feat: Preloads API for reusing channel-invariant inversion quantities (#344)
- fix(jax): exclude cached_property descriptors from pytree flatten paths (#343)
PyAutoGalaxy
- main.yml → thin caller to Pulse reusable lib-tests (Stage 4 Phase A) (#476)
- Remove url_check.yml: URL hygiene centralised in PyAutoPulse (#475)
- docs: add signpost llms.txt + consolidate agent instructions into AGENTS.md (#474)
- docs: consolidate agent instructions into canonical AGENTS.md (#473)
- refactor(latent): LatentGalaxy class + declare Analysis.Latent (Phase 2) (#472)
- Lensing potential for elliptical/spherical dark-matter profiles (NFW/gNFW) + NFWSph fix (#470)
- fix(jax): defensive pytree dedup in imaging/interferometer analyses (#468)
- fix(mass): convergence_func on PowerLawBroken, PowerLawMultipole, cNFW family (#467)
Full changelog: 2026.5.29.4...2026.6.25.641