Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ dependencies = [
"click>=8.0.0",
"cryptography>=42", # the local transfer CA
"httpx>=0.27.0",
"litellm>=1.96.0,<1.97",
"litellm>=1.96.0,<1.107",
"mcp>=1.25,<2", # same floor as env/gateway/requirements.txt and agentenv-protocol; 2.0.0 removed mcp.server.fastmcp, imported at module scope by env/gateway
"packaging>=22", # evaluates a plugin's requirement markers with no extra
"a2a-sdk==0.3.26",
Expand All @@ -43,9 +43,9 @@ dependencies = [
"python-multipart>=0.0.13", # the local grant server's upload forms
"pyyaml>=6.0",
"starlette>=0.40", # the local grant server
"uvicorn>=0.47", # 0.47 adds ssl_context_factory, how the local grant server gets its TLS context
"uvicorn>=0.29", # 0.47 adds ssl_context_factory, how the local grant server gets its TLS context

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Local transfers fail with older uvicorn

Lowering the minimum to >=0.29 allows versions that cannot start the local grant server. GrantServer._start() always passes ssl_context_factory to uvicorn.Config, but that option requires 0.47, as the dependency comment notes. If an installation keeps an older allowed version, issuing a local read, write, or upload grant will fail.

Restore uvicorn>=0.47. The newer version in uv.lock does not protect users installing the published package.

Suggested change
"uvicorn>=0.29", # 0.47 adds ssl_context_factory, how the local grant server gets its TLS context
"uvicorn>=0.47", # 0.47 adds ssl_context_factory, how the local grant server gets its TLS context
Prompt To Fix With AI
This is a comment left during a code review.
Path: pyproject.toml
Line: 46

Comment:
**Local transfers fail with older `uvicorn`**

Lowering the minimum to `>=0.29` allows versions that cannot start the local grant server. `GrantServer._start()` always passes `ssl_context_factory` to `uvicorn.Config`, but that option requires 0.47, as the dependency comment notes. If an installation keeps an older allowed version, issuing a local read, write, or upload grant will fail.

Restore `uvicorn>=0.47`. The newer version in `uv.lock` does not protect users installing the published package.

```suggestion
    "uvicorn>=0.47",  # 0.47 adds ssl_context_factory, how the local grant server gets its TLS context
```

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Cursor Fix in Claude Code Fix in Codex

"modal>=1.5.2.dev22", # dev22 adds _experimental_create(tags=); dev2 added VM-mode V2 (vm_runtime)
"e2b~=2.46.4", # AsyncSandbox/AsyncTemplate APIs validated against the 2.46 line
"e2b>=2.46.4,<2.58.0", # AsyncSandbox/AsyncTemplate APIs validated against the 2.46 line
]

[project.optional-dependencies]
Expand All @@ -70,12 +70,12 @@ gcp = [
]
# The sail_vm sandbox provider (Sail Research Sailboxes), selected with --sandbox sail_vm.
sail = [
"sail~=0.12.8", # Sailbox exec/fs/listener/egress APIs validated against the 0.12 line
"sail>=0.12.8,<0.15.0", # Sailbox exec/fs/listener/egress APIs validated against the 0.12 line
]
vercel = [
"anyio>=4,<5",
"httpx2>=2.13.1,<3",
"vercel-sandbox>=0.7.0,<0.8", # provides the vercel.sandbox namespace without the full vercel bundle
"vercel-sandbox>=0.7.0,<0.10", # provides the vercel.sandbox namespace without the full vercel bundle
]
# The Tensorlake sandbox provider, selected as the built-in `tensorlake` backend.
tensorlake = [
Expand All @@ -92,7 +92,7 @@ boxd = [
dev = [
"agentenv-framework[aws,boxd,explorer,gcp,sail,tensorlake,tenki,vercel]", # exercise portable optional providers and stores in CI
"fastmcp>=3.4,<4", # the standalone-fastmcp mount path of the protocol; <4 keeps mcp 1.x
"griffelib==2.3.0", # the plugin API check; exact, since what it reports as a break changes between releases
"griffelib==2.4.0", # the plugin API check; exact, since what it reports as a break changes between releases
"tomli-w==1.2.0", # the Codex agent's config writer, which only its image installs; its tests import it
"moto>=5.0.0",
"psycopg2-binary>=2.9.0", # the gateway server module's driver; outside its container only the tests import it
Expand All @@ -102,7 +102,7 @@ dev = [
"pytest-socket>=0.7.0",
"pytest-timeout>=2.3.0",
"pytest-xdist>=3.0.0",
"ruff==0.16.10", # the lint gate; exact, since what it reports changes between releases
"ruff==0.17.1", # the lint gate; exact, since what it reports changes between releases
]
smol = [
"smolmachines>=1.27.0",
Expand Down
Loading
Loading