$ the-wire · showcase
Mid-stream provider recovery lands in AI SDK, Gemini video goes agentic
By RepoJournal · Filed · About Vercel
The AI SDK adds configurable recovery for provider errors that arrive after streamText starts streaming, and the Gemini Interactions adapter now supports agentic video processing.
The AI SDK's `streamText` previously terminated on any provider error received after streaming began, wasting completed model and tool work despite initial-call retry settings. A new `streamRetries` configuration gives consumers explicit bounded recovery that retries only the failed model step, with positive values enabling automatic recovery, 0 enabling callback-only recovery, and omission preserving the old behavior [1]. This shipped in the `ai@7.0.91` release [2]. Relatedly, the ACP harness now preserves replayed terminal events until the continued turn installs its stream listeners, preventing valid cross-process continuations from failing with `has no in-flight ACP turn to continue` [3].
The Google Gemini adapter previously supported only `static` video understanding in the Interactions API; video file parts now also accept `processing: agentic`, and the provider's `processing_call` and `processing_result` steps are exposed, opening up agentic video workflows [4]. Batch users get a retention fix: the OpenAI, xAI, and Google batch adapters uploaded the input JSONL inside `experimental_doStartBatch` and then dropped its id, so a caller that owns retention could not learn which file was created or when it expires. The upload file is now surfaced on the batch start result, and xAI previously uploaded with no `expires_after`, leaving files to live indefinitely [5].
The shop template now reads browse results live in the markdown routes to match its HTML pages; `/md/search` and `/md/collections/[handle]` used cached wrappers while the HTML pages fetched live, so an agent could see a different product set and facet counts than a shopper on the same URL [6]. The same template cleared all 20 React Compiler lint warnings across six sites, restructuring each rather than suppressing them, so the compiler can optimize those components [7].
Workflow stream reads no longer stall on a round trip: they now start the run-metadata and encryption-key lookup concurrently with the stream GET, keyed per readable session so a failed lookup can't surface as an unhandled rejection [8]. The Python SDK now reads gzip- and zstd-compressed payload envelopes, aligning with TypeScript's decrypt-then-decompress-then-deserialize pipeline and adding the `zstandard` dependency on Python <3.14 [9]. A Zod schema fix in `@workflow/world` accepts lazy terminal responses, which carry `outputRef` or `errorRef` without materializing `output` or `error`; `WorkflowRunSchema` had declared those keys required, which broke under Zod 4.4's required-object semantics [10].
Action items
- → Review the new streamRetries config in AI SDK 7.0.91 if you rely on streamText mid-stream resilience. vercel/ai [plan]
- → Check your batch retention: if you own cleanup for uploads, upgrade to get the uploaded file id surfaced. vercel/ai [plan]
- → Confirm markdown routes in your Hydrogen shop template now match the live HTML product sets. vercel/shop [monitor]
References
- [1] feat: add configurable, attempt-isolated recovery for mid-stream provider failures ↗ vercel/ai
- [2] Version Packages ↗ vercel/ai
- [3] fix(harness-acp): preserve continuation replay ↗ vercel/ai
- [4] feat(google): support agentic video processing in the Interactions API ↗ vercel/ai
- [5] feat(batch): surface the uploaded input file on the batch start result ↗ vercel/ai
- [6] Read browse results live in the markdown routes to match HTML (#552) ↗ vercel/shop
- [7] Clear all 20 React Compiler lint warnings in the template (#551) ↗ vercel/shop
- [8] [core] Prefetch stream read encryption keys ↗ vercel/workflow
- [9] workflow: read compressed payloads ↗ vercel/vercel-py
- [10] fix(world): accept lazy terminal run data - fix Zod schema for newer versions ↗ vercel/workflow