Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.246 Home All releases olderv2.1.245 v2.1.247newer
Claude Code v2.1.246

Artifact traffic can take a direct tunnel, off unless the host environment names hosts

Not switched on
Useful2 Signal3
Artifacts Notable not in their notes

Artifact traffic can take a direct tunnel when the runner environment names hosts; local runs keep the old route.

Publish, upload, comment and blob requests try a tunnel first, offered only when CCR_AGENT_PROXY_FRAME_HOSTS is set by the runner.

CCR_AGENT_PROXY_FRAME_HOSTS
What

Artifact publish, upload, comment and blob requests now go through a wrapper that first tries a direct tunnel and falls back to the existing gateway route when the tunnel is declined, refused, never opened, or errors. The tunnel is only offered when the environment variable CCR_AGENT_PROXY_FRAME_HOSTS is set and parses as a hostname list. Nothing in Claude Code writes that variable; it is supplied by the runner environment, so ordinary local runs keep the old path entirely.

Details
  • The tunnel route uses a proxy agent with no auth; the fallback route uses the session token against the existing gateway host.
  • Each failure writes a telemetry event recording why the tunnel was not used, and successful relays over the tunnel are flagged as such.
  • The variable is new in this build and sits among the other runner-supplied agent-proxy variables.
Evidence

[frame-tunnel] CCR_AGENT_PROXY_FRAME_HOSTS is malformed; keeping the gateway routes

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.

See this entry in the whole of v2.1.246 →