Overview
Adopt Python 3.12 as PyAutoHeart's own package minimum in the independent-package slice of the ecosystem campaign. This deliberately excludes Heart's release/install verification matrix, whose old-version success paths are owned by campaign Phase 2.
Plan
- Raise PyAutoHeart package metadata to Python 3.12 and declare 3.12/3.13 support.
- Leave runtime checks and readiness behavior unchanged.
- Preserve every 3.9-3.11 install/banner reference for the coordinated Phase 2 rewrite rather than partially changing that contract here.
- Validate Heart's full suite and built wheel metadata on Python 3.12 and 3.13.
- Ship a pending-release PR if all autonomous gate legs pass; merge remains human-only.
Detailed implementation plan
Affected Repositories
Work Classification
Library/package maintenance. PyAutoHands is not modified in this slice despite the prompt's campaign folder; build/release matrix work remains Phase 2.
Branch Survey
| Repository |
Current Branch |
Dirty? |
Ahead/behind origin/main |
| PyAutoHeart |
main |
clean |
0/0 |
Suggested branch: feature/python-312-floor
Worktree root: /home/jammy/Code/PyAutoLabs/.codex-worktrees/python-312-floor
Implementation Steps
- In
pyproject.toml, change requires-python from >=3.10 to >=3.12.
- Add explicit
Programming Language :: Python :: 3.12 and 3.13 classifiers; no older classifiers currently exist.
- Confirm the direct package/development census.
AGENTS.md and Heart's living docs do not currently claim an older minimum, so do not add unnecessary prose.
- Explicitly leave
bin/pyauto-heart, heart/checks/verify_install.sh, and skills/verify_install/verify_install.md unchanged: their Python 3.9-3.11 success/banner behavior is the coordinated Phase 2 scope.
- Build a clean wheel and inspect METADATA for
Requires-Python: >=3.12 and the 3.12/3.13 classifiers.
- Run
tests/ on Python 3.12 and 3.13, then apply review and Heart gates before PR-open.
Key Files
pyproject.toml — Heart's own package floor and supported classifiers.
heart/checks/verify_install.sh — Phase 2 owner, explicitly unchanged.
skills/verify_install/verify_install.md — Phase 2 contract, explicitly unchanged.
Autonomy / Heart launch acknowledgement
This is a supervised task running under the user-authorized queue/--auto contract. The acknowledged Heart YELLOW launch set is:
- workspace validation not passing (13 failed, 2026-07-21T19-05-22Z)
- 33 stale parked script(s)
- manifest drift: tenant firewall (organ code) — 6 mismatch(es) vs PyAutoMind/repos.yaml
- release validation stale: source moved since rehearsal (PyAutoNerves, PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLens)
No RED condition is present after fast-forwarding three clean canonical library checkouts that were one commit behind origin/main. Any new Heart reason invalidates this acknowledgement.
Original Prompt
Click to expand starting prompt
Python 3.12 floor — Phase 4C: PyAutoHeart
Type: feature
Target: PyAutoHeart
Difficulty: medium
Autonomy: supervised
Priority: normal
Status: formalised
Parent: python_312_floor_phase_4_independent.md
Original request
Ok, lets remove support for anything below python3.12, do a census to make sure we simplify requriements, build server, testing, etc. Also make sure all docs are updated.
Scope
Raise PyAutoHeart's own package metadata, classifiers, contributor contract, and living documentation to Python 3.12/3.13. Keep the core release/install matrix rewrite in campaign Phase 2; this slice only updates Heart's package and direct development surface, with tests on both supported Python versions.
Gates
- Built metadata reports
Requires-Python: >=3.12 with 3.12/3.13 classifiers.
- The full PyAutoHeart suite passes on Python 3.12 and 3.13.
- No release-verification behavior from Phase 2 is duplicated or weakened.
Overview
Adopt Python 3.12 as PyAutoHeart's own package minimum in the independent-package slice of the ecosystem campaign. This deliberately excludes Heart's release/install verification matrix, whose old-version success paths are owned by campaign Phase 2.
Plan
Detailed implementation plan
Affected Repositories
Work Classification
Library/package maintenance. PyAutoHands is not modified in this slice despite the prompt's campaign folder; build/release matrix work remains Phase 2.
Branch Survey
Suggested branch:
feature/python-312-floorWorktree root:
/home/jammy/Code/PyAutoLabs/.codex-worktrees/python-312-floorImplementation Steps
pyproject.toml, changerequires-pythonfrom>=3.10to>=3.12.Programming Language :: Python :: 3.12and3.13classifiers; no older classifiers currently exist.AGENTS.mdand Heart's living docs do not currently claim an older minimum, so do not add unnecessary prose.bin/pyauto-heart,heart/checks/verify_install.sh, andskills/verify_install/verify_install.mdunchanged: their Python 3.9-3.11 success/banner behavior is the coordinated Phase 2 scope.Requires-Python: >=3.12and the 3.12/3.13 classifiers.tests/on Python 3.12 and 3.13, then apply review and Heart gates before PR-open.Key Files
pyproject.toml— Heart's own package floor and supported classifiers.heart/checks/verify_install.sh— Phase 2 owner, explicitly unchanged.skills/verify_install/verify_install.md— Phase 2 contract, explicitly unchanged.Autonomy / Heart launch acknowledgement
This is a supervised task running under the user-authorized queue/
--autocontract. The acknowledged Heart YELLOW launch set is:No RED condition is present after fast-forwarding three clean canonical library checkouts that were one commit behind
origin/main. Any new Heart reason invalidates this acknowledgement.Original Prompt
Click to expand starting prompt
Python 3.12 floor — Phase 4C: PyAutoHeart
Type: feature
Target: PyAutoHeart
Difficulty: medium
Autonomy: supervised
Priority: normal
Status: formalised
Parent:
python_312_floor_phase_4_independent.mdOriginal request
Scope
Raise PyAutoHeart's own package metadata, classifiers, contributor contract, and living documentation to Python 3.12/3.13. Keep the core release/install matrix rewrite in campaign Phase 2; this slice only updates Heart's package and direct development surface, with tests on both supported Python versions.
Gates
Requires-Python: >=3.12with 3.12/3.13 classifiers.