ci: convert 5 zero-risk gating-lane steps to if:always() (item 7 scoping pass) - #389
Merged
Merged
Conversation
Item 7 scoping pass (owner-requested dedicated pass). Catalogued all 123 steps in the selftest job: ~44 already carry always()/failure(); the real risk band is ~67 steps downstream of "Bootstrap environment" with no always(). Of those, exactly 5 never execute run_setup.bat as a subprocess at all (a static size check, a static payload-decode check, and three pure python -m unittest/pytest invocations against this repo's own helper unit tests) -- converting them carries zero duration-inflation risk since there is nothing to redundantly retry. The remaining ~62 steps all genuinely spin up their own scratch-dir run_setup.bat bootstrap, so the original blast-radius concern still holds there -- but this pass sharpens WHY: Miniconda installs to a shared, machine-wide path, so once it succeeds once, downstream steps reuse it for free; the duration-inflation risk is specifically scoped to "Miniconda itself fails to install", not "any bootstrap failure" (confirmed via this session's own CI fault-injection experiment, where two synthetic regressions both failed fast rather than via a slow network timeout). A concrete follow-on design (a shared "is conda already available" fast pre-check) is documented in CLAUDE.md for the remaining band, deliberately not implemented in this pass. Claude-Session: https://claude.ai/code/session_015xbWLPbiaKVsobB9FZy8kS Co-authored-by: Claude <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
mixmansoundude
enabled auto-merge (squash)
July 26, 2026 16:51
mixmansoundude
temporarily deployed
to
github-pages
July 26, 2026 18:20 — with
GitHub Actions
Inactive
9 tasks
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.
Summary
if: always()hardening, previously deferred pending exactly this kind of reviewed pass).selftestjob: ~44 already carryalways()/failure(); the real risk band is ~67 steps downstream of "Bootstrap environment" with noalways(), so one early failure silently skips everything after it.run_setup.batas a subprocess at all — a static byte-size tripwire, a static embedded-payload decode check, and three purepython -m unittest/pytestinvocations against this repo's own helper unit tests. Converting these toif: always()carries zero duration-inflation risk since there's nothing to redundantly retry.run_setup.batbootstrap, so the original blast-radius concern still holds there — but this pass sharpens why: Miniconda installs to a shared, machine-wide path, so once it succeeds once, downstream steps reuse it for free. The duration-inflation risk is specifically scoped to "Miniconda itself fails to install," not "any bootstrap failure" — confirmed via this session's own owner-authorized CI fault-injection experiment (two synthetic regressions on throwaway branches, both of which failed fast rather than via a slow network timeout).Test plan
python -m compileall -q .python tools/check_delimiters.py run_setup.batpython -m yamllint .github/workflows/actionlint -oneline .github/workflows/*.ymltests/*.ps1,tools/*.ps1python -m pytest tests/test_*.py -q(437 passed, 2 skipped)yamllint/actionlintresults hold in CI tooClaude-Session: https://claude.ai/code/session_015xbWLPbiaKVsobB9FZy8kS
Generated by Claude Code