Rerank egressed directly while chat and embeddings on the SAME connection went
through the connection's proxy, so a provider that geo-blocks the host IP
(Voyage AI) failed on a connection that was otherwise working. handleRerank now
takes a connectionId, resolves that connection's proxy and wraps the upstream
fetch in runWithProxyContext; a failed lookup is logged and skipped rather than
turned into a request error. Also threads connectionId into the embeddings path
of runSingleModelTest, which had the same gap.
The change is lifted from #7420 by @kamenkadmitry. That PR could not be updated
in place: its head lives on an organization-owned fork, where GitHub's 'allow
edits from maintainers' does not grant push access, and its branch had drifted
~3 weeks (343 files of formatting churn once merged with the tip). Only the
proxy layer is taken here — #7420's voyage format adapter is superseded by
#7813 and was factually wrong about the Voyage response shape.
Refs #7350
Refs #7420
Co-authored-by: kamenkadmitry <kamenkadmitry@users.noreply.github.com>