diff --git a/dashboard.html b/dashboard.html index 3c7583c1..aa33b4a3 100644 --- a/dashboard.html +++ b/dashboard.html @@ -142,7 +142,7 @@

PyAutoMindDashboard

Intent. Priority. Flow.

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. Recent is the same work by date β€” what has been happening rather than what to do next.

- +

Last updated 2026-08-24. This page is generated from active/, draft/ and the registry files, so it is only as current as they are. dashboard_refresh.yml re-renders it on every push to main β€” that heals a stale page, but not a stale prompt: a task that shipped without its prompt advancing to complete/ keeps rendering here as pickable backlog. Reconciling those is the refresh below.

TRIAGE: needs manual review before routing❓ triagemediumsafehigh

Numba CPU likelihood phase 1: batched MGE convolution + operated-matrix caching✨ featureautoarraymediumsupervisedhigh

Rectangular mesh split: Bilinear (fast CPU default) vs RTU (advanced/GPU)✨ featureautoarraymediumsupervisedhigh

+

autocti_workspace has no Navigator Check, so its CI can never rollβ€¦πŸ§Ή maintenancecimediumsupervisedhigh

Numba CPU likelihood phase 2: kernel-CDF numba fast path (the 49-88% lever)✨ featureautoarraylargesupervisedhigh

multi_galaxy package: new regime package in autolens_workspaceπŸ“– docsautolenslargesupervisedhigh

Deep research: Can we speed up Delaunay in PyAutoArray?πŸ”¬ researchautoarraytoo-largesupervisedhigh

@@ -184,7 +185,6 @@

Highest priority (filed as high) β€” showing 12 of 14

Re-baseline the MGE imaging JIT profiling regression valueπŸ§ͺ testautolens_workspace_developertoo-largesupervisedhigh

Fix release JAX runtime compatibility and likelihood parityπŸ› bughealth_fixestoo-largesupervisedhigh

Fix JIT quick-update visualization output regressionsπŸ› bughealth_fixestoo-largesupervisedhigh

-

Fix release result/sample parameter-path regressionsπŸ› bughealth_fixestoo-largesupervisedhigh

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

Defer the eager scipy.sparse import in derivative_util (~0.10 s of import)🧹 maintenancelibrariessmallsafenormal

Bug: fix the tracer.fits existence guard in autolens_workspace imaging modeling.pyπŸ› bugworkspacessmallsafenormal

@@ -209,7 +209,7 @@

Planned

latent-nan-guard-honest-run β€” planned 2026-07-22

Backlog markdown version

-

139 filed prompts, not started β€” sorted most-pickable first (priority, then size). 25 of them belong to an epic and are listed only under Epics below.

+

142 filed prompts, not started β€” sorted most-pickable first (priority, then size). 25 of them belong to an epic and are listed only under Epics below.

feature β€” 27 @@ -269,24 +269,8 @@

Backlog

interferometer/start_here.py OOM in nightly release-validation integrate legπŸ› bugautolens

-research β€” 14 -

Deep research: Can we speed up Delaunay in PyAutoArray?πŸ”¬ researchautoarraytoo-largesupervisedhigh

-

Delaunay-family JAX modules never hit the persistent compilation cacheπŸ”¬ researchautoarraymediumsupervisedmedium

-

Quick-update plotting cost β€” minutes per update, and it is not JAXβ€¦πŸ”¬ researchautolensmediumsupervisedmedium

-

Use readthedocs or migrate to GitHub docsπŸ”¬ researchautobuildsmallsupervisednormal

-

Re-baseline the slacs0008 acceptance parity after the HAP-dedupe fixπŸ”¬ researchpyautoreducesmallsupervisednormal

- -

We have lots of examples which profile how long JAXπŸ”¬ researchautolens_workspace_developermediumsupervisednormal

-

Is Intel macOS a supported platform, and what is the numpy-only contract?πŸ”¬ researchlibrariesmediumsupervisednormal

-

Checkerboard PSF-mismatch residual diagnostic β€” research + document + ingest papersπŸ”¬ researchpyautomemorymediumsupervisednormal

-

autofit_profiling: bootstrap the repo + general PyAutoFit profiling epicπŸ”¬ researchautofitlargesupervisednormal

-

Multi-band compile census completion β€” A100/multi-core + hetero GPU rowsπŸ”¬ researchautolens_profilingsmallsupervisedlow

-

Chase the ~6% flux scale between PyAutoReduce and legacy SLACS reductionsπŸ”¬ researchpyautoreducemediumsupervisedlow

- - -
-
-maintenance β€” 21 +maintenance β€” 24 +

autocti_workspace has no Navigator Check, so its CI can never rollβ€¦πŸ§Ή maintenancecimediumsupervisedhigh

Untrack the generated FITS test artifacts in autoarray🧹 maintenancelibrariessmallsupervisedmedium

smoke_install.sh's stale jax<0.7 pin β€” CI is on the right jaxβ€¦πŸ§Ή maintenancecilowsupervisedmedium

autolens_workspace_developer rectangular experiments β€” Gut stash + rename🧹 maintenanceautolens_workspace_developersmallsupervisednormal

@@ -295,6 +279,8 @@

Backlog

Un-park imaging/features/scaling_relation/slam once PyAutoArray#431 merges🧹 maintenanceworkspacessmallsupervisednormal

Un-park multi_galaxy/features/scaling_relation/slam once a capped run passes🧹 maintenanceworkspacessmallsupervisednormal

autolens_workspace_developer: broad stale-API rot (56 symbols, no CI)🧹 maintenanceautolens_workspace_developermediumsupervisednormal

+ +

wiki-currency's --check-version gate rots on every library main merge🧹 maintenancecimediumsupervisednormal

Dependency-cap refresh 2026-08: safe bumps, astropy 8 decision, two dead deps🧹 maintenancelibrariesmediumsupervisednormal

PyAutoMemory canonical-key TODO sweep🧹 maintenancepyautomemorymediumsupervisednormal

Capped smoke datasets were committed as if they were real🧹 maintenanceworkspacesmediumsupervisednormal

@@ -310,6 +296,23 @@

Backlog

Refactor Agent witness map lacks PyAutoNerves test suite🧹 maintenancepyautobrainlowsafelow

+research β€” 14 +

