diff --git a/active.md b/active.md index fb25a165..fe8004a7 100644 --- a/active.md +++ b/active.md @@ -1,5 +1,25 @@ # Active Tasks +## phase5-smoke-ordered-trap-scripts +- issue: https://github.com/PyAutoLabs/autocti_workspace/issues/27 +- issued: 2026-08-24 +- prompt: active/phase5_smoke_reenable_ordered_trap_scripts.md +- status: workspace-dev +- worktree: ~/Code/PyAutoLabs-wt/phase5-smoke-ordered-trap-scripts +- repos: + - autocti_workspace: feature/phase5-smoke-ordered-trap-scripts +- summary: | + CTI epic Phase 5. PR autocti_workspace#28 open, CI running. The prompt's + premise was wrong: autocti_workspace has no smoke_tests.txt and never had one + (no .github/, no config/build/, nothing deleted in history), so this creates + the repo's first CI rather than re-enabling anything — which also closes + pre-existing drift, since PyAutoHeart/config/repos.yaml already lists this + repo under `workspaces` with required checks "Smoke Tests" + "Navigator + Check". All nine modeling/start_here.py-class scripts verified running + bypassed against PyAutoFit 438f56fac; a curated three promoted (132s cold) + rather than all nine (~522s), per the repos' no-mass-promote convention. + Navigator Check deliberately left out of scope. + ## transformed-message-factor-gradient-unpack - issue: https://github.com/PyAutoLabs/PyAutoFit/issues/1501 (issued 2026-08-19) - issued: 2026-08-19 diff --git a/draft/test/autocti/phase5_smoke_reenable_ordered_trap_scripts.md b/active/phase5_smoke_reenable_ordered_trap_scripts.md similarity index 98% rename from draft/test/autocti/phase5_smoke_reenable_ordered_trap_scripts.md rename to active/phase5_smoke_reenable_ordered_trap_scripts.md index d0bd1ecc..df200333 100644 --- a/draft/test/autocti/phase5_smoke_reenable_ordered_trap_scripts.md +++ b/active/phase5_smoke_reenable_ordered_trap_scripts.md @@ -9,6 +9,7 @@ Autonomy: supervised Priority: normal Status: formalised Filed: 2026-08-24 +Issued: 2026-08-24 Epic: CTI resurrection — Phase 5 Re-homed from `draft/test/autofit/` by the filing session. Intake set diff --git a/complete/2026/08/arcticpy-install-standardisation.md b/complete/2026/08/arcticpy-install-standardisation.md new file mode 100644 index 00000000..df5f5d88 --- /dev/null +++ b/complete/2026/08/arcticpy-install-standardisation.md @@ -0,0 +1,256 @@ +- completed: 2026-08-24 +- issue: https://github.com/PyAutoLabs/PyAutoHeart/issues/170 +- prs: + - https://github.com/PyAutoLabs/PyAutoHeart/pull/171 (merged) — the canonical action + - https://github.com/PyAutoLabs/autocti_workspace_test/pull/18 (merged) + - https://github.com/PyAutoLabs/autocti_assistant/pull/22 (merged) + - https://github.com/PyAutoLabs/PyAutoCTI/pull/109 (merged) + - https://github.com/PyAutoLabs/autocti_workspace/pull/26 (merged) +- summary: | + One canonical Heart-owned arcticpy install — a composite action at + `PyAutoHeart/.github/actions/install-arcticpy`, holding the single + `arcticpy==2.6` pin — consumed by every CTI repo, replacing four divergent + shell copies. Four documented recipes fixed to match. Verified end-to-end: + the action builds and clocks charge through arctic on Python 3.12 and 3.13 + in CI, PyAutoCTI's lib-tests are green through it, and autocti_workspace_test + smoke is green through it. + +## Audit correction — the site list in the prompt was wrong + +The prompt flagged PyAutoCTI's own lib-tests CI as UNREAD and counted two copies. +Audited: `PyAutoCTI/.github/workflows/main.yml` is a *thin caller* of +`PyAutoHeart/.github/workflows/lib-tests.yml@main` and carries no recipe of its +own — but that reusable workflow carries **two** copies, one per job (`unittest`, +`unittest-nojax`). So there were **four** shell copies, not two: + +| # | site | had `setuptools wheel`? | +|---|------|---| +| 1 | `PyAutoHeart/.github/workflows/lib-tests.yml` job `unittest` | yes | +| 2 | `PyAutoHeart/.github/workflows/lib-tests.yml` job `unittest-nojax` | yes | +| 3 | `autocti_workspace_test/.github/scripts/smoke_install.sh` | no | +| 4 | `autocti_assistant/.github/workflows/wiki-currency.yml` | yes | + +`autocti_workspace` has no `.github/` at all — docs-only consumer. + +## Correction — smoke_install.sh was NOT one runner-image change from breaking + +The prompt described it as relying on the runner image's ambient `setuptools`. +It was not: Heart's `smoke-tests.yml` runs `pip install --upgrade pip setuptools +wheel` immediately before invoking the epilogue. The real defect was weaker but +still worth removing — the epilogue's correctness depended implicitly on a step +in a *different repository's* workflow, with nothing on either side stating it. +The canonical step is self-contained, so the coupling is gone rather than +merely documented. + +## Two things the specified recipe got wrong (found by building it, not reading it) + +1. **`--no-deps` suppresses arcticpy's RUNTIME dependencies too.** + `arcticpy/read_noise.py` does `from scipy.optimize import curve_fit` and + `import matplotlib as mpl`, and `__init__.py` imports `read_noise`. Installing + only the build deps leaves `import arcticpy` raising `ModuleNotFoundError: + No module named 'scipy'`. The prompt's prose called out matplotlib only. +2. **arcticpy exposes NO `__version__` attribute.** The assertion the prompt + specified — `import arcticpy; print(arcticpy.__version__)` — raises + `AttributeError` on a perfectly good install. The same broken command was + already documented in `autocti_assistant/skills/ac_setup_environment.md`, + i.e. the assistant would have told a user their healthy arcticpy was broken. + Use `importlib.metadata.version("arcticpy")`. + +Both were caught because the self-test was written and run, not assumed. Two +further API mistakes surfaced the same way: `add_cti` needs an `ac.CCD`, not an +`ac.CCDPhase` (else `AttributeError: fraction_of_traps_per_phase`), and +`parallel_roe` is not optional in practice (else `AttributeError: dwell_times`). + +## Verified + +- **Negative case reproduced**: with setuptools uninstalled the build dies at + `BackendUnavailable: Cannot import 'setuptools.build_meta'`. And a fresh + **Python 3.12 venv ships no setuptools at all** — checked directly — so the + omission was a real hazard, not a style nit. +- **Canonical recipe builds** on 3.11 and 3.12 locally, 3.12 and 3.13 in CI. +- **arctic actually clocks**: bright pixel 1000.0 -> 997.2389438265325, trail + [1.18249389, 0.77773508, 0.50869121, 0.33114622, 0.21469258] (decaying), + charge conserved to 5.8e-4. Byte-identical numbers locally and in CI. +- PyAutoCTI `unittest` (3.12, 3.13) and `unittest-nojax` green through the action. +- autocti_workspace_test `smoke` (3.12, 3.13) green through the action. + +## Caching decided with a measurement, not an assumption + +The prompt asked for before/after timings rather than an assumed win. GitHub's +per-step timings from the self-test run (32769526194, job `build (3.12)`): + +``` +Install GSL headers (apt-get) 15.9 s +Build deps (setuptools/wheel/numpy/cython) 9.0 s +Runtime deps (scipy/matplotlib) 9.9 s +Build and install arcticpy 2.6 16.8 s <- compile is ~14 s of this +Verify import 0.8 s + total ~52 s +``` + +**Recommendation: do not cache the wheel.** It would eliminate ~14 s, against +which `actions/cache` restore+save costs several seconds, and a stale key costs +more than no cache. The larger costs are `apt-get` (15.9 s) and the pip +downloads (18.9 s), neither addressed by caching the wheel. The premise that +"arcticpy compiles on every CI run" is true, but the compile turns out to be +cheap — arctic is a small C++ extension. If revisited, target `apt-get`. + +## Design note — why a composite action, and how consumers reference it + +PyAutoHeart had no `.github/actions/` before this. It is the right shape because +PyAutoHeart is **public**, so `uses: PyAutoLabs/PyAutoHeart/.github/actions/ +install-arcticpy@main` resolves from any consumer with no checkout of Heart — +the same reach and reference style the reusable workflows already have. A shell +script in Heart would have needed each consumer to fetch it first. + +`smoke_install.sh` is bash and cannot `uses:` an action, so the arcticpy install +moved OUT of the workspace epilogue into Heart's `smoke-tests.yml` behind a new +`arcticpy: true` input (default false, so every non-CTI caller is byte-identical). +That matches the precedent already in `lib-tests.yml`, which gates its arcticpy +step on `inputs.package == 'autocti'`. + +## The self-test, and why it exists + +`PyAutoHeart/.github/workflows/arcticpy-action.yml` + +`.github/scripts/arcticpy_smoke.py`. Because consumers reference the action at +`@main`, a recipe change would otherwise reach four repos with nothing having +exercised it. The self-test references the action by **local** path so it builds +the branch's version, and asserts a real CTI trail rather than "pip exited 0". +It is what caught both recipe bugs above. + +## Docs fixed + +`PyAutoCTI/AGENTS.md` §arcticpy (the note the other repos cite as canonical, and +the least complete — it omitted Cython *and* setuptools *and* the runtime deps), +`autocti_workspace/AGENTS.md`, `autocti_workspace_test/AGENTS.md`, and +`autocti_assistant/skills/ac_setup_environment.md` (whose broken +`arcticpy.__version__` verification is also fixed). All four now point at the +action as the recipe's single owner and the home of the pin. + +Note: the assistant's `.claude/skills/*.md` are symlinks into `skills/` (git +mode 120000) — confirmed on the branch; one edit covers both surfaces. + +## Original prompt + +# Standardise the arcticpy CI install across every CTI repo + +Type: maintenance +Target: pyautoheart +Repos: +- @PyAutoHeart +- @autocti_workspace_test +- @autocti_assistant +- @PyAutoCTI +- @autocti_workspace +Difficulty: medium +Autonomy: supervised +Priority: normal +Status: formalised +Filed: 2026-08-24 +Issued: 2026-08-24 + +`import autocti` hard-requires **arcticpy**, which is not a pip dependency: its +sdist is source-only (needs `libgsl-dev` + a C++ toolchain + Cython) and its own +requirements downgrade numpy below 2.0. Every CTI repo that runs CI therefore +carries its own copy of the install recipe. There is no single owner, the copies +have already **diverged in a way that matters**, and the recipe as documented is +incomplete for a clean environment. + +Make one canonical arcticpy install step, owned by the organ that owns the +reusable CI workflows, and have every CTI repo consume it. + +## The duplication today (verified by reading the files) + +- `autocti_workspace_test/.github/scripts/smoke_install.sh` — the install + epilogue for PyAutoHeart's reusable Smoke Tests workflow. +- `autocti_assistant/.github/workflows/wiki-currency.yml`, step "Install the + stack (source @ main, or a pinned release)" (~L120-138). Its own comment says + *"Recipe mirrors autocti_workspace_test/.github/scripts/smoke_install.sh"* — + copy-paste, acknowledged in a comment rather than factored out. +- `autocti_workspace/AGENTS.md` §arcticpy and + `autocti_assistant/skills/ac_setup_environment.md` document the same recipe + for humans/agents. `PyAutoCTI/AGENTS.md` is cited by both as holding the + canonical note plus a no-root header workaround — **not verified, PyAutoCTI + was not checked out for this prompt.** +- **To audit:** PyAutoCTI's own lib-tests CI must install arcticpy somehow too; + that site is unread here. Any other repo whose CI imports `autocti` counts. + +## The divergence that matters + +`wiki-currency.yml` runs `python -m pip install --upgrade pip setuptools wheel` +*before* the arcticpy build. `smoke_install.sh` does **not** — it installs only +`numpy cython` and relies on the runner image's ambient `setuptools`. + +`--no-build-isolation` means every build dependency must already be present, and +arcticpy does not declare them. So `smoke_install.sh` is one runner-image change +away from breaking, and Python 3.12+ venvs no longer ship setuptools by default. +This is a latent failure, not a style nit. + +## Verified build requirements (measured 2026-08-24, clean Ubuntu container) + +Built arcticpy 2.6 successfully from a bare Python 3.12 venv. Each missing build +dep failed the build with an error naming the next one: + +1. `setuptools` missing → build fails (`ModuleNotFoundError: setuptools`) +2. `Cython` missing → build fails (`ModuleNotFoundError: No module named 'Cython'`) +3. with both present → **builds and works** + +Working recipe: + +```bash +apt-get install -y libgsl-dev # g++/gcc/make already present on the image +pip install numpy scipy setuptools wheel Cython matplotlib +pip install arcticpy==2.6 --no-build-isolation --no-deps +``` + +`matplotlib` is a *runtime* import (`arcticpy/read_noise.py`), needed only +because `--no-deps` suppresses it; the CTI stack installs it anyway, so it is +not a build dep. Verified working end-to-end: `add_cti` on a single bright pixel +produced a correct exponential CTI trail with charge conserved. + +**Consequence for the docs:** the recipe in `autocti_workspace/AGENTS.md` and +`ac_setup_environment.md` says "after numpy+cython" and omits `setuptools`. That +is incomplete for a clean venv on modern Python — a first-time user following it +verbatim hits the same `ModuleNotFoundError: setuptools` I did. Fix the prose in +the same task. + +## Work + +1. **Put the canonical step in PyAutoHeart**, alongside the reusable workflows + the CTI repos already call (`smoke-tests.yml`, `lib-tests.yml`, + `docs-build.yml`). A composite action (`.github/actions/install-arcticpy/`) + is the natural shape — callable from a plain step, version-pinned in one + place. **Check PyAutoHeart's actual layout and conventions before choosing + the shape**; do not assume a composite action is how that repo does things. +2. **Add the missing `setuptools wheel`** to the canonical step, so the + `smoke_install.sh` latent failure cannot recur anywhere. +3. **Assert the install worked** — end the step with + `python -c "import arcticpy; print(arcticpy.__version__)"`. Today a broken + arcticpy surfaces much later as a confusing `import autocti` failure in an + unrelated job. +4. **Repoint every consumer** at the canonical step and delete the local copies. +5. **Fix the documented recipe** in `autocti_workspace/AGENTS.md`, + `autocti_assistant/skills/ac_setup_environment.md` and (if it carries the + same omission) `PyAutoCTI/AGENTS.md`, so human/agent instructions match CI. +6. **Single pin.** `arcticpy==2.6` is currently written out in every copy; + after this, bumping it should be a one-line change. + +## Optional, decide deliberately + +arcticpy compiles from source on **every** CI run in every CTI repo. Caching the +built wheel (`actions/cache` keyed on arcticpy version + Python version + runner +image) would cut that repeatedly. Not required for correctness — raise it as a +measured proposal with before/after timings rather than assuming it is worth the +cache-invalidation complexity. + +## Why now + +Filed after `test-mode-bypass-assertion-ties` and `testmode-assertion-note-removal` +(both shipped 2026-08-24). Two tasks in that sequence were deferred on the +belief that arcticpy could not be built outside a prepared machine — a belief +that turned out to be false, and cost real work. A canonical, documented, +CI-owned install is what stops that assumption forming again. + +Unblocks: `draft/test/autocti/phase5_smoke_reenable_ordered_trap_scripts.md` +(CTI epic Phase 5) and helps `draft/bug/autocti/wiki_currency_baseline_drift.md`, +whose baseline regeneration needs the same stack. diff --git a/complete/2026/08/wiki-currency-baseline-drift.md b/complete/2026/08/wiki-currency-baseline-drift.md new file mode 100644 index 00000000..24fb06a0 --- /dev/null +++ b/complete/2026/08/wiki-currency-baseline-drift.md @@ -0,0 +1,173 @@ +- completed: 2026-08-24 +- issue: https://github.com/PyAutoLabs/autocti_assistant/issues/24 +- prs: + - https://github.com/PyAutoLabs/autocti_assistant/pull/23 (merged) +- summary: | + `wiki-currency` had been red on `autocti_assistant` main independently of any + PR, so every PR against the repo opened already-red. Identified the failing + sub-check, established it was baseline staleness rather than a stale doc + claim, regenerated the baseline, and fixed two defects that had made the + check undiagnosable. + +## Which sub-check failed, and how it was found + +The workflow redirects every check into `drift-report.md`, so the job log never +names the failure. The drift-report artifact is served from a blob host this +session's network policy blocks (`CONNECT tunnel failed, response 403`), so the +run was **reproduced locally** instead: the CTI stack built exactly as the +workflow builds it (autonerves/autoarray/autofit 2026.8.17.1 from source `main`, +autocti 2024.11.13.2, arcticpy 2.6 compiled from sdist). + +Exactly one of the five fails: + +| check | result | +|---|---| +| `--check-version` | FAIL — API DRIFT vs baseline (generated 2026-07-23) | +| `--scope all` | pass — 31/31 cited symbols resolve, 0 missing | +| `--lint-idioms` | pass — 51 files, no defunct idioms | +| `--check-provenance` | pass — 8 pages, 0 errors, 9 warnings | +| `--check-citations` | pass — 29 citations, 0 missing paths | + +## Staleness, not a stale claim — and how that was proved + +The prompt warned against regenerating the baseline to paper over a genuine +divergence, so this was checked rather than assumed. Worktrees were created at +the baseline's own commits (PyAutoFit `daa4e39`, PyAutoArray `85c57eb`, both +2026-07-23), the libraries installed from them, and the public symbol sets +diffed against today's `main`: + +``` +autoarray 120 -> 121 + InterpolatorDelaunayNN, validate + - TransformerNUFFTPyNUFFT +autofit 149 -> 159 + AbstractClipper, AbstractScaler, ApproxUpdater, + ClipperNone, ClipperPriorBox, DynamicUpdater, + FactorUpdater, NSS, ScalerNone, ScalerPriorWidth, + SimplerUpdater + - database +``` + +Two symbols were **removed**, so the drift was not blindly additive. But neither +is cited: `TransformerNUFFTPyNUFFT` appears nowhere in `wiki/`, `skills/` or +`modes/`, and the `database` matches are prose about the workspace's +`advanced/database/` script directory, not the `autofit.database` symbol (no +`af.database` / `from autofit import database` anywhere). `--scope all` agrees: +*"All cited symbols resolve cleanly. No drift detected."* And `autonerves`, +`autocti` and `autocti.plot` hashes were byte-identical — the surfaces this +assistant documents had not moved at all. + +Baseline regenerated; all five checks then pass locally, and `wiki-currency` +came back green in CI on the PR. + +## Trap: the report was lying about what it installed + +The drift report printed `stack_version: latest released` whenever the input was +empty. That is **false** on the native PR/dispatch path — the install step +builds the stack from the `sources/` `main` clones, and the workflow's own +comment explains why (the CTI release train is not wired, so PyPI would grade +the modern docs against a pre-resurrection wheel). + +This mislabel is what sent the filing prompt's diagnosis to the wrong +hypothesis: it reasoned "the workflow audits against latest released, so it rots +on a clock" and pointed at release timing. The real clock is the **libraries' +`main` branches**, which move far faster than releases. Both input descriptions +and the report header now state what is actually installed. + +The report also recorded **no source refs at all**, so a red run could not be +diagnosed after the fact. The clone step now writes each source tree's short SHA +into the report header. + +## Recommended against pinning to a released stack version + +The prompt asked whether pinning would stop the check rotting on timing alone. +It should not be done: autocti's PyPI release is the pre-resurrection +`2024.11.13.2`, so pinning would grade today's docs against an API predating the +work they describe — vacuously green, which is worse than noisily red. + +## Open follow-up (deliberately not taken) + +`--check-version` gates on a hash of the **entire** public surface of autoarray +and autofit, almost none of which this assistant documents. This red was 12 +additions and 2 removals, none touching a cited symbol — so the new baseline +will rot the same way within weeks, on any `main` merge that exports a new name. +Meanwhile `--scope all` already answers the question that matters and is immune +to that noise. + +Worth deciding: gate `--check-version` on **removals** only (additions +informational), or accept that `--scope all` subsumes it as a gate. That changes +what the check means, so it was left as a proposal under the task's `supervised` +autonomy rather than made unilaterally. Recorded on autocti_assistant#24. + +## Unblocked + +autocti_assistant#21 had been held unmerged at `/prm` because of this red. + +## Original prompt + +# wiki-currency is red on autocti_assistant main — API baseline has drifted + +Type: bug +Target: autocti_assistant +Repos: +- @autocti_assistant +Difficulty: small +Autonomy: supervised +Priority: normal +Status: formalised +Filed: 2026-08-24 +Issued: 2026-08-24 + +The `wiki-currency` workflow fails on `autocti_assistant` **main**, independently +of any open PR. Every PR against the repo therefore opens already-red, which +trains reviewers to ignore the check. + +## Evidence it is main, not a PR + +Found while shipping `testmode-assertion-note-removal` (autocti_workspace#24). +PR autocti_assistant#21 — a four-line prose deletion — showed `wiki-currency` +red. Dispatched the same workflow on `main` at `960fdd1c` +(run 32762029277): **also failed**, same job, same step, same +`##[error]wiki-currency drift detected` line. + +The drift-report artifact sizes settle it: 964 bytes on the PR +(run 32761217701) vs 961 bytes on main. The report header carries +`- assistant_ref: \`\``, and `refs/pull/21/merge` (18 chars) minus +`refs/heads/main` (15 chars) is exactly the 3-byte delta — so every drift +*finding* in the two reports is byte-identical. The PR contributes nothing. + +## Likely cause + +`.github/workflows/wiki-currency.yml` audits against +`stack_version: latest released`, so the check is time-dependent: a new +PyAutoCTI/PyAutoFit/PyAutoArray release can turn it red with no commit to this +repo. `wiki/core/api_audit_baseline.json` was last regenerated 2026-07-19 +(commit `2bb0766b`, the PyAutoConf→PyAutoNerves sweep) against +`autonerves/autoarray/autofit 2026.7.9.1` + `autocti 2024.11.13.2`. Releases +since then — including PyAutoFit's, which now contains 438f56fac — are the +prime suspect. That 2026-07-19 run is also the **only** green `wiki-currency` +run main has ever had. + +## Work + +1. Read the failing sub-check from the `wiki-drift-report` artifact — the + workflow redirects each check's output into `drift-report.md` + (`>> "$REPORT" 2>&1`), so the job log never names which of the five failed + (`--check-version`, `--scope all`, `--lint-idioms`, `--check-provenance`, + `--check-citations`). Download the artifact; do not try to infer it from the + log. +2. If it is baseline drift, regenerate with + `python autoassistant/audit_skill_apis.py --write-baseline` against the same + stack the workflow builds, and commit the new + `wiki/core/api_audit_baseline.json`. Note this needs `arcticpy` (C++ sdist, + `libgsl-dev` + toolchain), so it is not doable from a plain web session. +3. If it is a real doc/API divergence, fix the skills prose instead — do not + regenerate the baseline to paper over a genuine stale claim. +4. Consider whether pinning the audit to a released stack version, rather than + `latest released`, would stop the check going red on release timing alone — + a check that rots on a clock trains people to ignore it. + +## Blocks + +autocti_assistant#21 (docs: remove the resolved TEST_MODE artifact sentence) +was held unmerged at /prm because of this red. It is a clean doc-truth fix with +`clone-boundary` green; it should merge once this is resolved, or be merged +deliberately over a known-bad base. diff --git a/complete/index.md b/complete/index.md index a5698375..7a492ee3 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. -1116 records across 7 buckets. +1118 records across 7 buckets. ## Highlights @@ -20,6 +20,7 @@ _(curate hard-won records here — survives regeneration.)_ - [actionable-health-board](2026/08/actionable-health-board.md) — closed on ship - [active-prompt-orphan-triage](2026/08/active-prompt-orphan-triage.md) +- [arcticpy-install-standardisation](2026/08/arcticpy-install-standardisation.md) - [astropy-cap-bump](2026/08/astropy-cap-bump.md) — closed manually post-merge — "Part of" in the PR bodies does not auto-close - [autoarray-adapt-images-precondition](2026/08/autoarray-adapt-images-precondition.md) - [autoarray-input-validation-guards](2026/08/autoarray-input-validation-guards.md) @@ -233,6 +234,7 @@ _(curate hard-won records here — survives regeneration.)_ - [version-skew-yank-awareness](2026/08/version-skew-yank-awareness.md) - [version-stamp-sync-guards](2026/08/version-stamp-sync-guards.md) — closed by the 2026-08-19 reconcile sweep — see traps - [vincken-2026-bib-placeholder](2026/08/vincken-2026-bib-placeholder.md) +- [wiki-currency-baseline-drift](2026/08/wiki-currency-baseline-drift.md) - [wiki-hygiene](2026/08/wiki-hygiene.md) — auto-closed on merge - [wiki-provenance-restamp](2026/08/wiki-provenance-restamp.md) - [worktree-claim-parser-forms](2026/08/worktree-claim-parser-forms.md) — CLOSED completed diff --git a/dashboard.html b/dashboard.html index e9d7ba53..3bd446ff 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.

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

