From e228956ad0e3cc2f578c8029086ca87fb8638fe9 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 22 Aug 2026 02:24:59 +0000 Subject: [PATCH 1/2] =?UTF-8?q?prompt:=20complete=20jax-default-dependency?= =?UTF-8?q?=20=E2=80=94=20released=202026.8.22.1,=20floors=20bumped?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The task's final gate cleared: release 2026.8.22.1 promoted all five libraries (nightly run 50, dispatched by hand 2026-08-21 after the gates cleared) and the intra-family floors moved >=2026.7.29.2 -> >=2026.8.22.1 (PyAutoFit#1509, PyAutoArray#466, PyAutoGalaxy#582, PyAutoLens#708; PyAutoNerves carries no intra-family floor). The record keeps the two-day release-block story the issue threads do not: the PyAutoArray#453 numba-vs-JAX readonly-buffer regression (fixed #463), the mesh-split downstream legs (HowToLens#74, HowToGalaxy#71, alw#496, agw#222, agwt#106), and the staleness-gate race a manual dispatch runs against active merging (run 49 blocked STALE on PyAutoGalaxy#581 landing mid-run — the gate working, not failing). lifecycle.py check: OK; index --check: OK; dashboard regenerated. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015GsUfbCwPd4XC8kpsiUJp7 --- active.md | 16 - .../2026/08/jax-default-dependency.md | 58 +++ complete/index.md | 3 +- dashboard.html | 91 ++-- dashboard.md | 484 +++++++++--------- 5 files changed, 335 insertions(+), 317 deletions(-) rename active/jax_default_dependency.md => complete/2026/08/jax-default-dependency.md (56%) 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..cfdf3c49 100644 --- a/dashboard.html +++ b/dashboard.html @@ -38,28 +38,32 @@

📋 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

+

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

TRIAGE: needs manual review before routingmedium · safe · high

Numba CPU likelihood phase 1: batched MGE convolution + operated-matrixautoarray · medium · supervised · high

Rectangular mesh split: Bilinear (fast CPU default) vs RTU (advanced/GPU)autoarray · medium · supervised · high

+

Analytic Gaussian benchmark: closed-form validation of graphical + EPgraphical_ep · medium · supervised · high

+

