fix/Env-picks-newest-python · L-261023-b7d250
Merged
LC
6d ago+326+326+012345678901234567890123456789-15-15-01234567890123456789
The environment was built on whatever Python was newest on the machine, so a new worktree landed on 3.15 and failed to load pydantic-core. The repo now pins 3.13 in .python-version, the Makefile reads and exports it as UV_PYTHON, and the local MCP launcher keeps that export out of the session it starts.
Closes L-261023-b7d250
Advances L-261023-8192c0
🤖 Generated with Claude Code
https://claude.ai/code/session_01TuqArJByf4EdN7khSDRiPe
Summary by cubic
Pins the development environment to Python 3.13, which previously was whichever Python was newest on the machine. A new worktree could land on 3.15, where pydantic-core has no published wheel and the one uv compiled from source failed to load, breaking every integrate gate test.
- Commits
.python-versionand has the Makefile export it asUV_PYTHON, so every uv command uses the pinned version;PYTHON_VERSION=<version> make installtries another interpreter. - CI workflows now read
.python-versionviapython-version-file, and the recipes workflow re-runs when it changes. make checkfails when the pin disagrees with a floor inpyproject.tomlor a workflow names a Python of its own.- The local MCP launcher keeps the Makefile's
UV_PYTHONexport and a command-linePYTHON_VERSIONout of the session it starts, so the project the agent works in keeps its own pin.
Closes L-261023-b7d250