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

If a published-package install keeps an existing uvicorn version below 0.47, the new >=0.29 requirement accepts it. But the local grant server passes ssl_context_factory directly to uvicorn.Config, and those older versions reject it with TypeError. Users then cannot issue local transfer grants.

Restore the >=0.47 floor. The 0.54.0 version in uv.lock does not protect installs that do not use that lockfile.

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**

If a published-package install keeps an existing `uvicorn` version below `0.47`, the new `>=0.29` requirement accepts it. But the local grant server passes `ssl_context_factory` directly to `uvicorn.Config`, and those older versions reject it with `TypeError`. Users then cannot issue local transfer grants.

Restore the `>=0.47` floor. The `0.54.0` version in `uv.lock` does not protect installs that do not use that lockfile.

```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.57.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.3.2", # the plugin API check; exact, since what it reports as a break changes between releases
"moto>=5.0.0",
"psycopg2-binary>=2.9.0", # the gateway server module's driver; outside its container only the tests import it
"pytest>=9.0",
Expand All @@ -101,7 +101,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