The device bridge now only connects to approved hosts, with local overrides limited to localhost.
What's wrong with this entry?
The device-registration bridge validates its dial URL before connecting, so it cannot be pointed at an arbitrary websocket host.
- new
isAllowedUrlcheck requireswss:, no username or password in the URL, and a hostname in {bridge.claudeusercontent.com, bridge-staging.claudeusercontent.com} - an operator-overridden base URL is allowed only through a separate same-origin check, which permits
ws:only for localhost, 127.0.0.1 and [::1] - no such check existed in 2.1.224
- the bridge only runs when non-essential egress is allowed, the provider is first-party, and the
allow_remote_sessionspolicy permits it; the base URL is overridable viaCLAUDE_REMOTE_TOOLS_BRIDGE_URL
bridge-staging.claudeusercontent.com
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.234
Remote bridge replaces stale-epoch recovery with a one-shot supersession close
Both mention bridge
-
v2.1.236
Remote bridge waits for the disconnect notice, and an inbox fetch that is always off
Both mention bridge
-
v2.1.236
Bridge shuts down cleanly on SIGHUP
Both mention bridge