Numba CPU likelihood phase 2: kernel-CDF numba fast path (theautoarray · large · supervised · high

multi_galaxy package: new regime package in autolens_workspaceautolens · large · supervised · high

+ + +

Magnification at a point: surface the existing API in source_scienceautolens · large · supervised · high

Profile and speed up JAX likelihood-function compile times (all useautolens_profiling · large · supervised · high

Give the Profiling Agent a compile-time axis — the arcprofiling · large · supervised · high

-

Deep research: Can we speed up Delaunay in PyAutoArray?autoarray · too-large · supervised · high

-

Census of priors and messages — confirmed bugs + redesignautofit · too-large · supervised · high

-

einstein_radius_jit_from: replace static init_guess with a JAX-native seed finderautogalaxy · too-large · supervised · high

-

Split lensing regimes: multi_galaxy / group / cluster (epic plan)autolens · too-large · supervised · high

-

Re-baseline the MGE imaging JIT profiling regression valueautolens_workspace_developer · too-large · supervised · high

Quick wins (small enough, and safe enough to run unattended)

(none right now)

In flight markdown version

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

-

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

+

Epics markdown version

+

Long-running multi-phase programmes — 📋 copies a prompt that works out where the epic stands from its ledger and continues it from the next logical point.

+

JAX profiling — inference programmeledger: autolens_profiling/results/notes/inference/PROGRAMME.md

+

Cluster strong lensing — Source & Cluster arcledger: draft/feature/autolens/source_cluster_arc.md

+

Expectation propagation (EP) campaignledger: draft/research/graphical_ep/ep_campaign.md

Parked markdown version

3 task(s) @@ -78,17 +82,23 @@

Planned

latent-nan-guard-honest-run

Backlog markdown version

-

144 filed prompts, not started — sorted most-pickable first (priority, then size). 23 of them belong to an epic and are listed only under Epics below.

+

144 filed prompts, not started — sorted most-pickable first (priority, then size).

-feature — 28 +feature — 36

Numba CPU likelihood phase 1: batched MGE convolution + operated-matrixautoarray · medium · supervised · high

Rectangular mesh split: Bilinear (fast CPU default) vs RTU (advanced/GPU)autoarray · medium · supervised · high

Numba CPU likelihood phase 2: kernel-CDF numba fast path (theautoarray · large · supervised · high

+ + +

Magnification at a point: surface the existing API in source_scienceautolens · large · supervised · high

Profile and speed up JAX likelihood-function compile times (all useautolens_profiling · large · supervised · high

Give the Profiling Agent a compile-time axis — the arcprofiling · large · supervised · high

+ +

Source & Cluster arc — magnification science, PointSolver trust, clusterautolens · too-large · supervised · high

Which other searches need prior-support handling — coverage audit afterautofit · medium · supervised · medium

Give PyAutoFit searches a seed — today no search canautofit · medium · supervised · medium

Can create a list of InversionMatrix objects for each datasetautoarray · medium · supervised · normal

+

Tune cluster-scale JOSS benchmarks toward their 5-minute targetsautolens_workspace · medium · supervised · normal

Token-light wiki index over the complete/ archivepyautomind · medium · supervised · normal

@@ -96,8 +106,10 @@

Backlog

Claude Development Prompt: Arcsecond Tick Label Decimal Placementautoarray · large · supervised · normal

EP analytic updates — implement the four planned work packagesautofit · large · supervised · normal

Remote-MCP deployment tiers (2 + 3) for the results-inspector serverautofit_assistant · large · human-required · normal

+

Magnification errors via posterior draws, standalone in source_scienceautolens · large · supervised · normal

Search settings-estimation + profiling infrastructure (n_starts / batch_size / n_batch)autolens_profiling · large · supervised · normal

Adopt oversampled PSFs in the start-here dataset chain (option a)autolens_workspace · large · supervised · normal

+

Cluster pixelized-source refinement: per-source masks via AnalysisFactorworkspaces · large · supervised · normal

Follow-up to rectangular_adapt_cdf.md (issue #322) and Path Aautoarray · too-large · supervised · normal

PIEMass.potential_2d_from: implement the missing lensing potentialautogalaxy · too-large · supervised · normal

autolens_jax_joss benchmark repo + real-data start_here pairingautolens_jax_joss · too-large · supervised · normal

@@ -111,7 +123,9 @@

Backlog

Teach repos_sync --write to stamp organ config surfacespyautomind · hard · supervised · low

-bug — 32 +bug — 34 +

EP hierarchical parent-scale collapse: cure the basin, or document theautofit · too-large · human-required · high

+

Fix release JAX runtime compatibility and likelihood parityhealth_fixes · too-large · supervised · high

Fix JIT quick-update visualization output regressionshealth_fixes · too-large · supervised · high

Fix release-profile numerical inversion failureshealth_fixes · too-large · supervised · high

@@ -146,9 +160,13 @@

Backlog

interferometer/start_here.py OOM in nightly release-validation integrate legautolens

-research — 16 +research — 25 +

Analytic Gaussian benchmark: closed-form validation of graphical + EPgraphical_ep · medium · supervised · high

Deep research: Can we speed up Delaunay in PyAutoArray?autoarray · too-large · supervised · high

Census of priors and messages — confirmed bugs + redesignautofit · too-large · supervised · high

+

EP campaign — phase map for the 2026 Q3 graphical/EPgraphical_ep · too-large · supervised · high

+

Expectation Propagation Scale-Up — Scopinggraphical_ep · too-large · supervised · high

+

Graphical Model Scale-Up — Scopinggraphical_ep · too-large · supervised · high

Delaunay-family JAX modules never hit the persistent compilation cacheautoarray · medium · supervised · medium

Quick-update plotting cost — minutes per update, and it isautolens · medium · supervised · medium

Use readthedocs or migrate to GitHub docsautobuild · small · supervised · normal

@@ -156,8 +174,13 @@

Backlog

Re-baseline the slacs0008 acceptance parity after the HAP-dedupe fixpyautoreduce · small · supervised · normal

We have lots of examples which profile how long JAXautolens_workspace_developer · medium · supervised · normal

+

slope_hierarchy: methods write-up (NUTS headline, EP cautionary)graphical_ep · medium · supervised · normal

+

slope_hierarchy: scale the hierarchical slope recovery to N=25–50graphical_ep · medium · supervised · normal

Checkerboard PSF-mismatch residual diagnostic — research + document + ingestpyautomemory · medium · supervised · normal

autofit_profiling: bootstrap the repo + general PyAutoFit profiling epicautofit · large · supervised · normal

+ +

PointSolver profiling cells: lensed quasar → cluster runtime tier →autolens_profiling · large · supervised · normal

+

IC50 use case: EP end-to-end with existing derived-variable handlinggraphical_ep · large · supervised · normal

Multi-band compile census completion — A100/multi-core + hetero GPU rowsautolens_profiling · small · supervised · low

Chase the ~6% flux scale between PyAutoReduce and legacy SLACSpyautoreduce · medium · supervised · low

@@ -185,7 +208,8 @@

Backlog

Refactor Agent witness map lacks PyAutoNerves test suitepyautobrain · low · safe · low

-docs — 14 +docs — 16 +

multi_galaxy package: new regime package in autolens_workspaceautolens · large · supervised · high

Split lensing regimes: multi_galaxy / group / cluster (epic plan)autolens · too-large · supervised · high

Advanced workspace guide: Preloads (PyAutoArray)workspaces · too-large · supervised · high

@@ -195,6 +219,7 @@

Backlog

Rectangular mesh Enzi citation — user-workspace pixelization examplesworkspaces · small · supervised · normal

Rewrite PyAutoCTI docs/api — 55 of 89 autosummary entries areautocti · medium · supervised · normal

extra_galaxies feature parity: point_source + multi_galaxy (both workspaces)workspaces · medium · supervised · normal

+

HowToLens cluster tutorial: show a pixelized source + fix thehowtolens · large · supervised · normal

HowToLens ch4 tutorial 3: mask overlay is never actually drawnhowtolens · small · supervised · low

@@ -202,7 +227,8 @@

Backlog

Phase 2: Make workspace READMEs assistant-firstworkspaces

-refactor — 6 +refactor — 7 +

einstein_radius_jit_from: replace static init_guess with a JAX-native seed finderautogalaxy · too-large · supervised · high

Split Fitness.batch_size into lh_batch_size and latent_batch_sizeautofit · small · supervised · normal

@@ -211,9 +237,10 @@

Backlog

Deduplicate repos_sync.py's check/write pairspyautomind · medium · safe · low

-test — 3 +test — 4

Re-baseline the MGE imaging JIT profiling regression valueautolens_workspace_developer · too-large · supervised · high

Restore absolute NumPy likelihood regression baselines in the _workspace_testworkspaces · too-large · supervised · high

+

Mesh magnification correctness: simulate-and-recover across every mesh variantworkspaces · large · supervised · normal

@@ -227,40 +254,6 @@

Backlog

CTI release-train wiring — first modern autocti releaseautocti · medium · human-required · normal

-

Epics markdown version

-

Long-running multi-phase programmes — 📋 copies a prompt that works out where the epic stands from its ledger and continues it from the next logical point. Members are worked in order through the epic's ledger — continue the epic rather than starting one standalone.

-

JAX profiling — inference programmeledger: autolens_profiling/results/notes/inference/PROGRAMME.md

-
-Cluster strong lensing — Source & Cluster arc — 14 queued prompt(s), in order -

Cluster strong lensing — Source & Cluster arcledger: draft/feature/autolens/source_cluster_arc.md

- -

PointSolver profiling cells: lensed quasar → cluster runtime tier →autolens_profiling · large · supervised · normal

- -

Mesh magnification correctness: simulate-and-recover across every mesh variantworkspaces · large · supervised · normal

-

Magnification at a point: surface the existing API in source_scienceautolens · large · supervised · high

- -

Magnification errors via posterior draws, standalone in source_scienceautolens · large · supervised · normal

- - - -

Cluster pixelized-source refinement: per-source masks via AnalysisFactorworkspaces · large · supervised · normal

- -

HowToLens cluster tutorial: show a pixelized source + fix thehowtolens · large · supervised · normal

-

Source & Cluster arc — magnification science, PointSolver trust, clusterautolens · too-large · supervised · high

-
-
-Expectation propagation (EP) campaign — 9 queued prompt(s), in order -

Expectation propagation (EP) campaignledger: draft/research/graphical_ep/ep_campaign.md

-

Analytic Gaussian benchmark: closed-form validation of graphical + EPgraphical_ep · medium · supervised · high

-

EP hierarchical parent-scale collapse: cure the basin, or document theautofit · too-large · human-required · high

-

Graphical Model Scale-Up — Scopinggraphical_ep · too-large · supervised · high

-

slope_hierarchy: scale the hierarchical slope recovery to N=25–50graphical_ep · medium · supervised · normal

- -

IC50 use case: EP end-to-end with existing derived-variable handlinggraphical_ep · large · supervised · normal

-

EP campaign — phase map for the 2026 Q3 graphical/EPgraphical_ep · too-large · supervised · high

-

Expectation Propagation Scale-Up — Scopinggraphical_ep · too-large · supervised · high

-

slope_hierarchy: methods write-up (NUTS headline, EP cautionary)graphical_ep · medium · supervised · normal

-