The Wire · Showcase
BUFFA PATCHES SILENT JSON PRECISION LOSS, CONNECT-RUST HARDENS gRPC VALIDATION
By RepoJournal · Filed · About Anthropic
Buffa fixed a critical JSON decoder bug where large integer strings like "1e5" were silently rounded past the 2^53 precision boundary, while connect-rust tightened response validation across all five call shapes.
The buffa team shipped three correctness fixes that prevent silent data corruption. First, the JSON parser now handles quoted integers exactly instead of falling back to f64 for decimal and scientific notation [1], eliminating precision loss above 2^53. Second, reflective field mutations now validate that descriptors belong to the message before applying changes, blocking cross-message corruption in release builds [3]. Third, descriptor pool loading is now transactional: if any registration or link pass fails, the entire operation rolls back instead of leaving the pool partially loaded [4]. Benchmarks for v0.8.0 are live [2], showing decode_view gains of 17-21% on string-heavy shapes from the fast-utf8 default. Over in connect-rust, the client now preserves transport errors instead of remapping them to Unavailable [6], rejects malformed END_STREAM JSON as protocol errors [7], and validates gRPC response content-type strictly by protocol and codec rather than prefix matching [5]. Server-streaming responses now preserve headers even when END_STREAM is malformed [9]. The protoc plugin can now gate generated clients behind custom feature names [8].
Action items
- → Review and merge buffa JSON precision fix before any release including large integer handling [ref:1] anthropics/buffa [immediate]
- → Upgrade connect-rust to pick up gRPC validation and error preservation across all call shapes [ref:6][ref:7] anthropics/connect-rust [plan]
- → Monitor v0.8.0 benchmark results for regressions in your decode paths [ref:2] anthropics/buffa [monitor]
References
- [1] json: parse quoted integers exactly ↗ anthropics/buffa
- [2] benchmarks/history: add v0.8.0 data point ↗ anthropics/buffa
- [3] descriptor: validate reflective field membership ↗ anthropics/buffa
- [4] descriptor: make add_file_descriptor_set transactional ↗ anthropics/buffa
- [5] Tighten gRPC response content-type validation ↗ anthropics/connect-rust
- [6] Preserve transport ConnectErrors in client calls ↗ anthropics/connect-rust
- [7] Reject malformed Connect END_STREAM JSON ↗ anthropics/connect-rust
- [8] Make generated client feature gate configurable ↗ anthropics/connect-rust
- [9] client: preserve headers on malformed end streams (#201) anthropics/connect-rust
FAQ
- What changed in Anthropic on June 29, 2026?
- Buffa fixed a critical JSON decoder bug where large integer strings like "1e5" were silently rounded past the 2^53 precision boundary, while connect-rust tightened response validation across all five call shapes.
- What should Anthropic teams do about it?
- Review and merge buffa JSON precision fix before any release including large integer handling [ref:1] • Upgrade connect-rust to pick up gRPC validation and error preservation across all call shapes [ref:6][ref:7] • Monitor v0.8.0 benchmark results for regressions in your decode paths [ref:2]
- Which Anthropic repositories shipped on June 29, 2026?
- anthropics/buffa, anthropics/connect-rust