Skip to content

ci: gate workspaces on the unbatched multi-start search check - #229

Merged
Jammy2211 merged 1 commit into
mainfrom
claude/interferometer-oom-nufft-yyz98z
Aug 5, 2026
Merged

ci: gate workspaces on the unbatched multi-start search check#229
Jammy2211 merged 1 commit into
mainfrom
claude/interferometer-oom-nufft-yyz98z

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Turns on check_search_memory.py (added in #228) for every workspace that calls the reusable navigator workflow. For PyAutoLabs/PyAutoFit#1452.

Why this is the part that actually protects CI

The runtime guard in PyAutoLabs/PyAutoFit#1453 reads XLA's memory analysis, which reports 0 bytes on a CPU-only JAX build — which is what CI runs. So it helps GPU users and would not have caught the failure that cost two nightly release-integrate runs. A static AST check has no such blind spot: no JAX, no device, no compile.

It also catches the defect earlier than any runtime guard can — at PR time, before the script ever reaches the nightly.

Why it was held back from #228

Run against the real trees, the checker found eight further unguarded sites beyond the two already fixed. Turning the gate on in the same PR would have red-lined three workspaces over unrelated work. All eight now carry an explicit batch_size:

Merge this last, after those three.

Shape

Its own job rather than a step on the paths job, so the check name is legible in a PR's status list. Stdlib-only (ast + pathlib), so it needs no pip install and cannot be broken by dependency resolution.

The rule is "batch_size must be explicit", not "must be small" — batch_size=None passes. The point is that the memory decision is typed out where a reviewer sees it rather than arrived at by defaulting, which is precisely how the original failure happened.

Verification

YAML parses; the job's four steps mirror the existing paths job. The checker itself carries 15 unit tests (added in #228) and reports all six workspaces clean once the three PRs above land.


Generated by Claude Code

Turns on check_search_memory.py, added in #228, for every workspace
that calls this reusable workflow.

This is the piece that actually protects CI. The runtime guard in
PyAutoFit#1453 reads XLA's memory analysis, which reports 0 bytes on a
CPU-only JAX build - which is what CI runs - so it helps GPU users and
would not have caught the failure that cost two nightly release runs.
A static AST check has no such blind spot.

Held back from #228 until the workspaces were clean: run against the
real trees it found eight further unguarded sites beyond the two
already fixed. All eight now carry an explicit batch_size, so this can
go on without breaking unrelated work.

Its own job rather than a step on the paths job, so the check name is
legible in a PR's status list. Stdlib-only, so it needs no pip install
and cannot be broken by dependency resolution.

Refs PyAutoLabs/PyAutoFit#1452.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0171voyyTrr91hJ3vU5AjeVz
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