+24
−4
+1
−0
Loading
wsproto has a known upstream bug (Kludex/uvicorn#997) where a client that
abandons a connection without closing cleanly (e.g. a page reload) can
wedge it into an unrecoverable state instead of raising — matches the
"Unk with no crash" reports on the LAN client, where tight timing makes
the underlying close race easier to hit than over the VPN link.
noctua.app.run() now tries ws="websockets-sansio" first, falling back to
the legacy "websockets" impl if the installed package is too old for the
sans-io API. Never falls back further to wsproto/auto — that's the
backend being replaced. Added "websockets" to pyproject.toml (previously
absent, which is why uvicorn's "auto" was silently landing on wsproto).
Co-Authored-By:
Claude Sonnet 5 <noreply@anthropic.com>