The Wire · Showcase
NEXT.JS REMOVES UNSTABLE_EAGER AS AI SDK BLOCKS UNSAFE TOOL EXECUTION
By RepoJournal · Filed · About Vercel
Next.js is cleaning house on Partial Prefetching while the AI SDK ships a safety patch that stops side-effecting tools from running after truncated model outputs.
Next.js pulled the plug on `unstable_eager`, an incomplete Partial Prefetching experiment that was causing speculative prefetches in incremental opt-in apps [1]. The team also reverted the HMR client to the firehose feed, keeping the split after Server HMR moved to pull-based [2]. Turbopack now evaluates cross-module constants at compile time, so `if (IS_DEV)` truly dead-code-eliminates [3]. Meanwhile, the AI SDK patched a serious hole where side-effecting tools could execute after "length", "error", "content-filter", or other terminal finish reasons, allowing automatic execution only for stop and tool-calls [4]. Tool call IDs that arrive as empty strings, as seen with Gemini 2.5 Pro, now get generated fallback IDs [5]. WorkflowAgent retries no longer leave stale partial tool calls blocking approvals, thanks to a new invalidation event [6]. Over in vercel/workflow, a batch pre-claim optimization folds lazy-inline steps into the same `createBatch` POST, trimming individual claim requests in a 20-step fan-out [7]. And vercel/eve added versioned wire schema for session inbox hooks, so payloads survive redeploys without stranding sessions [8].
One email a day. Unsubscribe in one click.
Keep up with Vercel in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → If you use Partial Prefetching with incremental opt-in, verify the speculative prefetch bug is fixed after upgrading Next.js vercel/next.js [plan]
- → Upgrade @ai-sdk/react to include the tool-execution safety patch before running agents in production vercel/ai [immediate]
- → Update your eve session inbox hooks to use the new versioned wire encoding vercel/eve [plan]
- → Monitor the workflow pre-claim change for batched step execution in high-fanout runs vercel/workflow [monitor]
References
- [1] [PPF] Remove `unstable_eager` (#97524) vercel/next.js
- [2] Remove HmrTarget (#97253) vercel/next.js
- [3] Turbopack: cross-module constants ↗ vercel/next.js
- [4] fix: prevent automatic tool execution after unsafe model finish reasons ↗ vercel/ai
- [5] fix: handle empty string tool call IDs ↗ vercel/ai
- [6] fix: WorkflowAgent retries leave stale partial tool calls blocking approvals ↗ vercel/ai
- [7] Batch: pre-claim inline steps in the same batch ↗ vercel/workflow
- [8] feat(eve): versioned wire schema for session inbox hook payloads ↗ vercel/eve