chore(deps): land the services/api updates, websockets 17 included - #138
Merged
Merged
Conversation
alembic 1.18.5 -> 1.19.2 (#134), psycopg[binary] 3.3.4 -> 3.3.5 (#135), sqlalchemy 2.0.51 -> 2.0.52 (#136), hatchling 1.27.0 -> 1.32.0 (#133), and websockets 16.1.1 -> 17.1 (#137). websockets is the one worth naming. It is a major bump on the library that carries live interview audio, and voice/relay.py subclasses websockets.asyncio.client.connect to override process_redirect so the provider API key can never follow a redirect. That security property is pinned against the real class in test_actual_provider_transport_disables_proxy_and_all_redirects, not against a mock, so the suite is genuine evidence here rather than reassurance: a renamed attribute or changed signature in 17.x would fail it. All 95 voice relay tests pass, and the export audit still resolves the single WebSocket route. Note the four PRs Dependabot raised after develop was retired already target main, so the configuration change took effect immediately. Signed-off-by: L4XB <L4XB@users.noreply.github.com>
Member
Author
|
I have read and agree to the SixSentences CLA v1.0. |
This was referenced Sep 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
alembic1.18.5 → 1.19.2psycopg[binary]3.3.4 → 3.3.5sqlalchemy2.0.51 → 2.0.52hatchling1.27.0 → 1.32.0websockets16.1.1 → 17.1Batched because all five touch
services/api, whose export manifest binds everyfile by SHA-256 and has to be rehashed — something Dependabot cannot do from its
own branch — and because the branch requires checks to be up to date, so merging
them one at a time serialises five full CI cycles.
websockets 17 is the one worth looking at
It is a major bump on the library that carries live interview audio, and it
is a direct dependency, not a transitive one.
services/api/src/sixsentences_server/voice/relay.py:123subclasseswebsockets.asyncio.client.connectto overrideprocess_redirect, so theprovider API key can never follow a redirect to an untrusted host.
That matters for how much the test suite is worth here.
test_actual_provider_transport_disables_proxy_and_all_redirectsconstructs thereal class and asserts
connection.proxy is Noneand that a redirect isreturned unchanged. It is not a mock. A renamed attribute or a changed signature
anywhere in that path fails it at import or assertion time.
So the green suite is evidence rather than reassurance:
What it does not cover: no real socket is opened against a provider, so
wire-level behaviour changes in 17.x — framing, close codes, keepalive timing —
would not show up here. The relay's own policy layer (rate limits, budget,
receipts) is exercised, the transport is not.
Verification
The audit still resolves the single WebSocket route, which is the other place a
breaking change in the library would have surfaced.
Side note
Dependabot raised #133–#137 against
main— after #112 retireddevelop.The configuration change took effect on the next run, with nothing orphaned.