prompt: land the stranded point-source-dataset-cap-guard close-out (#710) - #294
Merged
Merged
Conversation
Advances the point.py JAX-vmap parity prompt draft/ → active/ and registers it in active.md as library-dev against PyAutoLens#710. The diagnosis is settled in-session rather than deferred: under PYAUTO_SMALL_DATASETS=1, should_simulate() rmtree's the committed JSON point-source dataset and PointSolver.solve returns a fixed, model-independent position pair in silence. point.py itself passes on current main under the correct profile, so the reported non-determinism was poisoned-on-disk data, not a library bug. Remaining scope is hardening. Also marks the planned.md jax-point-source-point-smoke-sentinel entry superseded by the same finding. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJSb9kydhAgMgCCKh26ai2
point_solver_error_bisect_health.md claimed to absorb the point.py JAX-vmap parity prompt on the grounds of a shared investigation surface. That is no longer true: the parity failure was dataset poisoning under PYAUTO_SMALL_DATASETS, not triangle-solve accuracy, and it shipped separately as point-source-dataset-cap-guard (PyAutoLens#710) rather than waiting on a 12-phase epic. Also corrects the stale point_solver.py:111 line reference to :119. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJSb9kydhAgMgCCKh26ai2
Both legs merged — PyAutoLens#711 (27126fb) then autolens_workspace_test#265 (051b051), library-first order held. The reported parity non-determinism was on-disk dataset poisoning, not a library numerical bug: should_simulate rmtree's the committed JSON point-source dataset under PYAUTO_SMALL_DATASETS=1, and PointSolver.solve short-circuits to a model-independent position pair. point.py passes on main with an intact dataset. Record carries the two traps worth remembering — the SMALLDAT stamp cannot reach JSON datasets, and real_output/real_plots do not release the cap — plus the two follow-ups: the other workspaces are still unaudited, and per-script discipline has now failed twice as the only protection. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJSb9kydhAgMgCCKh26ai2
Completes the registry reconciliation the point-source-dataset-cap-guard
close-out (PyAutoLens#710) left as a follow-up. #710 has shipped — PyAutoLens#711
and autolens_workspace_test#265 both merged 2026-08-23 — so the condition its
planned.md note attached ("retire this entry and its prompt when #710 ships") is
now met.
- planned.md: removed the jax-point-source-point-smoke-sentinel entry; its -1e99
symptom was the same poisoned-on-disk dataset, and #265 measured point.py
passing on main with the -83.38049778 pin exact. That settles the "what is
still unknown" question the prompt's own 2026-08-09 note left open.
- Archived the prompt to complete/archive/shelved/ behind a WITHDRAWN banner
(provenance only, do not start), per the repo's shelving convention.
- Rewrote the completion record's reconciliation section from "retire" to
"retired", naming the archive path.
- Backfilled the Filed: 2026-07-22 header onto the folded original prompt, which
main had added to the draft after the close-out branch forked.
- Regenerated complete/index.md, planned.md's contents block, and the dashboard.
lifecycle check / index --check / orphans and registry_toc --check all pass.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ArKXBR7EnFh49QRqNScF2y
# Conflicts: # complete/index.md # dashboard.html # dashboard.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Recovers the Mind close-out for PyAutoLens#710 (
point-source-dataset-cap-guard), which was written but never reachedmain, and finishes the one piece it deferred.Why this exists
/start_dev draft/bug/autolens/point_jax_vmap_parity_nondeterministic.mdfound the task already shipped:PointSolverSMALL_DATASETSshort-circuit announce itselfPyAutoLens#710 is closed as completed. But the prompt was still sitting in
draft/, theactive.mdentry never landed, and the siblingplanned.mdentry was still live — because the session that did the work left its Mind commits onclaude/autolens-point-jax-vmap-parity-htyfi1, which never merged.That branch had forked from an old
mainand could not be merged as-is: its diff against currentmaindeletes ~5000 lines of subsequent work (scripts/lifecycle.py,tests/test_lifecycle_dates.py, a dozencomplete/2026/08/records). So its three relevant commits are cherry-picked here instead, onto currentmain.Note that
lifecycle.py checkpassed throughout this drift: a shipped-but-still-draft/prompt with noactive.mdentry is invisible to the guard, which only checks that noactive.mdslug has a record. Worth a follow-up, not fixed here.What lands
Cherry-picked from the stranded branch (
a76314a4,4a7cb760,b761a601)draft/bug/autolens/point_jax_vmap_parity_nondeterministic.md→complete/2026/08/point-source-dataset-cap-guard.md(active.mdentry added and removed, net zero, as the real lifecycle would have done).draft/bug/autolens/point_solver_error_bisect_health.mdno longer absorbs the parity bug — the "same investigation surface" premise was false (a workspace env-declaration defect, not triangle-solve accuracy). Stalepoint_solver.py:111reference corrected to:119.New here (
40ea0e11)jax-point-source-point-smoke-sentinelretired. The stranded branch marked it "retire this entry and its prompt when #710 ships". #710 has shipped. Its-1e99symptom was the same poisoning, and prompt: re-home pynufft removal to maintenance, file two follow-ups #265 measuredpoint.pypassing onmainwith the pin exact (-83.38049778) — which settles the "what is still unknown" question that prompt's own 2026-08-09 note left open. Entry removed fromplanned.md; prompt archived tocomplete/archive/shelved/behind aWITHDRAWNbanner, provenance only.Filed: 2026-07-22backfilled onto the folded original prompt —mainadded it to the draft after the close-out branch forked.The underlying finding, for the record
The prompt's leading hypothesis was right, and the mechanism was worse than it guessed. Under
PYAUTO_SMALL_DATASETS=1,should_simulate()rmtrees the committed, gitignore-allowlisteddataset/point_source/simple— it is JSON-only, so there is nodata.fitscarrying theSMALLDATstamp that PyAutoArray#471's guard reads — andPointSolver.solveshort-circuits to a fixed, model-independent position pair. One run poisons the next. That is exactly the reported "run A →-1e+99, runs B/C/D →16.131221" signature. No library numerical bug exists; the prompt's repro command set the cap by hand, overriding the script's ownENV: jax full_datasetsdeclaration, so it could never have passed.Verified against
autolens_workspace_test@mainwhile preparing this: all five parity scripts carry the pre-should_simulatecap guard,point_source/visualization/modeling_visualization_jit.pynow declaresENV: full_datasets real_output, and the solver's one-shotlogger.warningplus updatedNotesdocstring are in place onPyAutoLens@main.Verification
origin/mainwas merged in (it moved during this work); the three generated-file conflicts (complete/index.md,dashboard.md,dashboard.html) were resolved by regenerating with the owning tooling, not by hand-merging. Net diff against currentmainis unchanged by that merge — the same 8 files, no collateral.Follow-up (not in this PR)
origin/claude/autolens-point-jax-vmap-parity-htyfi1is now fully superseded and should be deleted, so nobody merges the stale version.Generated by Claude Code