Skip to content

chore(deps): refresh to current, and remove two constraints holding it back#11

Merged
Jacob-Lasky merged 1 commit into
mainfrom
chore/dependency-refresh
Jul 25, 2026
Merged

chore(deps): refresh to current, and remove two constraints holding it back#11
Jacob-Lasky merged 1 commit into
mainfrom
chore/dependency-refresh

Conversation

@Jacob-Lasky

Copy link
Copy Markdown
Owner

Routine dependency refresh. The deepgram-sdk 6 → 7 major is deliberately not in here — one axis per change, so a failure names its own cause. That's the next PR.

The two constraints that were the actual problem

Both of the stale-pin shape:

  • python-dotenv==1.0.0 — an exact pin while 1.2.2 was current. Nothing here touches dotenv internals, so the pin bought nothing and blocked everything. Now >=1.2.2,<2.
  • pytest-asyncio<1.0 — held it at 0.26 while 1.4 was current. 1.0 is the release that made asyncio_mode and the loop-scope settings mandatory rather than warned about, and this project already sets all three in [tool.pytest.ini_options]. It was capped below a release it was already compatible with.

Notable resolutions

pytest           8.4.2   -> 9.1.1
pytest-asyncio   0.26.0  -> 1.4.0
starlette        0.52.1  -> 1.3.1
uvicorn          0.41.0  -> 0.51.0
websockets       15.0.1  -> 16.1.1
fastapi          0.135.1 -> 0.140.0
python-socketio  5.14.3  -> 5.16.3
python-multipart 0.0.22  -> 0.0.32
pydantic         2.12.5  -> 2.13.4

Verification

A starlette major and a websockets major are exactly what a unit suite misses, so beyond 113 passed, 1 skipped (warnings down 5 → 2):

  • App boots under uvicorn 0.51 / starlette 1.3; GET / returns 200.
  • socket.io handshake still negotiates through the ASGI wrapper.
  • A real WebSocket handshake completes on websockets 16 (test_wire_contract).
  • UI renders; the mode-gating probe passes in both modes, no console errors.

…t back

Routine dependency refresh. The deepgram-sdk 6 -> 7 major is deliberately NOT in
here: one axis per change, so a failure names its own cause.

Two constraints were the actual problem, both of the stale-pin shape:

- `python-dotenv==1.0.0` was an exact pin while 1.2.2 was current. Nothing here
  touches dotenv internals, so the pin bought nothing and blocked everything.
  Now a >=1.2.2,<2 range.
- `pytest-asyncio<1.0` held it at 0.26 while 1.4 was current. The 1.0 release
  made asyncio_mode and the loop-scope settings mandatory rather than warned
  about, and this project already sets all three in [tool.pytest.ini_options] —
  so the cap excluded a release it was already compatible with.

Notable resolutions from `uv lock --upgrade`:

    pytest           8.4.2   -> 9.1.1
    pytest-asyncio   0.26.0  -> 1.4.0
    starlette        0.52.1  -> 1.3.1
    uvicorn          0.41.0  -> 0.51.0
    websockets       15.0.1  -> 16.1.1
    fastapi          0.135.1 -> 0.140.0
    python-socketio  5.14.3  -> 5.16.3
    python-multipart 0.0.22  -> 0.0.32
    pydantic         2.12.5  -> 2.13.4

Verified beyond the suite, since a starlette major and a websockets major are
exactly what unit tests miss:

- 113 passed, 1 skipped (warnings down from 5 to 2).
- App boots under uvicorn 0.51 / starlette 1.3, GET / returns 200.
- socket.io handshake still negotiated through the ASGI wrapper.
- A real WebSocket handshake completes on websockets 16 (test_wire_contract).
- UI renders and the mode-gating probe passes in both modes.
@Jacob-Lasky
Jacob-Lasky merged commit 14a6979 into main Jul 25, 2026
1 check passed
@Jacob-Lasky
Jacob-Lasky deleted the chore/dependency-refresh branch July 25, 2026 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant