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
12 changes: 6 additions & 6 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 Local file transfers can fail

If a user has an installed or pinned uvicorn version below 0.47, the new >=0.29 minimum accepts it. But GrantServer._start() always passes ssl_context_factory to uvicorn.Config, and that argument was added in 0.47, as the comment notes. Local read grants, write grants, and upload policies then fail with a TypeError before the server starts.

Restore uvicorn>=0.47 and the matching requirement in uv.lock. The newer locked version does not protect installs that do not use the lock.

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

Comment:
**Local file transfers can fail**

If a user has an installed or pinned `uvicorn` version below `0.47`, the new `>=0.29` minimum accepts it. But `GrantServer._start()` always passes `ssl_context_factory` to `uvicorn.Config`, and that argument was added in `0.47`, as the comment notes. Local read grants, write grants, and upload policies then fail with a `TypeError` before the server starts.

Restore `uvicorn>=0.47` and the matching requirement in `uv.lock`. The newer locked version does not protect installs that do not use the 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,7 +70,7 @@ 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
]
# The Tensorlake sandbox provider, selected as the built-in `tensorlake` backend.
tensorlake = [
Expand All @@ -83,7 +83,7 @@ tenki = [
dev = [
"agentenv-framework[aws,explorer,gcp,sail,tensorlake,tenki]", # 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 @@ -92,7 +92,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