RepoJournal
Anthropic

@anthropics

Claude SDKs and developer tooling

Keep up with Anthropic in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: AI / ML Full archive →

The Wire · Showcase

CONNECT-RUST CLOSES STREAMING RPC SECURITY GAP, INTERCEPTOR CHAIN NOW COVERS ALL CALL SHAPES

By RepoJournal · Filed · About Anthropic

Streaming RPCs have been bypassing the entire interceptor chain in connect-rust - a security hole that's fixed as of today with full Stream-shaped intercept support.

The interceptor chain in connect-rust covered only unary RPCs [1], leaving server-streaming, client-streaming, and bidirectional streaming calls to skip authorization entirely. That's not a gap, that's a vulnerability. PR #121 adds Interceptor::intercept_streaming, a Stream-shaped interceptor that covers all three streaming shapes and closes the chain. In parallel, the stack is tightening around message decoding efficiency: Payload now type-erases and lazily decodes message bodies [2], so when an interceptor reads the request body, that decode is cached and reused by handlers instead of decoding twice [3]. HttpClientBuilder gets connect_timeout control [4], letting callers on flaky network paths (NAT gateways under churn, silent SYN drops) fail fast instead of waiting 130 seconds on kernel defaults. And Server now proxies with_interceptor and with_interceptor_arc directly [5], so standalone Server users don't have to drop down to ConnectRpcService constructors. On the Claude plugins side, first-party integrations from Apollo, Appwrite, Atlassian, and 21 other major-brand orgs are now promoted and SHA-pinned [6]. A separate sweep bumps 25 plugin pins to upstream HEAD across the h-r range [7]. Over on claude-code-action, the allowed_bots check now fires after actor account type resolution [8], keeping the allowlist correctly scoped to bot/app accounts. Three point releases shipped: v1.0.127 with the actor resolution refactor [9], plus v1.0.126 and v1.0.125 [10], [11]. One critical fix: claude-plugins-official now quotes CLAUDE_PLUGIN_ROOT in all five hook commands [12], unblocking Windows paths with spaces that were erroring on every tool call.

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] interceptor: streaming RPC support via Stream-shaped intercept_streaming (#121) anthropics/connect-rust
  2. [2] payload: AnyMessage and Payload — type-erased, lazily-decoded message bodies (#113) anthropics/connect-rust
  3. [3] dispatcher: pass Payload to call_unary so handlers reuse the interceptor decode (#119) anthropics/connect-rust
  4. [4] client: HttpClientBuilder with connect_timeout (#117) anthropics/connect-rust
  5. [5] server: proxy with_interceptor / with_interceptor_arc to ConnectRpcService (#123) anthropics/connect-rust
  6. [6] Add 24 first-party plugins from major-brand orgs (#1919) anthropics/claude-plugins-official
  7. [7] Bump 25 plugin SHA pins to upstream HEAD (huggingface–railway) ↗ anthropics/claude-plugins-official
  8. [8] Resolve actor account type before applying allowed_bots (#1330) anthropics/claude-code-action
  9. [9] v1.0.127 ↗ anthropics/claude-code-action
  10. [10] v1.0.126 ↗ anthropics/claude-code-action
  11. [11] v1.0.125 ↗ anthropics/claude-code-action
  12. [12] fix: quote \${CLAUDE_PLUGIN_ROOT} in hookify and security-guidance hook commands anthropics/claude-plugins-official

Quick answers

What shipped in Anthropic on May 20, 2026?
Streaming RPCs have been bypassing the entire interceptor chain in connect-rust - a security hole that's fixed as of today with full Stream-shaped intercept support. In total, 17 commits, 15 pull requests, and 4 releases landed.
Who contributed to Anthropic on May 20, 2026?
1 developer shipped this update, including tobinsouth.
What were the notable Anthropic updates?
interceptor: streaming RPC support via Stream-shaped intercept_streaming (#121), payload: AnyMessage and Payload — type-erased, lazily-decoded message bodies (#113), and dispatcher: pass Payload to call_unary so handlers reuse the interceptor decode (#119).

More from @anthropics

Daily updates, in your inbox

Follow Anthropic

Keep up with Anthropic in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?