Skip to content

prompt: jax-grad-local-vs-ci-assertions (#260) — route, root cause, fix - #261

Merged
Jammy2211 merged 3 commits into
mainfrom
claude/jax-grad-assertions-ci-hontn3
Aug 22, 2026
Merged

prompt: jax-grad-local-vs-ci-assertions (#260) — route, root cause, fix#261
Jammy2211 merged 3 commits into
mainfrom
claude/jax-grad-assertions-ci-hontn3

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Registry state for the jax-grad-local-vs-ci-assertions task, from routing through to the shipped fix. Landing this so active.md on main reflects the task — an unmerged registry branch is what trips Lifecycle Drift (there is already an entry in active.md recording exactly that failure from a previous session).

Commits

  • 544d095 — routed the task: prompt advanced draft/bug/autolens_workspace_test/active/, registered in active.md as workspace-dev, issue autolens_workspace_test#260 filed.
  • ccf43b9 — root cause found; numpy hypothesis falsified.
  • 2cc2a84 — reclassified workspace-devlibrary-dev, fix branch recorded, two follow-ups filed.

What the task established

The reported "local jax_grad assertions fail but pass in CI" was not numpy 2.2.6 vs 2.4.6. lp.py is byte-identical across numpy 2.2.6 / 2.4.6 / 2.5.2 and across 1-core vs 4-core — the likelihood runs through JAX/XLA, so numpy was never in the causal path.

The actual cause is PyAutoArray.should_simulate being existence-only and asymmetric, so a dataset written by an earlier PYAUTO_SMALL_DATASETS=1 run is reused forever under full_datasets. CI clones fresh and can never hit it. All three reported failures reproduce exactly from a clean checkout — pixelization.py matches the original report to 11 significant figures, and regularization.py's tolerance vector matches exactly.

No tolerance change was warranted: all three assertions were correctly detecting an invalid dataset.

Outcome

dashboard.md / dashboard.html regenerated; lifecycle.py check passes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VEHLT33XpVcRt5YCJGLRMJ


Generated by Claude Code

@Jammy2211
Jammy2211 merged commit 556c7ac into main Aug 22, 2026
2 checks passed
Jammy2211 pushed a commit that referenced this pull request Aug 24, 2026
All ten vendored .github/scripts/run_smoke.py copies are now thin delegators
over the PyAutoHands runners. 2085 lines -> 1127, and most of what remains is
the docstring explaining why each file delegates.

Merged, each verified from the CI log rather than the green tick:
  PyAutoHands#261 --list opt-in lists + the notebook leg
  PyAutoHands#262 allowlist authoritative (the 13-script finding)
  PyAutoHands#263 regenerate_notebook resolves by relative path
  autolens_workspace_test#273, autogalaxy_workspace_test#111,
  autofit_workspace_test#90, autocti_workspace_test#16      (198 -> 77)
  autofit_workspace#147, autogalaxy_workspace#226,
  autolens_workspace#500                                     (356 -> 119)

The record keeps the two findings that mattered most: the no_run-wins rule
shipped in #261 would have silently dropped 13 scripts from smoke coverage with
CI still green, and regenerate_notebook's bare-filename lookup made the
stale-notebook recovery dead for every real (nested) notebook. Both were caught
by measuring the real repos before writing a delegator, and both are now pinned
by tests that were negative-tested against the old behaviour.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UpSFum81Jeq9KZ9wdKtaeZ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants