> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. ## 5.29.1 **`(fix):`** Fixed generated WireMock stubs for OAuth client credentials APIs whose token endpoint is itself marked as authenticated: the token (and refresh) endpoint stub no longer requires an `Authorization` header, since the token request is made to obtain the token and cannot carry one yet. ## 5.29.0 **`(feat):`** Add `stream_abstraction`. With it enabled, streaming endpoints return a `Stream[T]` (`AsyncStream[T]` for async clients) rather than a plain iterator, mirroring the TypeScript SDK's `core.Stream`. Iterating the stream still yields the parsed payloads, while `with_metadata()` yields them wrapped in a `StreamEvent` that also exposes the server-sent event `id`, `event` and `retry` fields — `for event in client.completions.stream(...).with_metadata()` — so reading an event id no longer requires dropping down to `with_raw_response`. The request is still only issued once the stream is iterated, the stream owns the underlying response and releases it when exhausted, closed or exited as a (asynchronous) context manager, and the raw client's `data` is the same stream. `AsyncStream` is awaitable, so `await client.completions.stream(...)` and `async for chunk in client.completions.stream(...)` both work. Defaults to `false`, so signatures and snippets are unchanged until you opt in. **`(fix):`** Server-sent events carrying no data, such as comment-only and retry-only frames, are skipped instead of being parsed as a payload, which previously failed model construction and logged a warning. **`(feat):`** `HttpResponse` and `AsyncHttpResponse` expose the underlying `httpx.Response` through a public `response` property. **`(fix):`** Fix the generated async examples for streaming endpoints, which awaited the method call — `response = await client.completions.stream(...)` — even though it returns an async generator and raises `TypeError: 'async_generator' object can't be awaited`.