diff --git a/active.md b/active.md index b3493fb1..5f046002 100644 --- a/active.md +++ b/active.md @@ -2,6 +2,7 @@ ## pix-prodigy-gpu-compat - issue: https://github.com/PyAutoLabs/autolens_workspace_developer/issues/125 +- prompt: active/pixelized_prodigy_laptop_gpu_phase_1_compatibility.md - pr: https://github.com/PyAutoLabs/autolens_workspace_developer/pull/126 (OPEN, mergeable) - session: codex (phase 1) -> claude 2026-08-11 evening (n_starts control + phase 2) - status: workspace-dev — phase 1 and phase 2 COMPLETE 2026-08-13, all 13 cells landed, PR #126 ready for review @@ -60,14 +61,3 @@ - artifacts-are-laptop-only: Actions artifact downloads are blocked from cloud/mobile sessions (egress policy 403s `productionresultssa2.blob.core.windows.net` on CONNECT) — this is what stopped the cloud session finishing the ingest. Both wiki drift reports were captured to `~/.pyauto-heart/release_20260807_wiki_drift/` while on the laptop. - do-not: do NOT use the nightly driver for a manual release — AUTONOMY.md forbids converting a manual release into the scheduled-nightly exception. - repos-none-claimed: this entry claims NO repos — deliberately on one line, NOT as 2-space ` - Repo` bullets, because `worktree_check_conflict` treats any such bullet as a live claim. - -## power-law-omega-convergence -- issue: https://github.com/PyAutoLabs/autolens_profiling/issues/125 -- prompt: active/power_law_omega_convergence.md -- session: chatgpt-work -- status: research -- validation: initial term-count convergence sweep complete; full accuracy/cost/prior/likelihood grid pending -- finding: `component.power-law.series-vs-hyp2f1-divergence` -- repos: - - autolens_profiling: research/power-law-omega-convergence - diff --git a/active/add_a_numerical_hazard_profiling_package_to.md b/active/add_a_numerical_hazard_profiling_package_to.md deleted file mode 100644 index 231e309e..00000000 --- a/active/add_a_numerical_hazard_profiling_package_to.md +++ /dev/null @@ -1,207 +0,0 @@ -# Add a numerical-hazard profiling package to autolens_profiling - -Type: feature -Target: workspaces -Repos: -- autolens_profiling -Difficulty: large -Autonomy: supervised -Priority: normal -Status: formalised - -Create a new first-class package in `@autolens_profiling` under `misc/`, with -subfolders, that profiles model components — and their interaction with the -linear solver — for the numerical properties that determine how a likelihood -surface behaves under sampling. - -This is scaffolding work. Build the capability and the results convention; do -not generate the full result set in this task (it will be re-run in -autolens_profiling once the package exists). The one exception is the written -summary described under "Seed result" below. - -## Two tiers (structure) - -Hazards divide by whether they need a dataset, and that division follows the -repo's existing layout law (`AGENTS.md`: dataset-first, task-second; `misc/` -holds each task's shared framework): - -- **Tier 1 — component hazards.** Light/mass profiles and lensing calculations, - evaluated with no likelihood and no data. Dataset-agnostic, so the framework - and these checks live in `scripts/misc/hazards/`. -- **Tier 2 — likelihood hazards.** Everything wrapped on top of that: the linear - algebra (inversion, NNLS, regularization), residuals and chi-squared. These - are dataset-specific and live in `scripts//hazards/` — - `scripts/imaging/hazards/` first, later `interferometer/` and `point_source/`. - -The linear algebra is therefore **not** its own axis; it is lumped in with the -data-specific tier, because it only exists inside a full likelihood function. -This is forced rather than stylistic: the conditioning floors are absolute -constants added to matrices whose entries scale as (flux/noise)², so their -effective strength cannot be evaluated without a dataset. - -The hazard analysis must run in both modes — on the lensing calculation alone, -and on the same components encased in a full likelihood function. - -## Why this is needed - -Downstream profiling tasks measure likelihood evaluation and gradient -performance for samplers. Those measurements are uninterpretable without knowing -where the surface is non-smooth: a flat plateau, an active-set kink or a -non-finite derivative changes sampler behaviour far more than a few percent of -evaluation time does. The organism currently has no systematic record of where -those sites are, so each investigation rediscovers them by hand. - -An ad-hoc audit of three components (MGE lens light, power-law mass, external -shear) turned up fourteen such sites, including one that silently changes a -scientific result. That audit is the specification for what this package should -detect automatically, and is summarised in the artifact -https://claude.ai/code/artifact/9c6cc3b0-4652-47c4-aa81-8abccb350cd3 - -## What to build - -Extend coverage to **all light and mass profiles and their combinations**, on -**both the JAX and numpy backends**. The natural matrix is -`component x backend x hazard class`, and the package should make adding a new -profile or a new hazard class a small, local change rather than a new script. - -Support these hazard classes as the initial taxonomy — each derived from a real -finding, none speculative. The tier tag says where the check lives: - -- **Saturating reparametrisations.** *(tier 1)* A clamp that maps an unbounded - region of parameter space onto one value, producing an exactly flat likelihood - with zero gradient. The `ell_comps` magnitude clamp is the reference case. -- **Active-set kinks.** *(tier 2)* The non-negative linear solver pins basis - components at exactly zero, so the likelihood is piecewise-smooth and a pinned - component contributes no gradient. This is the core of the linear-solver - interaction, and only exists inside a full likelihood. -- **Conditioning floors.** *(tier 2)* Absolute values added to a curvature-matrix - diagonal to make an ill-conditioned solve tractable, whose effective strength - depends on the data's flux and noise scale rather than being scale-free — which - is precisely why they cannot be measured without a dataset. -- **Non-finite value sites.** *(tier 1)* Parameter values inside the prior at - which the model returns NaN or inf — including exact prior boundaries, which - samplers do reach. -- **Non-finite gradient sites.** *(tier 1)* Points where the value is finite and - correct but the derivative is not, typically a square root evaluated at zero. - These are invisible to any check that only inspects likelihood values. -- **Backend divergence.** *(both tiers)* Places where the numpy and JAX paths - implement different approximations of the same quantity and disagree by more - than round-off. Report as relative error against the more exact path, as a - function of the parameter that drives the divergence. Tier 1 covers profile - math (e.g. `PowerLaw`'s exact `hyp2f1` vs its 20-term series); tier 2 covers - the solver (active-set FNNLS vs interior-point PDIP). -- **Structural degeneracies.** *(tier 2)* Directions in which a parameter stops - affecting the likelihood as another approaches a prior edge — funnels that - waste live points and defeat mass-matrix adaptation. - -Each check should report the parameter region affected, the fraction of prior -volume it covers under that component's default priors, and which backends it -applies to. Prior-volume weighting is what separates a real risk from a curiosity -and should be built in from the start, not added later. - -## Results convention - -Write results into the repo's existing `results/` folder, following the style -already used there for overall results, so they persist as organism memory. -Two consumers matter and should shape the format: - -- **Downstream tasks** that profile likelihood and gradient performance read - these results programmatically, so emit a machine-readable record alongside - any human-readable summary. -- **A human** reading the results months later needs the finding, its code - anchor, and how it was measured — a bare number is not enough. - -Keep the record keyed so a re-run can be compared against the previous one; the -point of storing them is to notice when a hazard appears, moves or is fixed. - -## Seed result - -Write one good summary of the `ell_comps` clamp work into the `results/` folder -as part of this task, in the convention the package establishes. It is the -worked example that shows the format carrying real content, and the finding is -already fully characterised: - -- `convert.py:71-77` clamps the magnitude at `0.999`, pinning the axis ratio at - `q = 5.0025e-4` for every `|ell_comps| >= 1`. Present since 2020-11-08. The - region is a finite, very low, exactly flat likelihood — never NaN — so - samplers were never rejecting it, only wasting effort in it. -- The constructor guard added in issues #440/#568 (`profiles/validate.py:145-167`) - rejects the region on numpy via `FitException` to the resample sentinel, but - returns early for tracers, and `Fitness.call`'s JAX branch has no exception - handling — so under gradient-based sampling the plateau is unchanged. -- Prior volume beyond the unit circle: 0.22% under the default - `TruncatedGaussian(0, 0.3)` per component, 5.1% at sigma 0.5, 21.4% under - `Uniform(-1, 1)` per component. - -## Subject scope vs. where code lives - -Refined after an adversarial plan review (Codex, 2026-08-13). The two tiers stay, -but as **metadata on a finding** rather than as the thing deciding where a -detector's code lives: - -- **All reusable detectors live in `scripts/misc/hazards/`**, whatever their - subject — detector logic is never duplicated per dataset. -- **`scripts//hazards/` holds dataset-specific cells and fixtures only.** - -A finding declares one of three subject scopes: `component` (a profile, no data), -`matrix` (synthetic matrices, no dataset), `likelihood` (a real dataset). The -middle one exists because `reconstruction_positive_only_from` takes `data_vector` -and `curvature_reg_matrix` directly — a dataset is needed to judge a floor's -**scientific relevance**, not to **detect the mechanism**. The linear algebra is -still tied to the whole likelihood function where it *means* something, which is -the `likelihood` subject in `scripts/imaging/hazards/`. - -## Risk is typed, not one universal predicate - -Each hazard class declares its own risk basis. Prior mass is one of four, not the -contract for all: - -- `prior_mass` — finite-measure regions; report MC estimate + sample count + CI. -- `epsilon_neighbourhood` — measure-zero sites; report prior mass of an - **explicit** ε-ball with ε stated. -- `reachability` — sites reached only via construction or grid alignment. -- `error_curve` — continuous discrepancies, as a function of the driving parameter. - -A uniform predicate would be wrong for most of the taxonomy: a non-finite -*gradient* site has measure zero, so MC reports 0% whether or not it exists, and -the `0.99999` clamp spans only ~5e-6 of ellipticity magnitude, which random prior -sampling would never find. - -## Reachability is recorded, not assumed - -`EllProfile.__init__` calls `validate_ell_comps` at construction -(`geometry_profiles.py:237`), so the `ell_comps` clamp is **not reachable on the -public numpy path at all** — while JAX tracing skips the guard and reaches it. -Every finding therefore records `code_exists`, `reachable_via`, `blocked_by` -(with the guard's anchor) and `affects_science` as distinct states. - -## Phasing - -Sized `large`. Phase 1 is a **vertical slice** — one case per subject shape, so -the schema is proven against all of them before the scaffolding is built: - -- **Phase 1 (this prompt).** (1) `component`/saturation — the `ell_comps` clamp; - (2) `component`/non-finite-gradient — the radial `sqrt` at r=0, the measure-zero - case; (3) `component`/backend-divergence — `PowerLaw` `hyp2f1` vs the 20-term - series; (4) `matrix`/conditioning-floor — the `1.0e-3` curvature-diagonal add - from synthetic matrices. Plus the minimum record/report schema those four need, - the regenerated seed result, a `--check` regression mode, and - `hazards_index.json` as the consumer-facing artifact. -- **Phase 2** (`draft/feature/workspaces/hazard_profiling_likelihood_tier.md`). - The `likelihood` subject under `scripts/imaging/hazards/` — active-set kinks, - the floors judged against real flux/noise, structural degeneracies, solver - backend divergence — plus breadth across the profile registry, and a named - first consumer of `hazards_index.json`. - -Neither phase runs the full `component x backend` matrix; that is deferred by -design (see the top of this prompt). - -## Boundary - -All work lands in `@autolens_profiling`. This task creates the package, its -structure and its results convention, plus the one seed summary. It does not -touch or fix any of the findings in the source libraries — each of those is its -own task, filed separately. Source-library file paths cited above are evidence -for the seed summary, not work to be done here. - - diff --git a/active/power_law_omega_convergence.md b/active/power_law_omega_convergence.md deleted file mode 100644 index 54c382ca..00000000 --- a/active/power_law_omega_convergence.md +++ /dev/null @@ -1,20 +0,0 @@ -# Bound PowerLaw omega-series accuracy and cost - -Type: research -Target: autolens_profiling -Repos: -- autolens_profiling -Difficulty: medium -Autonomy: supervised -Priority: high -Status: issued -Source: `component.power-law.series-vs-hyp2f1-divergence` -Issue: https://github.com/PyAutoLabs/autolens_profiling/issues/125 - -The JAX PowerLaw deflection path uses a fixed 20-term Tessore–Metcalf omega series while NumPy uses SciPy hyp2f1. The stable detector measures a reachable, science-affecting relative deflection error of 0.297 at factor 0.99. - -Map accuracy and cost over public slope, ellipticity factor, angular coordinates, term policy, and actual prior reachability. Exercise eager, jit, reverse-mode grad, and vmap. Include cold-compile and warm-runtime cost plus at least one complete likelihood sensitivity probe. - -A constant term-count bump is not an adequate answer: the initial sweep shows ordinary factors converge quickly but factor 0.99 can need more than 1280 terms, depending on slope. Evaluate statically binned lax.cond/lax.switch scans, and reject dynamic-loop candidates that lose reverse-mode differentiation. - -Retain the stable finding ID. Do not modify PyAutoGalaxy in this task. Open a bounded source issue only if the evidence identifies a defensible policy that improves accuracy without imposing worst-case cost on ordinary galaxy shapes. diff --git a/complete/2026/08/power-law-omega-convergence.md b/complete/2026/08/power-law-omega-convergence.md new file mode 100644 index 00000000..12e4b326 --- /dev/null +++ b/complete/2026/08/power-law-omega-convergence.md @@ -0,0 +1,33 @@ +## power-law-omega-convergence +- issue: https://github.com/PyAutoLabs/autolens_profiling/issues/125 +- completed: 2026-08-14 +- workspace-pr: https://github.com/PyAutoLabs/autolens_profiling/pull/126 +- merge-commit: ee8a34c51d1fc3fc8f1913964fff9c73eeff0b5a +- summary: Bounded the fixed 20-term JAX PowerLaw omega recurrence across the packaged slope and ellipticity priors, measured its JAX transformation and CPU cost, and carried the backend difference through a complete 7x7 `FitImaging` fixture. The stable finding remains persistent profiling evidence. +- validation: GitHub Actions lint run 31812775745 succeeded at the exact merged PR head across ruff lint/format, README idempotence, 41 tests, links, and all section smoke tests. The one-shot evidence run 31811929415 also succeeded with JAX 0.10.2 on CPU and the full PyAuto source stack. +- evidence: The 20-term angular series exceeds `1e-4` relative error over 0.05736 absolute default-prior mass. Covering the live 0.999 ellipticity clamp at that tolerance needs 10,240 terms. A static binned `lax.switch` policy retains reverse-mode differentiation and `vmap`, but is 125.3x slower than 20 terms at the clamp; the bounded complete-likelihood grid moved by at most 0.005575 log-likelihood units. +- decision: No PyAutoGalaxy source issue was opened. The tested candidate did not meet the prompt's requirement to improve accuracy without imposing worst-case cost on ordinary shapes, and the bounded likelihood probe did not establish materiality sufficient to justify that cost. +- release: not performed; this merged profiling research changes no packaged library behavior. + +## Original prompt + +# Bound PowerLaw omega-series accuracy and cost + +Type: research +Target: autolens_profiling +Repos: +- autolens_profiling +Difficulty: medium +Autonomy: supervised +Priority: high +Status: issued +Source: `component.power-law.series-vs-hyp2f1-divergence` +Issue: https://github.com/PyAutoLabs/autolens_profiling/issues/125 + +The JAX PowerLaw deflection path uses a fixed 20-term Tessore–Metcalf omega series while NumPy uses SciPy hyp2f1. The stable detector measures a reachable, science-affecting relative deflection error of 0.297 at factor 0.99. + +Map accuracy and cost over public slope, ellipticity factor, angular coordinates, term policy, and actual prior reachability. Exercise eager, jit, reverse-mode grad, and vmap. Include cold-compile and warm-runtime cost plus at least one complete likelihood sensitivity probe. + +A constant term-count bump is not an adequate answer: the initial sweep shows ordinary factors converge quickly but factor 0.99 can need more than 1280 terms, depending on slope. Evaluate statically binned lax.cond/lax.switch scans, and reject dynamic-loop candidates that lose reverse-mode differentiation. + +Retain the stable finding ID. Do not modify PyAutoGalaxy in this task. Open a bounded source issue only if the evidence identifies a defensible policy that improves accuracy without imposing worst-case cost on ordinary galaxy shapes. diff --git a/complete/index.md b/complete/index.md index c5d2c36f..2529ae19 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. -987 records across 7 buckets. +988 records across 7 buckets. ## Highlights @@ -29,18 +29,17 @@ _(curate hard-won records here — survives regeneration.)_ - [autohands-firewall-allowlist](2026/08/autohands-firewall-allowlist.md) — auto-closed by the merge - [autolens-multiplane-redshift-warning](2026/08/autolens-multiplane-redshift-warning.md) - [autolens-tracer-validation-guards](2026/08/autolens-tracer-validation-guards.md) +- [border-relocator-backend-parity](2026/08/border-relocator-backend-parity.md) — Isolated the native NumPy/JAX likelihood gap to mathematically non-unique PCA axes for a near-isotropic border… +- [border-relocator-degenerate-pca](2026/08/border-relocator-degenerate-pca.md) — Stabilized near-isotropic border PCA axes with a deterministic axis-aligned branch at a scale-aware eigenvalue… +- [circular-ell-comps-image-gradient](2026/08/circular-ell-comps-image-gradient.md) — Replaced the Sersic image path's Cartesian-to-polar ellipticity conversion with an algebraically equivalent Ca… - [compile-axis-campaign-coverage](2026/08/compile-axis-campaign-coverage.md) - [compile-axis-triage-drift](2026/08/compile-axis-triage-drift.md) - [compile-warm-baseline-dashboard](2026/08/compile-warm-baseline-dashboard.md) - [conductor-discovery-lifecycle-split](2026/08/conductor-discovery-lifecycle-split.md) — closed on merge +- [correct-circular-sersic-hazard](2026/08/correct-circular-sersic-hazard.md) — Corrected the circular Sersic hazard in the actual fitted ell_comps coordinates. The q-angle structural findin… - [covariance-interpolator-rng-seed](2026/08/covariance-interpolator-rng-seed.md) — auto-closed by the merge -- [curvature-diag-doc-config-drift](2026/08/curvature-diag-doc-config-drift.md) — Aligned PyAutoArray's curvature-diagonal helper and Settings docs with the packaged 1e-3 default; numerical behavior unchanged. -- [correct-circular-sersic-hazard](2026/08/correct-circular-sersic-hazard.md) — Resolved a q-angle false positive and isolated the real JAX non-finite gradient at the Cartesian ell_comps origin. -- [circular-ell-comps-image-gradient](2026/08/circular-ell-comps-image-gradient.md) — Made the circular Sersic ell_comps origin differentiable without changing NumPy image values or the existing clamp. -- [curvature-floor-scale-aware-prototype](2026/08/curvature-floor-scale-aware-prototype.md) — Corrected the conditioning denominator to the entries actually floored and found no evidence for changing the production default from this fixture. -- [positive-solver-divergence-diagnosis](2026/08/positive-solver-divergence-diagnosis.md) — Proved NumPy FNNLS and JAX PDIP agree on identical systems; the native gap originates in backend system construction. -- [border-relocator-backend-parity](2026/08/border-relocator-backend-parity.md) — Isolated the native NumPy/JAX likelihood gap to non-unique PCA axes in near-isotropic border relocation and validated a deterministic-axis remedy. -- [border-relocator-degenerate-pca](2026/08/border-relocator-degenerate-pca.md) — Stabilized near-isotropic border PCA axes and restored NumPy/JAX likelihood parity without changing solver behavior. +- [curvature-diag-doc-config-drift](2026/08/curvature-diag-doc-config-drift.md) — Aligned PyAutoArray's curvature-diagonal helper and Settings docs with the packaged 1e-3 default; numerical be… +- [curvature-floor-scale-aware-prototype](2026/08/curvature-floor-scale-aware-prototype.md) — Corrected the Phase 2 conditioning denominator to the curvature entries actually floored. The absolute policy … - [database-guide-sample-weight-threshold](2026/08/database-guide-sample-weight-threshold.md) — `guides/results/database/start_here.py` ran its own Nautilus fits capped at n_like_max=300 then indexed sample… - [delaunay-nn-laptop-gpu-profile](2026/08/delaunay-nn-laptop-gpu-profile.md) — Added the CPU, RTX 2060, and A100 DelaunayNN profiling sweep and result artifacts at matched PyAuto source rev… - [dep-floors-source-chain-ci](2026/08/dep-floors-source-chain-ci.md) @@ -77,15 +76,17 @@ _(curate hard-won records here — survives regeneration.)_ - [normalise-auto-simulate-guard-idiom](2026/08/normalise-auto-simulate-guard-idiom.md) - [notebook-setup-notebook-regen-drift](2026/08/notebook-setup-notebook-regen-drift.md) - [nufft-parity-full-datasets](2026/08/nufft-parity-full-datasets.md) -- [numerical-hazard-profiling](2026/08/numerical-hazard-profiling.md) — Phase 1 established the reusable detector framework, five persisted findings, regression checking, and the consumer-facing hazard index. +- [numerical-hazard-profiling](2026/08/numerical-hazard-profiling.md) — Phase 1 established the reusable numerical-hazard profiling framework, typed risk measurements, reachability a… - [persist-smoke-environments](2026/08/persist-smoke-environments.md) — Made smoke dependency environments durable and isolated per library and Python version, with version-handshake… - [plot-array-stale-kwargs](2026/08/plot-array-stale-kwargs.md) - [point-source-defaults-campaign](2026/08/point-source-defaults-campaign.md) — took the point-source likelihood options from "several undocumented - [point-source-light](2026/08/point-source-light.md) — Added standard and linear point-source light profiles with total-flux normalization and oversampled PSF convol… - [pointmass-smbh-jax](2026/08/pointmass-smbh-jax.md) — `al.mp.PointMass` and `al.mp.SMBH` failed every JAX-mode fit (user report on 2026.8.4.1). Two independent bugs… - [pointmass-smbh-jax-ci](2026/08/pointmass-smbh-jax-ci.md) — CI JAX coverage for the PointMass/SMBH regression class (follow-up to PyAutoGalaxy#553/#554). `misc/profiles_j… +- [positive-solver-divergence-diagnosis](2026/08/positive-solver-divergence-diagnosis.md) — Proved NumPy FNNLS and JAX PDIP agree to 1.715e-9 on identical systems (2.468e-13 tightened). The 8.989e-3 nat… - [potential-correction-env-declaration](2026/08/potential-correction-env-declaration.md) - [potential-correction-validation](2026/08/potential-correction-validation.md) +- [power-law-omega-convergence](2026/08/power-law-omega-convergence.md) — Bounded the fixed 20-term JAX PowerLaw omega recurrence across the packaged slope and ellipticity priors, meas… - [pr-ci-for-own-test-suite](2026/08/pr-ci-for-own-test-suite.md) - [profile-validation-resample-recovery](2026/08/profile-validation-resample-recovery.md) — Shipped the approved narrow compatibility fix: invalid profile construction is now both a direct `ValueError` … - [purge-autocti-dataset-1d-overview](2026/08/purge-autocti-dataset-1d-overview.md) — no GitHub issue — the leftover from `autocti-util-dataset-export`, executed on direct human instruction "do th… @@ -95,9 +96,9 @@ _(curate hard-won records here — survives regeneration.)_ - [reconcile-upstream-repo-mode](2026/08/reconcile-upstream-repo-mode.md) - [registry-integrity-check](2026/08/registry-integrity-check.md) - [regularization-jax-gradient-gaps](2026/08/regularization-jax-gradient-gaps.md) -- [resolve-border-relocator-hazard](2026/08/resolve-border-relocator-hazard.md) — Removed the resolved backend-divergence artifact after deterministic border PCA restored NumPy/JAX likelihood parity. -- [resolve-curvature-floor-doc-drift](2026/08/resolve-curvature-floor-doc-drift.md) — Reconciled the resolved curvature-floor documentation finding while preserving its stable regression identity. -- [resolve-sersic-ell-comps-gradient](2026/08/resolve-sersic-ell-comps-gradient.md) — Removed the resolved Sersic gradient evidence after the Cartesian source fix while retaining the stable detector. +- [resolve-border-relocator-hazard](2026/08/resolve-border-relocator-hazard.md) — Reconciled the likelihood hazard instrument after the border-relocator source fix. The resolved backend-diverg… +- [resolve-curvature-floor-doc-drift](2026/08/resolve-curvature-floor-doc-drift.md) — Reconciled the curvature-floor documentation finding after PyAutoArray#444. The detector now requires both run… +- [resolve-sersic-ell-comps-gradient](2026/08/resolve-sersic-ell-comps-gradient.md) — Reconciled the numerical-hazard evidence after the Sersic Cartesian-radius fix. The stable conditional detecto… - [samplers-surface-autolens-tiers](2026/08/samplers-surface-autolens-tiers.md) — the samplers faculty's SamplerSurface now scans the findings - [script-title-underline-off-by-one](2026/08/script-title-underline-off-by-one.md) - [simulator-util-to-af-ex](2026/08/simulator-util-to-af-ex.md) — moved the four 1D-Gaussian simulator helpers out of the duplicated diff --git a/dashboard.md b/dashboard.md index 1d0f5d92..c86522af 100644 --- a/dashboard.md +++ b/dashboard.md @@ -8,7 +8,7 @@ Tasks only — the organism's health lives with the Heart (`/health`), not here. | Where | Count | |-------|------:| -| [In flight](#in-flight) (`active/`) | 9 | +| [In flight](#in-flight) (`active/`) | 7 | | [Parked](#parked) (`parked.md`) | 6 | | [Planned](#planned) (`planned.md`) | 7 | | [Backlog](#backlog) (`draft/`) | 135 | @@ -51,13 +51,11 @@ Live on GitHub: [open issues](https://github.com/search?q=org%3APyAutoLabs+is%3A Issued — each has an open GitHub issue and usually a branch. The full record for each is in [`active.md`](active.md). -- [Add a numerical-hazard profiling package to autolens_profiling](active/add_a_numerical_hazard_profiling_package_to.md) - [First benchmark calibration campaign — run the 4 assistant benchmarks](active/benchmark_calibration_runs.md) - [Address ECEB editorial comments on ECLIPSE-C](active/euclid_eceb_editorial_revision.md) - [JAX-native posterior sampler wave — ranked shortlist from the 2026-07-16](active/jax_native_posterior_sampler_wave.md) — [issue #113](https://github.com/PyAutoLabs/autolens_workspace_developer/issues/113) — PARKED 2026-07-24 — stage (a) POSITIVE: warm-started gradient SMC SAMPLES (acc 0.80->0.17 across tempering, einstein_radius… - [Remove standalone matplotlib-inline comments](active/matplotlib_inline_standalones.md) -- [Pixelized Prodigy laptop-GPU compatibility across four meshes](active/pixelized_prodigy_laptop_gpu_phase_1_compatibility.md) -- [Bound PowerLaw omega-series accuracy and cost](active/power_law_omega_convergence.md) — [issue #125](https://github.com/PyAutoLabs/autolens_profiling/issues/125) — research +- [Pixelized Prodigy laptop-GPU compatibility across four meshes](active/pixelized_prodigy_laptop_gpu_phase_1_compatibility.md) — [issue #125](https://github.com/PyAutoLabs/autolens_workspace_developer/issues/125) — workspace-dev — phase 1 and phase 2 COMPLETE 2026-08-13, all 13 cells landed, PR #126 ready for review - [PyAutoReduce validation: slacs1430+4105 ACS reduction vs trusted legacy dataset](active/pyautoreduce_slacs1430_acs_comparison.md) - [Research profiling experiment in the autolens_profiling repo](active/research_profiling_experiment_in_the_autolens_pr.md) — [issue #82](https://github.com/PyAutoLabs/autolens_profiling/issues/82)