Skip to content
Open
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.106",
"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 Older uvicorn breaks local grants

If a user already has uvicorn below 0.47 installed, the new >=0.29 requirement lets pip keep it. But GrantServer._start() always passes ssl_context_factory to uvicorn.Config, and that keyword requires 0.47, as the comment notes. Issuing a local storage grant then fails instead of starting the HTTPS server.

Restore the >=0.47 floor. The newer version in uv.lock does not protect installs made without that lock.

Prompt To Fix With AI
This is a comment left during a code review.
Path: pyproject.toml
Line: 46

Comment:
**Older uvicorn breaks local grants**

If a user already has `uvicorn` below 0.47 installed, the new `>=0.29` requirement lets pip keep it. But `GrantServer._start()` always passes `ssl_context_factory` to `uvicorn.Config`, and that keyword requires 0.47, as the comment notes. Issuing a local storage grant then fails instead of starting the HTTPS server.

Restore the `>=0.47` floor. The newer version in `uv.lock` does not protect installs made without that lock.

---

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.56.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.14.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 @@ -88,7 +88,7 @@ tenki = [
dev = [
"agentenv-framework[aws,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 @@ -97,7 +97,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.0", # the lint gate; exact, since what it reports changes between releases
]
smol = [
"smolmachines>=1.27.0",
Expand Down
Loading
Loading