Deep research: Can we speed up Delaunay in PyAutoArray?πŸ”¬ researchautoarraytoo-largesupervisedhigh

+

Delaunay-family JAX modules never hit the persistent compilation cacheπŸ”¬ researchautoarraymediumsupervisedmedium

+

Quick-update plotting cost β€” minutes per update, and it is not JAXβ€¦πŸ”¬ researchautolensmediumsupervisedmedium

+

Use readthedocs or migrate to GitHub docsπŸ”¬ researchautobuildsmallsupervisednormal

+

Re-baseline the slacs0008 acceptance parity after the HAP-dedupe fixπŸ”¬ researchpyautoreducesmallsupervisednormal

+ +

We have lots of examples which profile how long JAXπŸ”¬ researchautolens_workspace_developermediumsupervisednormal

+

Is Intel macOS a supported platform, and what is the numpy-only contract?πŸ”¬ researchlibrariesmediumsupervisednormal

+

Checkerboard PSF-mismatch residual diagnostic β€” research + document + ingest papersπŸ”¬ researchpyautomemorymediumsupervisednormal

+

autofit_profiling: bootstrap the repo + general PyAutoFit profiling epicπŸ”¬ researchautofitlargesupervisednormal

+

Multi-band compile census completion β€” A100/multi-core + hetero GPU rowsπŸ”¬ researchautolens_profilingsmallsupervisedlow

+

Chase the ~6% flux scale between PyAutoReduce and legacy SLACS reductionsπŸ”¬ researchpyautoreducemediumsupervisedlow

+ + +
+
docs β€” 12

multi_galaxy package: new regime package in autolens_workspaceπŸ“– docsautolenslargesupervisedhigh

Split lensing regimes: multi_galaxy / group / cluster (epic plan)πŸ“– docsautolenstoo-largesupervisedhigh

@@ -357,12 +360,24 @@

Backlog 2026-08-24 filed +wiki-currency's --check-version gate rots on every library main merge + + + +2026-08-24 +filed interferometer/jax_grad/gradient.py: eager and jitted likelihoods… 2026-08-24 filed +autocti_workspace has no Navigator Check, so its CI can never roll… + + + +2026-08-24 +filed Un-park multi_galaxy/features/scaling_relation/slam once a capped run… @@ -373,6 +388,12 @@

Backlog +2026-08-24 +filed +Heart's local smoke runner cannot run any CTI workspace β€” no autocti… + + + 2026-08-23 filed pynufft removal: unswept downstream residue (1 hard break + stale… @@ -396,19 +417,19 @@

Backlog smoke_install.sh's stale jax<0.7 pin β€” CI is on the right jax… - + 2026-08-22 filed Untrack the generated FITS test artifacts in autoarray - + 2026-08-22 filed The reconstruction noise map describes a different estimator than the… - + 2026-08-22 filed Point-source JSON datasets record no resolution regime @@ -636,24 +657,6 @@

Backlog autolens_workspace_developer: broad stale-API rot (56 symbols, no CI) - -2026-08-04 -filed -aplt.Output stale-API drift in the remaining workspace repos - - - -2026-08-04 -filed -Nightly release has been blocked 8 nights running β€” triage the streak - - - -2026-08-04 -filed -HowToLens ch4 tutorial 3: mask overlay is never actually drawn - -

Epics markdown version

