{"collection":{"slug":"application-platforms","name":"Application Platforms"},"digest":{"id":"cwd_G7dcJMCVmDv3_LeLwmsIZ","weekStart":"2026-05-18","title":"Deno 2.8, Vercel's AI provider expansion, and Cloudflare's developer experience refinements","intro":"Deno shipped its v2.8 release with six new CLI subcommands, import defer syntax, and 3.66x faster npm installs — while Vercel expanded its AI SDK with a new AWS provider for Anthropic models and Cloudflare added tunnel QR codes to its Vite plugin.","body":"### Deno 2.8 lands with a dozen new features\n\nThe biggest story this week is [Deno v2.8](/release/rel_HQ5mSyNNxv3W1jXtDnYKr-deno-v2-8-0-adds-workspace-support-module-hooks-and-node-js-compatibility), a major release that introduces workspace support for `deno bump-version`, a `catalog:` protocol for centralized dependency versions, and the implementation of `module.registerHooks()` for CommonJS and ESM. Six new CLI subcommands arrive: `deno transpile`, `deno pack`, `deno bump-version`, `deno ci`, `deno why`, and `deno audit fix`. Cold npm installs are now 3.66x faster, and the runtime upgrades TypeScript to 6.0.3 and V8 to 14.9. Network debugging is available directly in Chrome DevTools, and `deno compile` is now framework-aware. The [changelog post](/release/rel_0km14ANxplkBccOm53Rqz-deno-2-8-adds-import-defer-six-new-cli-subcommands-and-3-66x-faster-npm-installs) also highlights `import defer` syntax — a forward-looking JavaScript feature — and text import stabilization.\n\n### AI SDKs: a new AWS provider and streaming fixes\n\nVercel's AI SDK saw particularly heavy activity. The headliner is the [@ai-sdk/anthropic-aws v1.0.0](/release/rel_r21ox2Y9b8ABJqyUln-Dq-ai-sdk-ai-sdk-anthropic-aws-v1-0-0-launches-aws-provider-for-anthropic-models) provider (with a matching canary release), enabling Anthropic model access through AWS infrastructure. Both the stable and canary [Anthropic providers](/release/rel_ZNFQbw-drMzWlVfmh5jyb-ai-sdk-anthropic-provider-fixes-code-execution-tool-dynamic-calls) gained error handling for the `websearch` tool. The [Google provider](/release/rel_Trk3DvIw6NJy56hTCoXNd-ai-sdk-google-3-0-79-adds-search-grounding-support-to-generateimage) added search grounding support to `generateImage`, while [Black Forest Labs](/release/rel_MWB9Lk7uaR8cI8OjjQo2V-ai-sdk-black-forest-labs-v2-0-0-canary-45-fixes-fill-pro-model-image-field) fixed its fill pro model to use the correct `image` field. Gateway received a new [service tier option](/release/rel_f0sNsDr9k5JRugT8fui8I-ai-sdk-gateway-v3-0-120-adds-service-tier-option) (`flex` or `priority`), and the canary gateway also added [optional Vercel team scoping](/release/rel_y1n4gxl7lQ2BMR4ovx4Aq-ai-sdk-gateway-v4-0-0-canary-90-adds-optional-vercel-team-scoping-for) for authentication. Both [@ai-sdk/openai-compatible](/release/rel_Egl7GrX6lgx6qzOBtQ976-ai-sdk-ai-sdk-openai-compatible-3-0-0-canary-51-accepts-empty-string-role-in) and its stable counterpart [v2.0.48](/release/rel_Eu5fto9pERnXQx5ovxD_7-ai-sdk-openai-compatible-v2-0-48-accepts-empty-string-role-in-streaming-delta) now accept empty string `role` values in streaming delta chunks. MCP transport received a quality-of-life fix: [duplicate auth refresh calls on HTTP transport](/release/rel_e1f24jYPV6Cxm9xTbKJaX-ai-sdk-mcp-2-0-0-canary-53-deduplicates-auth-refresh-on-http-transport) are now deduplicated.\n\n### Cloudflare: smaller bundles, smarter tunnels, and new bindings\n\nCloudflare's Workers SDK shipped a bundle shrink worth noting. The [vitest-pool-workers](/release/rel_yfwYqKusjZvkXve6YxM-0-workers-vitest-pool-workers-v0-16-9-shrinks-bundle-by-deriving-externals-from) test utility now derives its external bundler list from `package.json` dependencies rather than a hand-maintained list, dropping the published bundle from ~489 KB to 125 KB — and eliminating accidental references to `undici`. The companion [workers-utils](/release/rel_O87BKPqsdx47cGrtW_Ott-workers-cloudflare-workers-utils-0-21-1-marks-package-side-effect-free-and-fixes) package marked itself `sideEffects: false` for tree-shaking and moved `undici` to runtime dependencies.\n\nThe [Vite plugin v1.38.0](/release/rel_VUglO7Hkfq9-QHtovDb_L-workers-vite-plugin-v1-38-0-prints-qr-code-for-tunnel-urls) prints a QR code alongside tunnel URLs when using `wrangler dev --tunnel` or `tunnel: true` — a small but pragmatic touch for mobile testing. Wrangler itself ([v4.94.0](/release/rel_SLG9y16M6e6h_MsBMDKyT-cloudflare-workers-v4-94-0-adds-ai-skills-installation-and-tunnel-qr-codes)) adds automatic AI skills installation for coding agents, with a `--install-skills` flag to skip the prompt, and the [workerd runtime](/release/rel_1Aq45RLeGa5_BhY9TfH7N-cloudflare-workers-v1-20260522-1-adds-kimi-k2-6-and-web-search-binding-types) adds Kimi K2.6 model types and Web Search binding types. Miniflare [v4.20260521.0](/release/rel_CkVXZkLHFnxKfVAKir4Q--workers-miniflare-4-20260521-0-fixes-tcp-requests-with-outboundservice) fixes TCP requests failing when `outboundService` is configured.\n\n### Next.js and Turborepo: defaults and fixes\n\nNext.js [v16.3.0-canary.26](/release/rel_eugUvcdeyN_pZ1lkFJnS3-next-js-v16-3-0-canary-26-enables-varyparams-optimisticrouting-and) enables three experimental features — `varyParams`, `optimisticRouting`, and `cachedNavigations` — by default. App Shell prefetches now respond on the server, and a Turbopack crash when `node_modules/next` is briefly unresolvable is fixed. The follow-up [canary.27](/release/rel_YdkspDZdEFBHkSJ0usE7i-next-js-v16-3-0-canary-27-reverts-ppr-routes-change-and-prerendered-static) reverts a change that included PPR routes in `dynamicRoutes` regardless of revalidate time, and prere renders static metadata under dynamic segments to canonical pathnames.\n\nTurborepo [v2.9.15-canary.6](/release/rel_kKFVMZT_VCkPiuEh9tsLP-turborepo-v2-9-15-canary-6-restores-task-completion-semantics-and-fixes-bun) restores task completion semantics and fixes nested Bun workspace dependency versions being lost. The subsequent [canary.7](/release/rel_BgY7nILWhxj11NxWWxPip-turborepo-v2-9-15-canary-7-fixes-release-pr-auto-merge-and-experimentalci-config) restores release PR auto-merge and adds gitignore matcher indexing. Vercel CLI [v54.4.1](/release/rel_cHqtvP0OvTvBQN4d7WqZu-vercel-cli-v54-4-1-suppresses-metrics-query-status-with-json-format) suppresses metrics query status output when using `--format=json`.","releaseIds":["rel_HQ5mSyNNxv3W1jXtDnYKr","rel_0km14ANxplkBccOm53Rqz","rel_r21ox2Y9b8ABJqyUln-Dq","rel_ZNFQbw-drMzWlVfmh5jyb","rel_Trk3DvIw6NJy56hTCoXNd","rel_MWB9Lk7uaR8cI8OjjQo2V","rel_f0sNsDr9k5JRugT8fui8I","rel_y1n4gxl7lQ2BMR4ovx4Aq","rel_Egl7GrX6lgx6qzOBtQ976","rel_Eu5fto9pERnXQx5ovxD_7","rel_e1f24jYPV6Cxm9xTbKJaX","rel_yfwYqKusjZvkXve6YxM-0","rel_O87BKPqsdx47cGrtW_Ott","rel_VUglO7Hkfq9-QHtovDb_L","rel_SLG9y16M6e6h_MsBMDKyT","rel_1Aq45RLeGa5_BhY9TfH7N","rel_CkVXZkLHFnxKfVAKir4Q-","rel_eugUvcdeyN_pZ1lkFJnS3","rel_YdkspDZdEFBHkSJ0usE7i","rel_kKFVMZT_VCkPiuEh9tsLP","rel_BgY7nILWhxj11NxWWxPip","rel_cHqtvP0OvTvBQN4d7WqZu"],"releaseCount":116,"generatedAt":"2026-07-11T16:52:02.998Z","releases":[{"id":"rel_HQ5mSyNNxv3W1jXtDnYKr","title":"Deno v2.8.0 adds workspace support, module hooks, and Node.js compatibility enhancements","path":"/release/rel_HQ5mSyNNxv3W1jXtDnYKr-workspace-support-module-registerhooks-node-js-compat-expanded","org":{"slug":"deno","name":"Deno"},"importance":null},{"id":"rel_0km14ANxplkBccOm53Rqz","title":"Deno 2.8 adds import defer, six new CLI subcommands, and 3.66x faster npm installs","path":"/release/rel_0km14ANxplkBccOm53Rqz-import-defer-ships-npm-installs-3-66x-faster-six-new-cli-subcommands","org":{"slug":"deno","name":"Deno"},"importance":null},{"id":"rel_r21ox2Y9b8ABJqyUln-Dq","title":"AI SDK @ai-sdk/anthropic-aws v1.0.0 launches AWS provider for Anthropic models","path":"/release/rel_r21ox2Y9b8ABJqyUln-Dq-new-ai-sdk-anthropic-aws-provider-for-anthropic-models-on-aws","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_ZNFQbw-drMzWlVfmh5jyb","title":"AI SDK Anthropic provider fixes code_execution tool dynamic calls","path":"/release/rel_ZNFQbw-drMzWlVfmh5jyb-code-execution-tool-dynamic-calls-fixed","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_Trk3DvIw6NJy56hTCoXNd","title":"AI SDK Google @3.0.79 adds search grounding support to generateImage","path":"/release/rel_Trk3DvIw6NJy56hTCoXNd-generateimage-now-supports-google-search-grounding","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_MWB9Lk7uaR8cI8OjjQo2V","title":"AI SDK black-forest-labs v2.0.0-canary.45 fixes fill pro model image field","path":"/release/rel_MWB9Lk7uaR8cI8OjjQo2V-fill-pro-model-uses-correct-image-field","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_f0sNsDr9k5JRugT8fui8I","title":"AI SDK Gateway v3.0.120 adds service tier option","path":"/release/rel_f0sNsDr9k5JRugT8fui8I-service-tier-option-added-to-gatewayprovideroptions","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_y1n4gxl7lQ2BMR4ovx4Aq","title":"AI SDK Gateway v4.0.0-canary.90 adds optional Vercel team scoping for authentication","path":"/release/rel_y1n4gxl7lQ2BMR4ovx4Aq-gateway-auth-now-supports-optional-vercel-team-scoping","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_Egl7GrX6lgx6qzOBtQ976","title":"AI SDK @ai-sdk/openai-compatible@3.0.0-canary.51 accepts empty string role in streaming delta chunks","path":"/release/rel_Egl7GrX6lgx6qzOBtQ976-empty-string-role-now-accepted-in-streaming-delta-chunks","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_Eu5fto9pERnXQx5ovxD_7","title":"@ai-sdk/openai-compatible v2.0.48 accepts empty string role in streaming delta chunks","path":"/release/rel_Eu5fto9pERnXQx5ovxD_7-streaming-delta-chunks-accept-empty-string-role","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_e1f24jYPV6Cxm9xTbKJaX","title":"@ai-sdk/mcp 2.0.0-canary.53 deduplicates auth refresh on HTTP transport","path":"/release/rel_e1f24jYPV6Cxm9xTbKJaX-http-transport-auth-refresh-deduplicated","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_yfwYqKusjZvkXve6YxM-0","title":"Workers vitest-pool-workers v0.16.9 shrinks bundle by deriving externals from package.json","path":"/release/rel_yfwYqKusjZvkXve6YxM-0-bundle-shrinks-from-489-kb-to-125-kb-externals-now-auto-derived","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_O87BKPqsdx47cGrtW_Ott","title":"Workers @cloudflare/workers-utils@0.21.1 marks package side-effect-free and fixes undici dependency","path":"/release/rel_O87BKPqsdx47cGrtW_Ott-package-now-side-effect-free-undici-moved-to-runtime-dependencies","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_VUglO7Hkfq9-QHtovDb_L","title":"Workers Vite Plugin v1.38.0 prints QR code for tunnel URLs","path":"/release/rel_VUglO7Hkfq9-QHtovDb_L-tunnel-urls-now-include-scannable-qr-code","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_SLG9y16M6e6h_MsBMDKyT","title":"Cloudflare Workers v4.94.0 adds AI skills installation and tunnel QR codes","path":"/release/rel_SLG9y16M6e6h_MsBMDKyT-ai-skills-auto-install-tunnel-urls-get-qr-codes","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_1Aq45RLeGa5_BhY9TfH7N","title":"Cloudflare Workers v1.20260522.1 adds Kimi K2.6 and Web Search binding types","path":"/release/rel_1Aq45RLeGa5_BhY9TfH7N-kimi-k2-6-model-type-web-search-binding-types-added","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_CkVXZkLHFnxKfVAKir4Q-","title":"Workers miniflare@4.20260521.0 fixes TCP requests with outboundService","path":"/release/rel_CkVXZkLHFnxKfVAKir4Q--tcp-requests-work-with-outboundservice-configured","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_eugUvcdeyN_pZ1lkFJnS3","title":"Next.js v16.3.0-canary.26 enables varyParams, optimisticRouting, and cachedNavigations by default","path":"/release/rel_eugUvcdeyN_pZ1lkFJnS3-varyparams-optimisticrouting-cachednavigations-enabled-by-default","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_YdkspDZdEFBHkSJ0usE7i","title":"Next.js v16.3.0-canary.27 reverts PPR routes change and prerendered static metadata","path":"/release/rel_YdkspDZdEFBHkSJ0usE7i-ppr-routes-behavior-reverted-static-metadata-prerendered-under-dynamic-segments","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_kKFVMZT_VCkPiuEh9tsLP","title":"Turborepo v2.9.15-canary.6 restores task completion semantics and fixes Bun workspace versions","path":"/release/rel_kKFVMZT_VCkPiuEh9tsLP-task-completion-semantics-restored-bun-workspace-versions-preserved","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_BgY7nILWhxj11NxWWxPip","title":"Turborepo v2.9.15-canary.7 fixes release PR auto-merge and experimentalCI config","path":"/release/rel_BgY7nILWhxj11NxWWxPip-release-pr-auto-merge-restored-experimentalci-object-config-now-accepted","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_cHqtvP0OvTvBQN4d7WqZu","title":"Vercel CLI v54.4.1 suppresses metrics query status with JSON format","path":"/release/rel_cHqtvP0OvTvBQN4d7WqZu-metrics-query-output-suppressed-in-json-mode","org":{"slug":"vercel","name":"Vercel"},"importance":null}]}}