diff --git a/active.md b/active.md index 054ea9c3..ab06b16d 100644 --- a/active.md +++ b/active.md @@ -1,21 +1,5 @@ # Active Tasks -## jax-default-dependency -- issue: https://github.com/PyAutoLabs/PyAutoLens/issues/702 -- status: shipped-awaiting-release-followups — ALL ELEVEN PRs merged 2026-08-19 (human-authorized): - six library (PyAutoHeart#150, PyAutoNerves#150, PyAutoFit#1503, PyAutoArray#450, PyAutoGalaxy#574, - PyAutoLens#703) + five workspace (autolens_workspace#486, autogalaxy_workspace#212, - autofit_workspace#139, HowToLens#71, HowToGalaxy#67; pending-release hold waived by human — prose-only, - few-hour docs-ahead window until the nightly). Worktree removed, claims released, branches deleted. -- nojax CI leg caught two real bugs day one: unmarked jax-requiring autolens test (94d8f54ba); - NumPy-scalar misrouting in autofit Beta/Gamma/Normal message dispatch (19c679583). -- jax cap stays <0.11 (widen reverted 848a254; jax 0.11 bug prompt: - draft/bug/autofit/jax_011_message_log_partition_tuple_shape.md). -- NEXT (release-blocked; nightly 02:00 UTC): (1) bump intra-family floors `>=2026.7.29.2` → first - promoted version in all five pyprojects, then move this task to complete/; (2) later, make - unittest-nojax a required check once it has green history. -- prompt: active/jax_default_dependency.md - ## transformed-message-factor-gradient-unpack - issue: https://github.com/PyAutoLabs/PyAutoFit/issues/1501 (issued 2026-08-19) - prompt: active/16_transformed_message_factor_gradient_unpack.md diff --git a/active/jax_default_dependency.md b/complete/2026/08/jax-default-dependency.md similarity index 56% rename from active/jax_default_dependency.md rename to complete/2026/08/jax-default-dependency.md index 810960f2..8ecd3f98 100644 --- a/active/jax_default_dependency.md +++ b/complete/2026/08/jax-default-dependency.md @@ -1,3 +1,61 @@ +# jax-default-dependency + +**Completed 2026-08-22.** JAX became a default dependency across the family +(PyAutoLens#702): eleven PRs merged 2026-08-19 (six library — PyAutoHeart#150, +PyAutoNerves#150, PyAutoFit#1503, PyAutoArray#450, PyAutoGalaxy#574, +PyAutoLens#703 — plus five workspace: autolens_workspace#486, +autogalaxy_workspace#212, autofit_workspace#139, HowToLens#71, HowToGalaxy#67), +released as **2026.8.22.1** (nightly-release run 50, dispatched by hand after +the gates cleared), and closed out with the intra-family floor bumps +`>=2026.7.29.2` → `>=2026.8.22.1`: PyAutoFit#1509, PyAutoArray#466, +PyAutoGalaxy#582, PyAutoLens#708. PyAutoNerves needs no bump — its pyproject +carries no intra-family floor, so four PRs cover all five libraries' floors. + +## Why the release (and therefore this task) sat blocked for two days + +The promoting release was held up by two stacked regressions the task did not +cause, found and fixed while driving it out (2026-08-21/22 session): + +- **PyAutoArray#453's in-place numba Cholesky kernels rejected JAX inputs**: + the sparse-operator inversion path hands `fnnls_cholesky` JAX arrays even + under `PYAUTO_DISABLE_JAX=1`; indexing a JAX array yields another JAX array, + which numba maps to a *readonly* buffer, so kernel compilation died with + "Cannot modify readonly array" — HowToLens smoke red from 2026-08-20 22:30, + readiness RED, nightly blocked. Fixed by boundary coercion to numpy + (PyAutoArray#463) with a jnp-input regression test. The scipy solvers #453 + replaced tolerated JAX input by copying internally — an in-place rewrite of + a copy-tolerant seam must re-check every caller's array provenance. +- **The rectangular mesh split (PyAutoArray#462 et al.) merged library-side + without its downstream legs**, breaking the retired `RectangularAdapt*` + names in HowToLens, HowToGalaxy and autogalaxy_workspace_test (the Stage-3 + release gate). Legs landed as HowToLens#74, HowToGalaxy#71, + autolens_workspace#496, autogalaxy_workspace#222, autogalaxy_workspace_test#106. + +Release attempts: run 47 (scheduled) blocked on readiness RED; run 48 blocked +at Stage 3 (agwt old names; validation otherwise 672p/0f); run 49 passed +everything but blocked STALE — PyAutoGalaxy#581 merged mid-run, the staleness +gate correctly refusing to ship a set that no longer matched main; run 50 +(pins incl. #581) released 2026.8.22.1 and PyPI carries all five packages. + +## Keep / traps + +- The nojax CI leg caught two real bugs on day one: an unmarked + jax-requiring autolens test (94d8f54ba) and NumPy-scalar misrouting in + autofit Beta/Gamma/Normal message dispatch (19c679583). +- jax cap stays `<0.11` (widen reverted 848a254; jax 0.11 bug prompt: + draft/bug/autofit/jax_011_message_log_partition_tuple_shape.md). +- The staleness gate makes manual dispatches race active development: a + library merge landing between the driver's rehearsal SHA-pin (~15 min in) + and its readiness re-check (~80 min in) blocks the night. Dispatch when + merging has quiesced, or expect a re-run. + +## Remaining (deliberately not part of this record) + +- Make `unittest-nojax` a required check once it has green history (the + "later" half of the old NEXT list). + +## Original prompt + # Make JAX a default (non-optional) dependency across the library stack Type: maintenance diff --git a/complete/index.md b/complete/index.md index b6ea5922..a8a75a31 100644 --- a/complete/index.md +++ b/complete/index.md @@ -6,7 +6,7 @@ Token-light navigation over the finished-work records (schema: only then grep a dated bucket. Curators: edit the band between the CURATED markers; everything below GENERATED is rebuilt. -1071 records across 7 buckets. +1072 records across 7 buckets. ## Highlights @@ -93,6 +93,7 @@ _(curate hard-won records here — survives regeneration.)_ - [interferometer-delaunay-flaky-fitexception](2026/08/interferometer-delaunay-flaky-fitexception.md) - [interferometer-start-here-integrate-oom](2026/08/interferometer-start-here-integrate-oom.md) - [intra-family-dep-floors](2026/08/intra-family-dep-floors.md) +- [jax-default-dependency](2026/08/jax-default-dependency.md) - [jax-grad-smoke-timeout-budget](2026/08/jax-grad-smoke-timeout-budget.md) - [jax-likelihood-mass-sensitivity](2026/08/jax-likelihood-mass-sensitivity.md) — Audit + fix for median-literal mass blindness across all jax_likelihood/datacube scripts (phase 2 of the findi… - [knowledge-board](2026/08/knowledge-board.md) — auto-closed on merge diff --git a/dashboard.html b/dashboard.html index 219f4729..00f7e868 100644 --- a/dashboard.html +++ b/dashboard.html @@ -38,7 +38,7 @@