+

Parked markdown version

3 task(s) @@ -209,7 +210,7 @@

Planned

latent-nan-guard-honest-run — planned 2026-07-22

Backlog markdown version

-

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

+

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.

feature — 27 @@ -241,12 +242,11 @@

Backlog

Teach repos_sync --write to stamp organ config surfaces✨ featurepyautomindhardsupervisedlow

-bug — 26 +bug — 25

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

-

LogGaussianPrior misreports its own support as (-inf, inf)🐛 bugautofitsmallsupervisednormal

@@ -287,7 +287,7 @@

Backlog

Cluster-scale gradient-search benchmark (Prodigy vs Nautilus, point-source)🔬 researchautolens_profiling

-maintenance — 22 +maintenance — 21

Untrack the generated FITS test artifacts in autoarray🧹 maintenancelibrariessmallsupervisedmedium

autolens_workspace_developer rectangular experiments — Gut stash + rename🧹 maintenanceautolens_workspace_developersmallsupervisednormal

@@ -296,7 +296,6 @@

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

-

Standardise the arcticpy CI install across every CTI repo🧹 maintenancecimediumsupervisednormal

PyAutoMemory canonical-key TODO sweep🧹 maintenancepyautomemorymediumsupervisednormal

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

@@ -327,14 +326,6 @@