diff --git a/dashboard.md b/dashboard.md index c3cca801..24945eb2 100644 --- a/dashboard.md +++ b/dashboard.md @@ -45,11 +45,11 @@ anything you could not verify. | [In flight](#in-flight) (`active/`) | 1 | | [Parked](#parked) (`parked.md`) | 3 | | [Planned](#planned) (`planned.md`) | 5 | -| [Backlog](#backlog) (`draft/`) | 139 | +| [Backlog](#backlog) (`draft/`) | 142 | ## Start here -**Highest priority** (filed as `high`) β€” showing 12 of 14 +**Highest priority** (filed as `high`) β€” showing 12 of 15
πŸ“‹ TRIAGE: needs manual review before routing β€” medium Β· safe Β· high @@ -75,6 +75,14 @@ anything you could not verify.
+
πŸ“‹ autocti_workspace has no Navigator Check, so its CI can never roll… β€” ci Β· medium Β· supervised Β· high + +``` +/start_dev draft/maintenance/ci/autocti_workspace_navigator_check.md +``` + +
+
πŸ“‹ Numba CPU likelihood phase 2: kernel-CDF numba fast path (the 49-88% lever) β€” autoarray Β· large Β· supervised Β· high ``` @@ -139,14 +147,6 @@ anything you could not verify.
-
πŸ“‹ Fix release result/sample parameter-path regressions β€” health_fixes Β· too-large Β· supervised Β· high - -``` -/start_dev draft/bug/health_fixes/samples_parameter_paths.md -``` - -
- **Quick wins** (small enough, and safe enough to run unattended)
πŸ“‹ Defer the eager scipy.sparse import in derivative_util (~0.10 s of import) β€” libraries Β· small Β· safe Β· normal @@ -269,7 +269,7 @@ Scoped but not started; some are not yet prompt files. Full detail in [`planned. ## Backlog -**139** filed prompts, not started. Each section is sorted most-pickable first (priority, then size). **25** of them belong to an epic and are listed only under [Epics](#epics) below. +**142** filed prompts, not started. Each section is sorted most-pickable first (priority, then size). **25** of them belong to an epic and are listed only under [Epics](#epics) below.
feature β€” 27 @@ -698,289 +698,313 @@ Scoped but not started; some are not yet prompt files. Full detail in [`planned.
-research β€” 14 +maintenance β€” 24 -
πŸ“‹ Deep research: Can we speed up Delaunay in PyAutoArray? β€” autoarray Β· too-large Β· supervised Β· high +
πŸ“‹ autocti_workspace has no Navigator Check, so its CI can never roll… β€” ci Β· medium Β· supervised Β· high ``` -/start_dev draft/research/autoarray/delaunay_research.md +/start_dev draft/maintenance/ci/autocti_workspace_navigator_check.md ```
-
πŸ“‹ Delaunay-family JAX modules never hit the persistent compilation cache β€” autoarray Β· medium Β· supervised Β· medium +
πŸ“‹ Untrack the generated FITS test artifacts in autoarray β€” libraries Β· small Β· supervised Β· medium ``` -/start_dev draft/research/autoarray/delaunay_callback_persistent_cache_miss.md +/start_dev draft/maintenance/libraries/untrack_generated_fits_test_artifacts.md ```
-
πŸ“‹ Quick-update plotting cost β€” minutes per update, and it is not JAX… β€” autolens Β· medium Β· supervised Β· medium +
πŸ“‹ smoke_install.sh's stale jax<0.7 pin β€” CI is on the right jax… β€” ci Β· low Β· supervised Β· medium ``` -/start_dev draft/research/autolens/quick_update_plotting_cost.md +/start_dev draft/maintenance/ci/smoke_install_stale_jax_pin.md ```
-
πŸ“‹ Use readthedocs or migrate to GitHub docs β€” autobuild Β· small Β· supervised Β· normal +
πŸ“‹ autolens_workspace_developer rectangular experiments β€” Gut stash + rename β€” autolens_workspace_developer Β· small Β· supervised Β· normal ``` -/start_dev draft/research/autobuild/git_docs.md +/start_dev draft/maintenance/autolens_workspace_developer/rectangular_experiments_gut_stash.md ```
-
πŸ“‹ Re-baseline the slacs0008 acceptance parity after the HAP-dedupe fix β€” pyautoreduce Β· small Β· supervised Β· normal +
πŸ“‹ Defer the eager scipy.sparse import in derivative_util (~0.10 s of import) β€” libraries Β· small Β· safe Β· normal ``` -/start_dev draft/research/pyautoreduce/acceptance_noise_rebaseline.md +/start_dev draft/maintenance/libraries/defer_scipy_sparse_import.md ```
-
πŸ“‹ Kernel-CDF bandwidth defaults β€” config-dependent quality, investigate adaptivity β€” autoarray Β· medium Β· supervised Β· normal +
πŸ“‹ Mirror drifted library config keys into the workspace configs β€” workspaces Β· small Β· supervised Β· normal ``` -/start_dev draft/research/autoarray/rectangular_kernel_bandwidth_defaults.md +/start_dev draft/maintenance/workspaces/config_key_mirror_drift.md ```
-
πŸ“‹ We have lots of examples which profile how long JAX β€” autolens_workspace_developer Β· medium Β· supervised Β· normal +
πŸ“‹ Un-park imaging/features/scaling_relation/slam once PyAutoArray#431 merges β€” workspaces Β· small Β· supervised Β· normal ``` -/start_dev draft/research/autolens_workspace_developer/jax_jit_profiling.md +/start_dev draft/maintenance/workspaces/unpark_imaging_scaling_relation_slam.md ```
-
πŸ“‹ Is Intel macOS a supported platform, and what is the numpy-only contract? β€” libraries Β· medium Β· supervised Β· normal +
πŸ“‹ Un-park multi_galaxy/features/scaling_relation/slam once a capped run passes β€” workspaces Β· small Β· supervised Β· normal ``` -/start_dev draft/research/libraries/intel_macos_support_policy.md +/start_dev draft/maintenance/workspaces/unpark_multi_galaxy_scaling_relation_slam.md ```
-
πŸ“‹ Checkerboard PSF-mismatch residual diagnostic β€” research + document + ingest papers β€” pyautomemory Β· medium Β· supervised Β· normal +
πŸ“‹ autolens_workspace_developer: broad stale-API rot (56 symbols, no CI) β€” autolens_workspace_developer Β· medium Β· supervised Β· normal ``` -/start_dev draft/research/pyautomemory/checkerboard_psf_mismatch_residual_diagnostic.md +/start_dev draft/maintenance/autolens_workspace_developer/stale_api_rot_audit.md ```
-
πŸ“‹ autofit_profiling: bootstrap the repo + general PyAutoFit profiling epic β€” autofit Β· large Β· supervised Β· normal +
πŸ“‹ Heart's local smoke runner cannot run any CTI workspace β€” no autocti… β€” ci Β· medium Β· supervised Β· normal ``` -/start_dev draft/research/autofit/autofit_profiling_bootstrap.md +/start_dev draft/maintenance/ci/heart_smoke_table_autocti.md ```
-
πŸ“‹ Multi-band compile census completion β€” A100/multi-core + hetero GPU rows β€” autolens_profiling Β· small Β· supervised Β· low +
πŸ“‹ wiki-currency's --check-version gate rots on every library main merge β€” ci Β· medium Β· supervised Β· normal ``` -/start_dev draft/research/autolens_profiling/multiband_compile_census_completion.md +/start_dev draft/maintenance/ci/wiki_currency_check_version_gate.md ```
-
πŸ“‹ Chase the ~6% flux scale between PyAutoReduce and legacy SLACS reductions β€” pyautoreduce Β· medium Β· supervised Β· low +
πŸ“‹ Dependency-cap refresh 2026-08: safe bumps, astropy 8 decision, two dead deps β€” libraries Β· medium Β· supervised Β· normal ``` -/start_dev draft/research/pyautoreduce/legacy_flux_scale_parity.md +/start_dev draft/maintenance/libraries/dep_cap_refresh_2026_08.md ```
-
πŸ“‹ PyAutoArray Delaunay interpolator's pure_callback vs vmap β€” minor efficiency follow-up β€” autoarray Β· too-large Β· supervised Β· low +
πŸ“‹ PyAutoMemory canonical-key TODO sweep β€” pyautomemory Β· medium Β· supervised Β· normal ``` -/start_dev draft/research/autoarray/delaunay_interpolator_pure_callback_vmap_memory.md +/start_dev draft/maintenance/pyautomemory/canonical_key_todo_sweep.md ```
-
πŸ“‹ Cluster-scale gradient-search benchmark (Prodigy vs Nautilus, point-source) β€” autolens_profiling +
πŸ“‹ Capped smoke datasets were committed as if they were real β€” workspaces Β· medium Β· supervised Β· normal ``` -/start_dev draft/research/autolens_profiling/cluster_gradient_search_benchmark.md +/start_dev draft/maintenance/workspaces/committed_capped_smoke_datasets.md ```
+
πŸ“‹ autolens_profiling is now a mature project, with a good separation β€” autolens_profiling Β· large Β· supervised Β· normal + +``` +/start_dev draft/maintenance/autolens_profiling/polish.md +``` +
-
-maintenance β€” 21 +
πŸ“‹ Auto-request GitHub Copilot code review on every PR, org-wide β€” ci Β· large Β· supervised Β· normal -
πŸ“‹ Untrack the generated FITS test artifacts in autoarray β€” libraries Β· small Β· supervised Β· medium +``` +/start_dev draft/maintenance/ci/copilot_auto_review.md +``` + +
+ +
πŸ“‹ autolens_workspace β€” workspaces Β· too-large Β· supervised Β· normal ``` -/start_dev draft/maintenance/libraries/untrack_generated_fits_test_artifacts.md +/start_dev draft/maintenance/workspaces/read_through_issues.md ```
-
πŸ“‹ smoke_install.sh's stale jax<0.7 pin β€” CI is on the right jax… β€” ci Β· low Β· supervised Β· medium +
πŸ“‹ pynufft removal: unswept downstream residue (1 hard break + stale docs/CI) β€” workspaces Β· low-medium Β· supervised Β· normal ``` -/start_dev draft/maintenance/ci/smoke_install_stale_jax_pin.md +/start_dev draft/maintenance/workspaces/pynufft_removal_downstream_residue.md ```
-
πŸ“‹ autolens_workspace_developer rectangular experiments β€” Gut stash + rename β€” autolens_workspace_developer Β· small Β· supervised Β· normal +
πŸ“‹ Phase 3: stop installing pynufft in Hands/Heart CI and PyAutoCTI install docs β€” workspaces Β· low Β· supervised Β· normal ``` -/start_dev draft/maintenance/autolens_workspace_developer/rectangular_experiments_gut_stash.md +/start_dev draft/maintenance/workspaces/pynufft_removal_downstream_residue_phase_3_ci_install_docs.md ```
-
πŸ“‹ Defer the eager scipy.sparse import in derivative_util (~0.10 s of import) β€” libraries Β· small Β· safe Β· normal +
πŸ“‹ dataset/imaging/jwst_lw is untracked because the gitignore was never extended for it β€” autolens_profiling Β· small Β· supervised Β· low ``` -/start_dev draft/maintenance/libraries/defer_scipy_sparse_import.md +/start_dev draft/maintenance/autolens_profiling/jwst_lw_untracked_gitignore_gap.md ```
-
πŸ“‹ Mirror drifted library config keys into the workspace configs β€” workspaces Β· small Β· supervised Β· normal +
πŸ“‹ cosmos_web_ring stores boolean masks as float64, wasting ~3.4 MB of the repo's… β€” autolens_workspace Β· small Β· supervised Β· low ``` -/start_dev draft/maintenance/workspaces/config_key_mirror_drift.md +/start_dev draft/maintenance/autolens_workspace/cosmos_web_ring_mask_dtype.md ```
-
πŸ“‹ Un-park imaging/features/scaling_relation/slam once PyAutoArray#431 merges β€” workspaces Β· small Β· supervised Β· normal +
πŸ“‹ The weekly smoke run's timings land in results-* under no discoverable name β€” pyautoheart Β· small Β· safe Β· low ``` -/start_dev draft/maintenance/workspaces/unpark_imaging_scaling_relation_slam.md +/start_dev draft/maintenance/pyautoheart/weekly_smoke_timings_artifact_naming.md ```
-
πŸ“‹ Un-park multi_galaxy/features/scaling_relation/slam once a capped run passes β€” workspaces Β· small Β· supervised Β· normal +
πŸ“‹ Regenerate setup_notebook-drifted notebooks in autogalaxy/autofit/HowToFit workspaces β€” workspaces Β· small Β· supervised Β· low ``` -/start_dev draft/maintenance/workspaces/unpark_multi_galaxy_scaling_relation_slam.md +/start_dev draft/maintenance/workspaces/notebook_setup_notebook_drift_siblings.md ```
-
πŸ“‹ autolens_workspace_developer: broad stale-API rot (56 symbols, no CI) β€” autolens_workspace_developer Β· medium Β· supervised Β· normal +
πŸ“‹ Refactor Agent witness map lacks PyAutoNerves test suite β€” pyautobrain Β· low Β· safe Β· low ``` -/start_dev draft/maintenance/autolens_workspace_developer/stale_api_rot_audit.md +/start_dev draft/maintenance/pyautobrain/refactor_witness_map_missing_autonerves.md ```
-
πŸ“‹ Dependency-cap refresh 2026-08: safe bumps, astropy 8 decision, two dead deps β€” libraries Β· medium Β· supervised Β· normal +
+ +
+research β€” 14 + +
πŸ“‹ Deep research: Can we speed up Delaunay in PyAutoArray? β€” autoarray Β· too-large Β· supervised Β· high ``` -/start_dev draft/maintenance/libraries/dep_cap_refresh_2026_08.md +/start_dev draft/research/autoarray/delaunay_research.md ```
-
πŸ“‹ PyAutoMemory canonical-key TODO sweep β€” pyautomemory Β· medium Β· supervised Β· normal +
πŸ“‹ Delaunay-family JAX modules never hit the persistent compilation cache β€” autoarray Β· medium Β· supervised Β· medium ``` -/start_dev draft/maintenance/pyautomemory/canonical_key_todo_sweep.md +/start_dev draft/research/autoarray/delaunay_callback_persistent_cache_miss.md ```
-
πŸ“‹ Capped smoke datasets were committed as if they were real β€” workspaces Β· medium Β· supervised Β· normal +
πŸ“‹ Quick-update plotting cost β€” minutes per update, and it is not JAX… β€” autolens Β· medium Β· supervised Β· medium ``` -/start_dev draft/maintenance/workspaces/committed_capped_smoke_datasets.md +/start_dev draft/research/autolens/quick_update_plotting_cost.md ```
-
πŸ“‹ autolens_profiling is now a mature project, with a good separation β€” autolens_profiling Β· large Β· supervised Β· normal +
πŸ“‹ Use readthedocs or migrate to GitHub docs β€” autobuild Β· small Β· supervised Β· normal ``` -/start_dev draft/maintenance/autolens_profiling/polish.md +/start_dev draft/research/autobuild/git_docs.md ```
-
πŸ“‹ Auto-request GitHub Copilot code review on every PR, org-wide β€” ci Β· large Β· supervised Β· normal +
πŸ“‹ Re-baseline the slacs0008 acceptance parity after the HAP-dedupe fix β€” pyautoreduce Β· small Β· supervised Β· normal ``` -/start_dev draft/maintenance/ci/copilot_auto_review.md +/start_dev draft/research/pyautoreduce/acceptance_noise_rebaseline.md ```
-
πŸ“‹ autolens_workspace β€” workspaces Β· too-large Β· supervised Β· normal +
πŸ“‹ Kernel-CDF bandwidth defaults β€” config-dependent quality, investigate adaptivity β€” autoarray Β· medium Β· supervised Β· normal ``` -/start_dev draft/maintenance/workspaces/read_through_issues.md +/start_dev draft/research/autoarray/rectangular_kernel_bandwidth_defaults.md ```
-
πŸ“‹ pynufft removal: unswept downstream residue (1 hard break + stale docs/CI) β€” workspaces Β· low-medium Β· supervised Β· normal +
πŸ“‹ We have lots of examples which profile how long JAX β€” autolens_workspace_developer Β· medium Β· supervised Β· normal ``` -/start_dev draft/maintenance/workspaces/pynufft_removal_downstream_residue.md +/start_dev draft/research/autolens_workspace_developer/jax_jit_profiling.md ```
-
πŸ“‹ Phase 3: stop installing pynufft in Hands/Heart CI and PyAutoCTI install docs β€” workspaces Β· low Β· supervised Β· normal +
πŸ“‹ Is Intel macOS a supported platform, and what is the numpy-only contract? β€” libraries Β· medium Β· supervised Β· normal ``` -/start_dev draft/maintenance/workspaces/pynufft_removal_downstream_residue_phase_3_ci_install_docs.md +/start_dev draft/research/libraries/intel_macos_support_policy.md ```
-
πŸ“‹ dataset/imaging/jwst_lw is untracked because the gitignore was never extended for it β€” autolens_profiling Β· small Β· supervised Β· low +
πŸ“‹ Checkerboard PSF-mismatch residual diagnostic β€” research + document + ingest papers β€” pyautomemory Β· medium Β· supervised Β· normal ``` -/start_dev draft/maintenance/autolens_profiling/jwst_lw_untracked_gitignore_gap.md +/start_dev draft/research/pyautomemory/checkerboard_psf_mismatch_residual_diagnostic.md ```
-
πŸ“‹ cosmos_web_ring stores boolean masks as float64, wasting ~3.4 MB of the repo's… β€” autolens_workspace Β· small Β· supervised Β· low +
πŸ“‹ autofit_profiling: bootstrap the repo + general PyAutoFit profiling epic β€” autofit Β· large Β· supervised Β· normal ``` -/start_dev draft/maintenance/autolens_workspace/cosmos_web_ring_mask_dtype.md +/start_dev draft/research/autofit/autofit_profiling_bootstrap.md ```
-
πŸ“‹ The weekly smoke run's timings land in results-* under no discoverable name β€” pyautoheart Β· small Β· safe Β· low +
πŸ“‹ Multi-band compile census completion β€” A100/multi-core + hetero GPU rows β€” autolens_profiling Β· small Β· supervised Β· low ``` -/start_dev draft/maintenance/pyautoheart/weekly_smoke_timings_artifact_naming.md +/start_dev draft/research/autolens_profiling/multiband_compile_census_completion.md ```
-
πŸ“‹ Regenerate setup_notebook-drifted notebooks in autogalaxy/autofit/HowToFit workspaces β€” workspaces Β· small Β· supervised Β· low +
πŸ“‹ Chase the ~6% flux scale between PyAutoReduce and legacy SLACS reductions β€” pyautoreduce Β· medium Β· supervised Β· low ``` -/start_dev draft/maintenance/workspaces/notebook_setup_notebook_drift_siblings.md +/start_dev draft/research/pyautoreduce/legacy_flux_scale_parity.md ```
-
πŸ“‹ Refactor Agent witness map lacks PyAutoNerves test suite β€” pyautobrain Β· low Β· safe Β· low +
πŸ“‹ PyAutoArray Delaunay interpolator's pure_callback vs vmap β€” minor efficiency follow-up β€” autoarray Β· too-large Β· supervised Β· low ``` -/start_dev draft/maintenance/pyautobrain/refactor_witness_map_missing_autonerves.md +/start_dev draft/research/autoarray/delaunay_interpolator_pure_callback_vmap_memory.md +``` + +
+ +
πŸ“‹ Cluster-scale gradient-search benchmark (Prodigy vs Nautilus, point-source) β€” autolens_profiling + +``` +/start_dev draft/research/autolens_profiling/cluster_gradient_search_benchmark.md ```
@@ -1234,21 +1258,24 @@ The 50 newest things to happen to the work in hand, newest first β€” issued, par | Date | Event | Task | |------|-------|------| +| 2026-08-24 | filed | wiki-currency's --check-version gate rots on every library main merge | | 2026-08-24 | filed | interferometer/jax_grad/gradient.py: eager and jitted likelihoods… | +| 2026-08-24 | filed | autocti_workspace has no Navigator Check, so its CI can never roll… | | 2026-08-24 | filed | Un-park multi_galaxy/features/scaling_relation/slam once a capped run… | | 2026-08-24 | filed | The weekly smoke run's timings land in results-* under no… | +| 2026-08-24 | filed | Heart's local smoke runner cannot run any CTI workspace β€” no autocti… | | 2026-08-23 | filed | pynufft removal: unswept downstream residue (1 hard break + stale… | | 2026-08-23 | filed | Phase 3: stop installing pynufft in Hands/Heart CI and PyAutoCTI… | | 2026-08-23 | filed | Brain board follow-ups: what real mornings surface | | 2026-08-22 | filed | smoke_install.sh's stale jax<0.7 pin β€” CI is on the right jax… | -| 2026-08-22 | filed | Untrack the generated FITS test artifacts in autoarray | -| 2026-08-22 | filed | The reconstruction noise map describes a different estimator than the… | -| 2026-08-22 | filed | Point-source JSON datasets record no resolution regime |
… 10 more (40 left) | Date | Event | Task | |------|-------|------| +| 2026-08-22 | filed | Untrack the generated FITS test artifacts in autoarray | +| 2026-08-22 | filed | The reconstruction noise map describes a different estimator than the… | +| 2026-08-22 | filed | Point-source JSON datasets record no resolution regime | | 2026-08-22 | filed | Is Intel macOS a supported platform, and what is the numpy-only… | | 2026-08-22 | filed | Defer the eager scipy.sparse import in derivative_util (~0.10 s of… | | 2026-08-22 | filed | Bug: fix the tracer.fits existence guard in autolens_workspace… | @@ -1256,14 +1283,14 @@ The 50 newest things to happen to the work in hand, newest first β€” issued, par | 2026-08-20 | filed | Numba CPU likelihood phase 2: kernel-CDF numba fast path (the 49-88%… | | 2026-08-20 | filed | Numba CPU likelihood phase 1: batched MGE convolution +… | | 2026-08-19 | filed | status.sh --repos sources a file that no longer exists | -| 2026-08-19 | filed | jax 0.11 breaks beta/gamma message log_partition under jit… | -| 2026-08-19 | filed | autolens_workspace_test jax_likelihood pins: 4 scripts fail smoke on… | -| 2026-08-19 | filed | autofit_profiling: bootstrap the repo + general PyAutoFit profiling… |
… 10 more (30 left) | Date | Event | Task | |------|-------|------| +| 2026-08-19 | filed | jax 0.11 breaks beta/gamma message log_partition under jit… | +| 2026-08-19 | filed | autolens_workspace_test jax_likelihood pins: 4 scripts fail smoke on… | +| 2026-08-19 | filed | autofit_profiling: bootstrap the repo + general PyAutoFit profiling… | | 2026-08-19 | filed | autoreduce 0.9 on PyPI never got the Python 3.12 floor | | 2026-08-19 | issued | @PyAutoFit TransformedMessage.factor_gradient crashes on first… | | 2026-08-19 | filed | Release board: local run_logs enrichment | @@ -1271,14 +1298,14 @@ The 50 newest things to happen to the work in hand, newest first β€” issued, par | 2026-08-19 | filed | RTD organism docs currency: Nerves page, organ-count drift, hands.md… | | 2026-08-19 | filed | PyAutoConf rename leftovers in Brain functional surfaces | | 2026-08-19 | filed | Deduplicate repos_sync.py's check/write pairs | -| 2026-08-19 | filed | Bug in autocti_workspace: the dataset_1d results/database example… | -| 2026-08-18 | parked | single-source-density-design | -| 2026-08-18 | parked | prior-message-collapse-design |
… 10 more (20 left) | Date | Event | Task | |------|-------|------| +| 2026-08-19 | filed | Bug in autocti_workspace: the dataset_1d results/database example… | +| 2026-08-18 | parked | single-source-density-design | +| 2026-08-18 | parked | prior-message-collapse-design | | 2026-08-18 | filed | @PyAutoFit TransformedMessage.logpdf/pdf omit the transform… | | 2026-08-17 | filed | Which other searches need prior-support handling β€” coverage audit… | | 2026-08-17 | filed | Teach repos_sync --write to stamp organ config surfaces | @@ -1286,14 +1313,14 @@ The 50 newest things to happen to the work in hand, newest first β€” issued, par | 2026-08-14 | filed | Three jax_likelihood pins are stale by ~1.24e-4 and fail the smoke… | | 2026-08-09 | found | isothermal-ell-sph-oversampling-at-the-cusp | | 2026-08-08 | parked | pyautoreduce-slacs1430-acs-comparison | -| 2026-08-08 | filed | Regenerate autolens_workspace markdown/ so the MGE pages show… | -| 2026-08-07 | filed | autofit.plot functions accept **kwargs and silently discard them | -| 2026-08-07 | filed | Regenerate setup_notebook-drifted notebooks in… |
… 10 more (10 left) | Date | Event | Task | |------|-------|------| +| 2026-08-08 | filed | Regenerate autolens_workspace markdown/ so the MGE pages show… | +| 2026-08-07 | filed | autofit.plot functions accept **kwargs and silently discard them | +| 2026-08-07 | filed | Regenerate setup_notebook-drifted notebooks in… | | 2026-08-06 | filed | Triage: Convolver "No blurring_image provided" warning in canonical… | | 2026-08-06 | filed | Rewrite PyAutoCTI docs/api β€” 55 of 89 autosummary entries are dead | | 2026-08-06 | filed | Dependency-cap refresh 2026-08: safe bumps, astropy 8 decision, two… | @@ -1301,9 +1328,6 @@ The 50 newest things to happen to the work in hand, newest first β€” issued, par | 2026-08-04 | filed | dataset/imaging/jwst_lw is untracked because the gitignore was never… | | 2026-08-04 | filed | cosmos_web_ring stores boolean masks as float64, wasting ~3.4 MB of… | | 2026-08-04 | filed | autolens_workspace_developer: broad stale-API rot (56 symbols, no CI) | -| 2026-08-04 | filed | aplt.Output stale-API drift in the remaining workspace repos | -| 2026-08-04 | filed | Nightly release has been blocked 8 nights running β€” triage the streak | -| 2026-08-04 | filed | HowToLens ch4 tutorial 3: mask overlay is never actually drawn |
diff --git a/draft/maintenance/ci/autocti_workspace_navigator_check.md b/draft/maintenance/ci/autocti_workspace_navigator_check.md new file mode 100644 index 00000000..7c29cb31 --- /dev/null +++ b/draft/maintenance/ci/autocti_workspace_navigator_check.md @@ -0,0 +1,81 @@ +# autocti_workspace has no Navigator Check, so its CI can never roll up green + +Type: maintenance +Target: autocti_workspace +Repos: +- @autocti_workspace +- @PyAutoHeart +Difficulty: medium +Autonomy: supervised +Priority: high +Status: formalised +Filed: 2026-08-24 + +`PyAutoHeart/config/repos.yaml` lists `autocti_workspace` in the `workspaces` +group, whose required workflows are: + +```yaml +required_workflows: + workspaces: ["Smoke Tests", "Navigator Check"] # smoke_tests.yml + navigator_check.yml +``` + +`Smoke Tests` now exists (autocti_workspace#27/#28, 2026-08-24 β€” the repo's first +CI). **`Navigator Check` does not.** That is not cosmetic. + +## Why this blocks readiness, not just tidiness + +`heart/checks/ci_status.py` rolls a repo up over its *required* workflows. A +required workflow with **no runs at all** is not scored as a failure β€” it simply +never satisfies `all_green`. Verified directly against the real function: + +``` +required for `workspaces`: ['Smoke Tests', 'Navigator Check'] + +Smoke green, Navigator MISSING -> {'conclusion': '', 'status': 'in_progress'} +both green -> {'conclusion': 'success', 'status': 'completed'} +smoke red, Navigator MISSING -> {'conclusion': 'failure', 'status': 'completed'} +``` + +So `autocti_workspace` rolls up as **permanently `in_progress`** β€” never green, +never red. It cannot reach `conclusion: success` no matter how healthy it is, +which means the readiness/release gate can never see this repo as CI-clean. +Adding Smoke Tests was necessary but not sufficient. + +Note the asymmetry in that table: a *red* Smoke Tests still reports failure +correctly. So the repo can go red but can never go green β€” the worst shape for a +gate to be in. + +## Work + +1. **Find out what `Navigator Check` actually is.** It is not a Heart reusable + workflow β€” `PyAutoHeart/.github/workflows/` has no `navigator_check.yml`; the + name appears only in `config/repos.yaml` and `heart/checks/ci_status.py`. + Each workspace owns its own `.github/workflows/navigator_check.yml`. Read a + sibling that has one (`autolens_workspace`, `autogalaxy_workspace`, + `autofit_workspace`, or a `HowTo*` repo) and mirror it. Do **not** invent a + check from the name. +2. **Add it to `autocti_workspace`**, adapted to this repo's actual navigator + surface. autocti_workspace has root-level catalogue files the assistant's + citation checks already lean on (`llms.txt`, `llms-full.txt`, + `workspace_index.json` are sparse-checked out by + `autocti_assistant/.github/workflows/wiki-currency.yml`), so there is a real + navigator surface here to validate. +3. **Confirm the roll-up flips to `success`** once both workflows are green on + `main` HEAD β€” that is the actual acceptance criterion, not "the workflow + passes". +4. **Consider the general case.** If other repos in a required group are missing + a required workflow, they have the same silent-never-green defect. A Heart-side + drift check ("every repo in a required group has a workflow file for each of + its required workflows") would catch this class rather than this instance. + Raise it as a proposal with findings; do not widen this task unilaterally. + +## Why it was left out of the smoke task + +autocti_workspace#28 was scoped to the ordered-trap smoke coverage (CTI epic +Phase 5). Adding a second, unrelated workflow would have widened that PR beyond +its task. Filed here instead, deliberately. + +## Context + +`PyAutoMind/complete/2026/08/phase5-smoke-ordered-trap-scripts.md` β€” how the +repo got its first CI, and the `arcticpy: true` caller convention it uses. diff --git a/draft/maintenance/ci/heart_smoke_table_autocti.md b/draft/maintenance/ci/heart_smoke_table_autocti.md new file mode 100644 index 00000000..f86d104b --- /dev/null +++ b/draft/maintenance/ci/heart_smoke_table_autocti.md @@ -0,0 +1,106 @@ +# Heart's local smoke runner cannot run any CTI workspace β€” no autocti entry + +Type: maintenance +Target: pyautoheart +Repos: +- @PyAutoHeart +Difficulty: medium +Autonomy: supervised +Priority: normal +Status: formalised +Filed: 2026-08-24 + +`PyAutoHeart/heart/smoke.py` is the local smoke runner β€” "one isolated +environment per workspace, prepared from the workspace-owned installer", the +local mirror of what CI does. Which workspaces it can prepare is declared in +`config/repos.yaml` under the `smoke:` block, and **the CTI repos are absent +from it entirely**: + +```yaml +smoke: + import_names: + PyAutoNerves: autonerves + PyAutoFit: autofit + PyAutoArray: autoarray + PyAutoGalaxy: autogalaxy + PyAutoLens: autolens # <- no PyAutoCTI + workspaces: + autofit: {directory: autofit_workspace, chain: [...]} + autogalaxy: {...} + autolens: {...} + autolens_test: {directory: autolens_workspace_test, chain: [...]} + euclid: {...} + howtolens: {...} # <- no autocti, no autocti_test +``` + +So `pyauto-heart smoke autocti` cannot work, and neither can a local smoke run of +`autocti_workspace_test` β€” the only way to exercise CTI smoke is to push and let +CI do it. That is a slow loop for the repo group that has just acquired two smoke +suites. + +## Why it matters now + +As of 2026-08-24 there are **two** CTI smoke surfaces: + +- `autocti_workspace_test` β€” its long-standing suite (3 scripts, ~20 s). +- `autocti_workspace` β€” new as of autocti_workspace#28 (3 curated scripts, + ~132 s cold), the repo's first CI. + +Both run in CI through PyAutoHeart's reusable `smoke-tests.yml`. Neither can be +run through Heart's *local* runner, so the Brain/Heart local loop has a blind +spot exactly where new coverage just landed. + +## Work + +1. **Add `PyAutoCTI: autocti` to `smoke.import_names`.** The block's docstring + calls it "the repo -> import-package map the preflight proves", so the + preflight cannot currently prove a CTI environment at all. +2. **Add the two workspace entries** with the correct chain + (`[PyAutoNerves, PyAutoFit, PyAutoArray, PyAutoCTI]` β€” matching what both + repos' CI callers declare; autocti does **not** depend on autogalaxy/autolens): + ```yaml + autocti: {directory: autocti_workspace, chain: [PyAutoNerves, PyAutoFit, PyAutoArray, PyAutoCTI]} + autocti_test: {directory: autocti_workspace_test, chain: [PyAutoNerves, PyAutoFit, PyAutoArray, PyAutoCTI]} + ``` +3. **Handle arcticpy.** This is the real design question, and the reason this is + not a two-line config edit. `import autocti` hard-requires arcticpy, which is + not a pip dependency: source-only C++ sdist, needs `libgsl-dev` + a toolchain, + and its own requirements downgrade numpy below 2.0. In CI this is solved β€” + `PyAutoHeart/.github/actions/install-arcticpy` owns the canonical recipe and + the single `arcticpy==2.6` pin, and the workspace callers pass `arcticpy: true`. + A **composite action cannot be invoked from `heart/smoke.py`**, so the local + runner needs an equivalent. Decide deliberately between: + - factoring the recipe into a shell script that both the action and + `smoke.py` call (keeps one owner, adds a file); + - a small Python leg in `smoke.py` that mirrors it (risks the exact + divergence the action was created to end β€” the recipe had drifted into four + copies before 2026-08-24); + - a per-workspace `arcticpy: true` flag in the `smoke:` block that + `smoke.py` honours. + + **Whatever is chosen, there must remain exactly one place the recipe and the + `2.6` pin live.** Re-creating a second copy would undo PyAutoHeart#170. +4. **Verify by actually running it** β€” prepare a CTI environment through the + local runner and run both suites, not just "the config parses". + +## The recipe, for reference (verified 2026-08-24 by building it) + +```bash +sudo apt-get install -y libgsl-dev +pip install --upgrade pip setuptools wheel # BUILD deps: --no-build-isolation +pip install numpy cython # will not supply these +pip install scipy matplotlib # RUNTIME deps --no-deps suppresses +pip install arcticpy==2.6 --no-build-isolation --no-deps +python -c "import arcticpy; from importlib.metadata import version; print(version('arcticpy'))" +``` + +Two traps that cost time if rediscovered: `--no-deps` suppresses arcticpy's +*runtime* imports too (`arcticpy/read_noise.py` imports `scipy` **and** +`matplotlib`, and `__init__.py` imports it), and **arcticpy exposes no +`__version__` attribute** β€” `arcticpy.__version__` raises `AttributeError` on a +perfectly healthy install. + +## Context + +`PyAutoMind/complete/2026/08/arcticpy-install-standardisation.md` β€” why the +recipe has one owner and what breaks when it does not. diff --git a/draft/maintenance/ci/wiki_currency_check_version_gate.md b/draft/maintenance/ci/wiki_currency_check_version_gate.md new file mode 100644 index 00000000..2a365d12 --- /dev/null +++ b/draft/maintenance/ci/wiki_currency_check_version_gate.md @@ -0,0 +1,92 @@ +# wiki-currency's --check-version gate rots on every library main merge + +Type: maintenance +Target: autocti_assistant +Repos: +- @autocti_assistant +Difficulty: medium +Autonomy: supervised +Priority: normal +Status: formalised +Filed: 2026-08-24 + +`wiki-currency` went red on `autocti_assistant` main and was fixed on 2026-08-24 +by regenerating `wiki/core/api_audit_baseline.json` (autocti_assistant#24, PR +#23). That fix is correct but **temporary**: the same red will return, and the +reason is structural, not incidental. + +## The structural problem + +`--check-version` compares a hash of the **entire public API surface** of +`autonerves`, `autoarray`, `autofit`, `autocti` and `autocti.plot` against a +committed baseline. The assistant documents almost none of that surface. + +Measured at the time of the fix β€” the drift that turned the repo red was: + +``` +autoarray 120 -> 121 + InterpolatorDelaunayNN, validate - TransformerNUFFTPyNUFFT +autofit 149 -> 159 + AbstractClipper, AbstractScaler, ApproxUpdater, + ClipperNone, ClipperPriorBox, DynamicUpdater, + FactorUpdater, NSS, ScalerNone, ScalerPriorWidth, + SimplerUpdater + - database +``` + +**Not one of those 14 symbols is cited anywhere in `wiki/`, `skills/` or +`modes/`.** `--scope all` β€” which audits exactly the symbols the docs *do* cite +β€” reported "All cited symbols resolve cleanly. No drift detected." throughout. +`autonerves`, `autocti` and `autocti.plot` were byte-identical. + +So a check whose job is "are the docs current?" went red because eleven unrelated +sampler-clipper classes were exported from autofit. + +The workflow installs the stack from the libraries' **`main` source clones** (not +a release β€” see the note below), so the clock is every merge into autofit or +autoarray `main` that touches an `__init__` export. That is fast. The new +baseline should be expected to rot within weeks. + +A check that goes red on a schedule nobody controls, for reasons that never +affect the thing it gates, trains reviewers to ignore it β€” and this repo's PRs +already opened red for over a month. + +## The decision to make + +Two coherent options; **this task is to choose one deliberately and implement +it**, not to guess: + +1. **Gate `--check-version` on removals only.** A symbol *disappearing* can break + a doc; a symbol *appearing* cannot. Report additions as informational, fail + only on removals from the surface. Keeps a cheap tripwire for the case that + actually matters. Note this still would not have caught the real risk here β€” + `TransformerNUFFTPyNUFFT` and `database` were both removed and neither was + cited, so even removals produce false reds; consider gating on + *removals of cited symbols*, which is what `--scope all` already computes. +2. **Accept that `--scope all` subsumes it as a gate.** Demote `--check-version` + to informational (still printed, still useful context in the report), and let + `--scope all` be the thing that can fail the workflow. Simplest, and the + check it leaves is the one with a direct causal link to doc correctness. + +Option 2 is the leaner one and is probably right; option 1 is defensible if a +whole-surface tripwire is wanted for release-time invocations +(`workflow_call` with `stack_version` set), where the surface really is the +contract. Consider keeping the strict behaviour for the pinned-release path and +relaxing only the native PR/dispatch path. + +Whichever is chosen, the baseline-regeneration story should be documented in +`skills/ac_audit_skill_apis.md` so the next person hitting a red knows whether +regenerating is the right response or a papering-over. + +## Do not "fix" this by pinning to a released stack + +Already considered and rejected on 2026-08-24: autocti's PyPI release is the +pre-resurrection `2024.11.13.2`, so pinning would grade today's docs against an +API that predates the work they describe β€” vacuously green, worse than noisily +red. The workflow's own install-step comment says as much. + +## Context worth reading first + +`PyAutoMind/complete/2026/08/wiki-currency-baseline-drift.md` β€” the full +investigation, including the fact that the drift report used to print +`stack_version: latest released` when the native path actually builds from +`main` source clones. That mislabel is fixed, and the report now records each +source tree's short SHA, so a future red is diagnosable from the artifact alone.