PyAutoFit v2026.7.19.1
What's New
Breaking Changes
- 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)
- feat: size-realistic test-mode bypass samples (PYAUTO_TEST_MODE_SAMPLES) (#1381)
- Added-only and default-off: new env var
PYAUTO_TEST_MODE_SAMPLES(default 4 — behaviour is byte-identical when unset) with the autoconf accessor re-exported asautofit.non_linear.test_mode.test_mode_samples. The private_build_fake_samplesgains a vectorized N > 4 branch; the N == 4 literal branch is untouched. No existing public symbol changed.
- Added-only and default-off: new env var
- fix: sqlite database slicing + direct-write samples_summary (aggregator Phase D) (#1380)
New Features
- docs: pin Fitness's NaN guard contract — value-only, never gradient (#1392)
- refactor: public AbstractPaths.preserve_in_zip for post-completion artifacts (#1389) (#1390)
Bug Fixes
- fix: mark test-mode bypassed fits complete so they are resumable (#1387) (#1388)
- fix: EP projection — transform samples to base space + use log weights (#1383)
Internal
- 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)
- 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)
Full changelog: 2026.7.15.1...2026.7.19.1