Skip to content

fix(readiness): exclude the resurrecting PyAutoCTI from the release gate#91

Merged
Jammy2211 merged 1 commit into
mainfrom
claude/organism-docs-sweep-6aanor
Jul 18, 2026
Merged

fix(readiness): exclude the resurrecting PyAutoCTI from the release gate#91
Jammy2211 merged 1 commit into
mainfrom
claude/organism-docs-sweep-6aanor

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Problem

Heart's main was red — 27 test_readiness.py failures + the polled-count test. Bisect points at 358ef2f ("config: poll the resurrected CTI repos"), not any readiness code change:

358ef2f^ : 2 passed
358ef2f  : 2 failed

That commit added PyAutoCTI to the config libraries group so the tick would poll it. But heart/readiness.py derives the release-validation gate set (_GATE_SHA_LIBS) and the library-scoring default from that same group. So every verdict began demanding a matching commit_sha for PyAutoCTI — and CTI is mid-resurrection (not released), so it has no release evidence to confirm. Result: a permanent release validation partially unconfirmed (unknown HEAD: PyAutoCTI) stale (−12 on every score), and the 5-classic-lib fixtures never matched → 27 failures.

Fix — separate "polled for health" from "gates the release"

  • config/repos.yaml: PyAutoCTI carries release_gate: false (still polled by the tick; not part of the release gate). Flip to true / drop the key when CTI ships.
  • heart/readiness.py: new load_release_gate_names() = polled libraries minus release_gate: false. _GATE_SHA_LIBS and the libs default now use it; load_library_names() stays the full polled set. Absent key ⇒ gating (default) — only an explicit false opts out.
  • tests: polled-count sanity 22 → 25 (CTI added 3 repos across groups); new test_cti_polled_but_not_release_gating.

Verification

python3 -m pytest287 passed (was 27 failed / 259 passed on main).

Notes

  • This failure pre-dated the docs PR docs: unify the call chain on Build (#84) #90 (a one-word AGENTS.md edit) and is unrelated to it — surfaced while merging the organism docs sweep.
  • The design call (a resurrecting library is polled but not release-gating) is worth a maintainer eye — flagged here rather than buried.

🤖 Generated with Claude Code


Generated by Claude Code

Heart's main went red (27 readiness tests + the polled-count test) after the
CTI-resurrection config change (358ef2f) added PyAutoCTI to the config
'libraries' group. That group feeds _GATE_SHA_LIBS, so the release-validation
gate began demanding a matching commit_sha for PyAutoCTI on every verdict —
but CTI is mid-resurrection and not released, so it has no release evidence to
confirm. Result: every verdict picked up a 'release validation partially
unconfirmed (unknown HEAD: PyAutoCTI)' stale (-12), and the fixtures (5 classic
libs) never matched.

Separate 'polled for health' from 'gates the release':
- config: PyAutoCTI carries release_gate: false (polled, not gated; flip when
  it ships).
- readiness: new load_release_gate_names() = polled libraries minus
  release_gate:false; _GATE_SHA_LIBS and the libs default now use it.
  load_library_names() stays the full polled set.
- tests: polled-count sanity 22 -> 25 (CTI added 3 repos); new test asserting
  CTI is polled but not release-gating.

Full suite: 287 passed. The one-word docs change on #90 was unrelated; this
failure pre-dated it on main.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ERDgNVKpQohYXVcJwAHzmw
@Jammy2211
Jammy2211 merged commit b64bf99 into main Jul 18, 2026
4 checks passed
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