Backlog

plot coverage — follow-ups deferred from plot-coverage-gaps📖 docsworkspaces

-test — 5 -

Re-baseline the MGE imaging JIT profiling regression value🧪 testautolens_workspace_developertoo-largesupervisedhigh

- -

Relevance-gate the reusable smoke workflow so a PR only runs…🧪 testpyautoheartmediumsupervisednormal

- - -
-
refactor — 5 @@ -343,6 +334,14 @@

Backlog

Deduplicate repos_sync.py's check/write pairs♻️ refactorpyautomindmediumsafelow

+test — 5 +

Re-baseline the MGE imaging JIT profiling regression value🧪 testautolens_workspace_developertoo-largesupervisedhigh

+ +

Relevance-gate the reusable smoke workflow so a PR only runs…🧪 testpyautoheartmediumsupervisednormal

+ + +
+
triage — 4

TRIAGE: needs manual review before routing❓ triagemediumsafehigh

@@ -359,12 +358,6 @@

Backlog 2026-08-24 filed -wiki-currency is red on autocti_assistant main — API baseline has… - - - -2026-08-24 -filed interferometer/jax_grad/gradient.py: eager and jitted likelihoods… @@ -382,9 +375,9 @@

Backlog 2026-08-24 -filed -Standardise the arcticpy CI install across every CTI repo - +issued +Re-enable autocti_workspace smoke coverage of the ordered-trap… + 2026-08-23 @@ -416,7 +409,7 @@

Backlog Untrack the generated FITS test artifacts in autoarray - + 2026-08-22 filed The reconstruction noise map describes a different estimator than the… @@ -656,6 +649,12 @@

Backlog 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 + +

Epics markdown version

@@ -698,10 +697,6 @@

Epics

Expectation Propagation Scale-Up — Scoping🔬 researchgraphical_eptoo-largesupervisedhigh

slope_hierarchy: methods write-up (NUTS headline, EP cautionary)🔬 researchgraphical_epmediumsupervisednormal

-
-CTI resurrection — Phase 5 — 1 queued prompt(s) — ⚠️ not in epics.md - -