📋 PyAutoMind Dashboard

Every task the Mind is holding. Tap a task's 📋 and its /start_dev command is on your clipboard — paste it into a Claude Code chat to route Claude straight to that task.

-

In flight 3 · Parked 3 · Planned 6 · Backlog 144 · markdown version

+

In flight 2 · Parked 3 · Planned 6 · Backlog 144 · markdown version

Start here

Highest priority (filed as high) — showing 12 of 18

TRIAGE: needs manual review before routingmedium · safe · high

@@ -59,7 +59,6 @@

In flight Issued — each has an open GitHub issue and usually a branch.

@PyAutoFit TransformedMessage.factor_gradient crashes on first callissue #1501HOLD — do not start dev. Fix-or-delete hangs off the PyAutoFit#1498 logpdf-contract

Hands hygiene: expired announcement dead code, unregistered modulesissue #249library-dev

-

Make JAX a default (non-optional) dependency across the library stackissue #702shipped-awaiting-release-followups — ALL ELEVEN PRs merged 2026-08-19 (human-authorized):

Parked markdown version

3 task(s) diff --git a/dashboard.md b/dashboard.md index 9dbfdd5a..d1644d8e 100644 --- a/dashboard.md +++ b/dashboard.md @@ -8,7 +8,7 @@ Every task the Mind is holding, on one page: what is in flight, what is parked, | Where | Count | |-------|------:| -| [In flight](#in-flight) (`active/`) | 3 | +| [In flight](#in-flight) (`active/`) | 2 | | [Parked](#parked) (`parked.md`) | 3 | | [Planned](#planned) (`planned.md`) | 6 | | [Backlog](#backlog) (`draft/`) | 144 | @@ -137,14 +137,6 @@ Issued — each has an open GitHub issue and usually a branch. The full record f
-
📋 Make JAX a default (non-optional) dependency across the library stackissue #702 — shipped-awaiting-release-followups — ALL ELEVEN PRs merged 2026-08-19 (human-authorized): - -``` -/start_dev active/jax_default_dependency.md -``` - -
- ## Parked Started or scoped, not currently in flight — resume by moving the row back to `active.md`. Full detail in [`parked.md`](parked.md).