Description
agent-framework-ag-ui 1.2.2 declares fastapi>=0.121.0,<0.140.0. fastapi has been at 0.141.1 since 2026-07-29. Two consequences follow for a consumer:
- A project already on a current
fastapi cannot add the AG-UI connector at all. The resolve is unsatisfiable.
- A fresh install of the connector holds the project at
fastapi 0.139.2, which is two minor versions behind.
The bound last moved on 2026-07-28 in #7342, from <0.138.1 to <0.140.0. fastapi 0.140.0 had shipped four days earlier, and 0.141.0 shipped the next day, so the ceiling was current for about one day.
My question is whether <0.140.0 guards a known breakage, or whether it is the residue of the resolver conflict recorded in #7339. The evidence I can see points to the second reading, so I would rather ask than assume.
The failure output in #7339 does not name a fastapi incompatibility. It names a sibling package:
Because ... agent-framework-devui depends on fastapi>=0.115.0,<0.138.1 ...
And because you require fastapi==0.139.2 and agent-framework-devui,
we can conclude that your requirements are unsatisfiable.
#7342 describes that class of result as a false conflict, caused by package-scoped probes that were "following every optional extra and dependency group on transitive workspace packages", which "pulled in the unrelated core[all] surface and DevUI's FastAPI constraint". That PR fixed part of the probe and expanded the validated range "through 0.139.x", which is where the bound sits today.
On main right now, two sibling packages still declare the older ceiling: devui (python/packages/devui/pyproject.toml, fastapi>=0.115.0,<0.138.1) and hosting-responses. I can reproduce their effect on a consumer, below.
If the reading above is right, then raising the AG-UI bound needs one of two things first: those siblings move off <0.138.1, or the probe isolation from #7342 extends far enough that AG-UI stops inheriting their ceiling. That is why I am reporting it here rather than opening a pull request against the bound alone.
Code Sample
Three resolves against current published versions, on 2026-09-03. Nothing here is workspace-local.
# 1. A project on a current fastapi cannot add the connector.
$ printf 'agent-framework-ag-ui==1.2.2\nfastapi==0.141.1\n' > requirements.in
$ uv pip compile requirements.in --python-version 3.12
# -> unsatisfiable, output below
# 2. The connector alone holds the project two minors back.
$ printf 'agent-framework-ag-ui==1.2.2\n' > alone.in
$ uv pip compile alone.in --python-version 3.12
agent-framework-ag-ui==1.2.2
fastapi==0.139.2
# 3. Adding devui lowers the ceiling further, to 0.138.0.
$ printf 'agent-framework-ag-ui==1.2.2\nagent-framework-devui\n' > withdevui.in
$ uv pip compile withdevui.in --python-version 3.12
agent-framework-ag-ui==1.2.2
agent-framework-devui==1.0.0b260903
fastapi==0.138.0
# 4. An override is the only way through for case 1.
$ uv pip compile alone.in --python-version 3.12 --override <(printf 'fastapi==0.141.1\n')
agent-framework-ag-ui==1.2.2
fastapi==0.141.1
In a real project the override goes in pyproject.toml:
[tool.uv]
override-dependencies = ["fastapi==0.141.1"]
Error Messages / Stack Traces
× No solution found when resolving dependencies:
╰─▶ Because agent-framework-ag-ui==1.2.2 depends on
fastapi>=0.121.0,<0.140.0 and you require agent-framework-ag-ui==1.2.2,
we can conclude that you require fastapi>=0.121.0,<0.140.0.
And because you require fastapi==0.141.1, we can conclude that your
requirements are unsatisfiable.
The message is accurate, but it does not tell a consumer whether the bound is protective. That is the part I cannot answer from the outside.
Package Versions
agent-framework-ag-ui: 1.2.2, agent-framework-core: 1.17.0, agent-framework-devui: 1.0.0b260903, fastapi: 0.141.1
Python Version
Python 3.12 for the resolves above. Python 3.12.13 for the round trip described below.
Additional Context
The override looks safe in practice, on one round trip. On agent-framework-ag-ui 1.1.0 with agent-framework-core 1.14.0 and Python 3.12.13, with override-dependencies = ["fastapi==0.141.1"] in place, an agent served through the AG-UI connector completed a full round trip: tool calls, an ACTIVITY_SNAPSHOT carrying a2ui_operations, and RUN_FINISHED. I saw no incompatibility. That is one round trip on one version, so it is a weak signal on its own. It is worth stating because it is consistent with a stale bound rather than a protective one.
Why I do not expect this to correct itself. .github/workflows/python-dependency-maintenance.yml runs weekly, and sets DEPENDENCY_RELEASE_CUTOFF to seven days before the run. _dependency_bounds_upper_impl.py applies that as an exclude_newer filter, so a candidate soaks for a week before it becomes eligible. fastapi 0.141.1 has been eligible since roughly 2026-08-05. The scheduled runs on Aug 10, Aug 17, Aug 24 and Aug 31 all concluded successfully, and the AG-UI bound did not move across releases 1.1.0, 1.2.0, 1.2.1 and 1.2.2. I may be misreading the workflow, and I would welcome a correction.
Two things would help consumers either way. If the bound is protective, saying so in the release notes would turn a bare resolver error into a decision a reader can make. If the bound is conservative, raising it removes an override from every downstream project that runs a current fastapi.
Thank you for looking at it.
Description
agent-framework-ag-ui1.2.2 declaresfastapi>=0.121.0,<0.140.0.fastapihas been at 0.141.1 since 2026-07-29. Two consequences follow for a consumer:fastapicannot add the AG-UI connector at all. The resolve is unsatisfiable.fastapi0.139.2, which is two minor versions behind.The bound last moved on 2026-07-28 in #7342, from
<0.138.1to<0.140.0.fastapi0.140.0 had shipped four days earlier, and 0.141.0 shipped the next day, so the ceiling was current for about one day.My question is whether
<0.140.0guards a known breakage, or whether it is the residue of the resolver conflict recorded in #7339. The evidence I can see points to the second reading, so I would rather ask than assume.The failure output in #7339 does not name a
fastapiincompatibility. It names a sibling package:#7342 describes that class of result as a false conflict, caused by package-scoped probes that were "following every optional extra and dependency group on transitive workspace packages", which "pulled in the unrelated
core[all]surface and DevUI's FastAPI constraint". That PR fixed part of the probe and expanded the validated range "through 0.139.x", which is where the bound sits today.On
mainright now, two sibling packages still declare the older ceiling:devui(python/packages/devui/pyproject.toml,fastapi>=0.115.0,<0.138.1) andhosting-responses. I can reproduce their effect on a consumer, below.If the reading above is right, then raising the AG-UI bound needs one of two things first: those siblings move off
<0.138.1, or the probe isolation from #7342 extends far enough that AG-UI stops inheriting their ceiling. That is why I am reporting it here rather than opening a pull request against the bound alone.Code Sample
Three resolves against current published versions, on 2026-09-03. Nothing here is workspace-local.
In a real project the override goes in
pyproject.toml:Error Messages / Stack Traces
The message is accurate, but it does not tell a consumer whether the bound is protective. That is the part I cannot answer from the outside.
Package Versions
agent-framework-ag-ui: 1.2.2, agent-framework-core: 1.17.0, agent-framework-devui: 1.0.0b260903, fastapi: 0.141.1
Python Version
Python 3.12 for the resolves above. Python 3.12.13 for the round trip described below.
Additional Context
The override looks safe in practice, on one round trip. On
agent-framework-ag-ui1.1.0 withagent-framework-core1.14.0 and Python 3.12.13, withoverride-dependencies = ["fastapi==0.141.1"]in place, an agent served through the AG-UI connector completed a full round trip: tool calls, anACTIVITY_SNAPSHOTcarryinga2ui_operations, andRUN_FINISHED. I saw no incompatibility. That is one round trip on one version, so it is a weak signal on its own. It is worth stating because it is consistent with a stale bound rather than a protective one.Why I do not expect this to correct itself.
.github/workflows/python-dependency-maintenance.ymlruns weekly, and setsDEPENDENCY_RELEASE_CUTOFFto seven days before the run._dependency_bounds_upper_impl.pyapplies that as anexclude_newerfilter, so a candidate soaks for a week before it becomes eligible.fastapi0.141.1 has been eligible since roughly 2026-08-05. The scheduled runs on Aug 10, Aug 17, Aug 24 and Aug 31 all concluded successfully, and the AG-UI bound did not move across releases 1.1.0, 1.2.0, 1.2.1 and 1.2.2. I may be misreading the workflow, and I would welcome a correction.Two things would help consumers either way. If the bound is protective, saying so in the release notes would turn a bare resolver error into a decision a reader can make. If the bound is conservative, raising it removes an override from every downstream project that runs a current
fastapi.Thank you for looking at it.