# What changed in @ag-ui/client

> 15 changes in @ag-ui/client 1 from its official release notes, upgrade guides and advisories: 11 breaking, 1 deprecations, 1 new APIs and options. Each one cited. Sources checked 2026-10-31. HTML: https://unstale.sh/npm/@ag-ui/client/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @ag-ui/client 1

### Breaking changes

- BinaryInputContent is retired from the public API; use image, audio, video, or document media parts with a source. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- EventEncoder omits optional protocol fields whose values are null before transmission; producers should emit the canonical absent-field shape. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- Validators are no longer re-exported by @ag-ui/client; import them from @ag-ui/core/schemas instead. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- The client enforces unknown-material stripping and malformed-value failures on paths with middleware and over protobuf, not only plain SSE. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- Repeated singular protobuf message fields are merged, including nested messages, metadata, and run inputs; later scalars win and repeated list entries append. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- The client fails a run when reasoning messages or spans are left open at RUN_FINISHED, in addition to rejecting orphaned fragments and reopens. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- Unknown keys on RunAgentInput are stripped before transmission; use forwardedProps for extra JSON intended for the agent. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- stripUnknown and StripResult are no longer exported from @ag-ui/client because they were enforcement-stage internals. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- The five THINKING_* events are retired from the public API; emit REASONING_* instead. Incoming legacy streams are translated by the compatibility boundary. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- Events with unrecognized types are dropped with a warning, and unknown properties on known events are stripped with a warning before subscribers see them. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- @ag-ui/client takes zod as a peer dependency; install it alongside the client because its enforcement stage validates with zod. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)

### Deprecations

- AbstractAgent.maxVersion is deprecated in favor of maxProtocolVersion; overrides of the old name still work and warn once per process. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)

### New APIs and options

- The client declares protocolVersion on every RunAgentInput and reads the producer's version on RUN_STARTED, warning for newer or uninterpretable versions. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)

### Behavior and default changes

- Pin maxProtocolVersion below the client package version to omit protocolVersion for peers whose parsers reject unknown members. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
- The client normalizes historically accepted whole optional null fields to absent before validation and warns for each translation. (1.0.0) — [upgrade guide](https://github.com/ag-ui-protocol/ag-ui/blob/HEAD/docs/migrating-to-1-0.mdx)
