## anthropics/buffa — v0.9.1…v0.9.2

_56 commits._

### Features
- **reflect: add DynamicMessage::try_from_message and BridgeError (#414)** (71fed8c)
- **protoc-gen-buffa: add unbox_oneof option (#392)** (5898e95)
- **types: add Api, Type, and SourceContext well-known types (#394)** (cec3585)
- **buffa-build: add Config::exclude_package knob (#383)** (e1c75fe)
- **benchmarks/history: re-measure the series 1-up and add v0.9.0 (#328)** (ccc9add)

### Fixes
- **perf: avoid allocating extension registry lookup keys (#393)** (103651d)
- **fix(reflect): compare DynamicMessage unknown fields by value (#388)** (e48ec0c)
- **fix(codegen): qualify generated serde paths (#384)** (ca173c2)
- **fix: serialize oneof message pointees for JSON (#372)** (625a4bf)
- **fix(codegen): qualify the core::fmt path in the generated Deserialize impl (#375)** (47d412a)
- **fix two panics reachable from untrusted input (#346)** (d954571)

### Backend
- **release: v0.9.2 (#424)** (1f5d80e)
- **codegen: precompute corpus-wide context once and share across generate() calls (#401)** (5a3f293)
- **descriptor: reject duplicate enum numbers without aliases (#410)** (8adabe1)
- **descriptor: reject reserved enum values (#405)** (836a39f)
- **descriptor: reject nonzero first value for open enums (#411)** (0c617a9)
- **descriptor: reject message-reserved fields (#412)** (32f4cea)
- **codegen: suppress non_camel_case_types warning on enums (#408) (#409)** (d0ee852)
- **text: accept comments in signed special floats (#404)** (f004f70)
- **json: reject empty Any type name (#402)** (dd37a9b)
- **reflect: shared_descriptor_pool_root — external path override for shared-pool mode (#399)** (9747e37)
- **reflect: preserve whitespace in FieldMask JSON paths (#391)** (fb00024)
- **descriptor: reject implementation-reserved field numbers (#389)** (c3dad21)
- **any: bound expansion depth when serializing nested Any (#339)** (ca59251)
- **reflect: bound JSON serialization nesting through google.protobuf.Any (#364)** (f9a39ec)
- **Merge repeated message values within one map entry in view and reflective decoders (#365)** (8029805)
- **Publish Vec length only after the wire bytes are copied (#380)** (25afe19)
- **view: drop OwnedView's Drop impl and store the view behind MaybeDangling (#379)** (82df3d3)
- **extensions: treat ProtoJSON null as unset (#355)** (154eb85)
- **json: preserve leading underscores in FieldMask components (#390)** (d6089ab)
- **codegen: wire shared_descriptor_pool through the plugins (#370)** (0358564)
- **buffa-build: shared_descriptor_pool with include_bytes! sidecar (#369)** (4134998)
- **codegen: warn when a kept file references an ungenerated or unmapped type (#292) (#352)** (50bba37)
- **codegen: emit FILE_DESCRIPTOR_SET_BYTES as a byte-string literal (#361)** (c7169eb)
- **reflect: honor ignore_unknown_fields for Empty (#367)** (4d9659f)
- **reflect: align ProtoJSON integer parsing with generated messages (#353)** (60dd963)
- **codegen: floor descriptor_pool()'s scaled element-memory bound at the default (#360)** (4641a3c)
- **reflect: batch map entries during decode instead of sorted-inserting (#348)** (2827cbf)
- **reflect: charge element memory for packed and closed-enum elements (#342)** (fed7e0a)
- **view: apply the element-memory budget to the lazy view family (#343)** (642ac65)
- **text: bound what the textproto parser materializes (#344)** (9cb5fdd)
- **reflect: stop to_dynamic panicking on views that decoded cleanly (#341)** (50ebf45)
- **view: apply the element-memory limit in generated decode_view (#338)** (e3738fa)
- **descriptor: cap fully-qualified symbol names (#347)** (feb7316)
- **extension: share one decode budget across an extension's records (#345)** (41ab94f)
- **size_cache: gate panic locations on debug_assertions (#366)** (b637c98)
- **bench: measure selective inline lists (#358)** (becf023)
- **reflect: shared descriptor pool mechanism (opt-in) (#311)** (fea9b8b)
- **extensions: align ProtoJSON integer parsing with generated fields (#356)** (a48eced)
- **extensions: keep both registry indexes consistent on replacement (#351)** (b97b0f4)
- **json: align extension bytes with ProtoJSON base64 parsing (#350)** (5d1ce0b)
- **reflect: reject unknown fields in Any WKT wrappers (#354)** (057ef60)
- **json: reject nonempty Any objects without @type (#334)** (aeb81cc)

### Docs
- **docs: correct two decode-limit claims that measurement contradicts (#349)** (aa3d15c)

### Chore
- **ci: run the shared-pool compile test in lint-and-test (#374)** (91a4cd1)
- **build: inherit buffa dependency from workspace (#386)** (29b1e7b)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/anthropics/buffa?utm_source=github-action)._