feat(toolchain): resolve target interpreter from requires-python

Pure resolver (services/toolchain.py) that derives the Python version an agent
should provision a target workspace with. Defends against uv's resolution
order — a .python-version file overrides requires-python during interpreter
selection — by honoring the pin only when it satisfies requires-python, else
resolving a concrete version from requires-python for the caller to pass via
--python. This is the root cause behind the live guard-core-app failure (pin
3.13 vs packages needing 3.14). Promotes packaging to a direct dependency.
This commit is contained in:
Renn F
2026-06-22 01:25:47 +02:00
parent 77c94b74da
commit 9274cd4584
4 changed files with 223 additions and 0 deletions
+1
View File
@@ -43,6 +43,7 @@ dependencies = [
"sse-starlette", # Server-Sent Events for A2A streaming
# Direct imports (promoted from transitive)
"cryptography", # utils/crypto.py — Fernet-encrypted project git tokens
"packaging", # services/toolchain.py — PEP 440 requires-python resolution
"claude-agent-sdk>=0.2.105",
]