# Changelog
## 0.3.1
### Added
- `update_page_form_field_values` now also matches a requested field by its leaf
`/T` (the final `.`-segment) when the fully-qualified name and partial name
don't match. Callers (LLM agents) reliably copy the leaf field name but often
drop/mangle intermediate AcroForm group segments (e.g. request
`…Page1[0].f1_07[0]` for a field actually at `…Page1[0].Address_ReadOrder[0].f1_07[0]`);
the leaf `/T` identifies the widget, so these now resolve instead of silently
not matching.
## 0.3.0
### Fixed
- `update_page_form_field_values` now fills *merged field+widget* annotations
(the annotation itself carries `/FT` and `/T`, as in most IRS / USCIS / DMV
forms) by their **fully-qualified name** — the same name `get_fields()`
returns. Previously the qualified name was computed from the widget's
`/Parent`, dropping the leaf `/T` segment, so filling by the name reported by
inspection silently matched nothing.
### Changed (breaking)
- `update_page_form_field_values` now returns `Result<FillReport>` instead of
`Result<()>`. `FillReport` reports `matched` / `unmatched` requested field
names and `widgets_updated`, so callers can detect (and surface) a fill that
matched no widget instead of treating a no-op as success.