{"collection":{"slug":"application-platforms","name":"Application Platforms"},"digest":{"id":"cwd_QitiaeRiUipl1Rm0s1wt-","weekStart":"2026-06-15","title":"R2 SQL goes analytical, Vercel goes realtime","intro":"Cloudflare R2 SQL gained window functions, set operations, and analytical aggregates, while Vercel launched WebSocket support for Functions in public beta, and the Vercel CLI added signed blob URLs.","body":"### R2 SQL turns into a real analytical engine\n\nThe biggest bang this week came from Cloudflare's R2 SQL, which shipped a massive batch of query capabilities that turn it from a serviceable SQL interface into a genuine analytical engine. [R2 SQL now supports window functions](/release/rel_fxUt5sM5wpnc4pN7Q6JT9-cloudflare-r2-sql-adds-window-functions-distinct-and-set-operations) — ROW_NUMBER, RANK, LAG, LEAD, and more — alongside SELECT DISTINCT, set operations (UNION, INTERSECT, EXCEPT), grouping extensions (GROUPING SETS, ROLLUP, CUBE), and exact aggregates like MEDIAN and PERCENTILE_CONT. The QUALIFY clause for filtering on window function results is also included. For anyone querying Iceberg tables stored in R2, this eliminates a whole category of preprocessing steps that previously had to happen outside the database.\n\nAcross the Cloudflare Workers SDK, the week brought a steady stream of improvements. [Wrangler 4.103.0](/release/rel_RMRne3GYyt0CnZAj6Jkkg-wrangler-4-103-0-moves-and-removes-experimental-apis-fixes-dev-crash-and-worker) moved the `unstable_getWorkerNameFromProject` export to `@cloudflare/workers-utils` (now stable as `getWorkerNameFromProject`) and removed experimental autoconfig exports. The same release fixed a dev crash on truncated error chunks and a SQLITE_TOOBIG bug in local Workflows where `Uint8Array` step outputs were persisted with their full backing `ArrayBuffer`. [Miniflare 4.20260617.1](/release/rel_Kj2tkrJ7-OGPU1xJV-Dbk-workers-sdk-miniflare-4-20260617-1-fixes-uint8array-step-output-buffer-over) also addresses that `Uint8Array` issue directly. The [Vite plugin v1.42.1](/release/rel_4mpq9py6rb7Or2RfWW19E-workers-vite-plugin-v1-42-1-fixes-relative-cf-worker-entrypoint-resolution) fixed relative `cf-worker` entrypoint resolution so `./src/index.ts` imports now resolve relative to the importing module, not the config file. And [create-cloudflare 2.70.5](/release/rel_tvMpRs-5IQ_LGuiGwrR7y-workers-create-cloudflare-2-70-5-fixes-infinite-loop-with-pnpm-11) stopped an infinite re-launch loop under pnpm 11 caused by that version's supply-chain protection.\n\n### Vercel goes realtime with WebSocket Functions\n\nVercel's biggest news this week is [WebSocket support for Functions](/release/rel_yNUn74KGsQqbJOSpgMBnY-vercel-launches-websocket-support-in-public-beta-for-functions), now in public beta. Functions can serve WebSocket connections using standard Node.js libraries, with billing only for active CPU time — idle connections don't cost anything. This opens up realtime features like interactive AI streaming, chat, and collaborative apps on Vercel's Fluid compute. The ecosystem is already adapting: [@vercel/functions 3.7.2](/release/rel_uMS6-oq-qrFEQjKKWPj8w-vercel-functions-3-7-2-adds-maxpayload-option-for-websocket-upgrade) added a `maxPayload` option (defaulting to 256 KiB) to `experimental_upgradeWebSocket()`, and the [Vercel CLI Python side](/release/rel_sZ_jmblsJpKJAIjNC0rAt-vercel-cli-v0-15-0-adds-websocket-support-for-python-asgi-apps) added WebSocket support for ASGI apps via a vendored wsproto.\n\nThe [Vercel CLI 5.14.5](/release/rel_jf8HLNhxqNatu7sVZHY2U-vercel-cli-5-14-5-signs-blob-urls-from-the-command-line) introduced `vercel blob presign` for generating signed URLs directly from the command line, scoped per operation (get, head, put, delete) with configurable expiration up to 7 days. A companion `vercel blob signed-token` command separates token generation from URL generation for advanced workflows. Meanwhile, [Vercel raised the project-per-repo limit for hobby users](/release/rel_d2jNSjk4PjM4OFqM0asgf-vercel-increases-project-per-repo-limit-to-25-for-hobby-users) from 10 to 25, making monorepo workflows more practical on the free tier.\n\nThe [Go builder 3.9.1](/release/rel_hyip06an-PiwUZxbAEb1G-vercel-cli-go-builder-3-9-1-supervises-standalone-servers-and-fixes-vc-dev) now supervises standalone server processes after the startup handshake, reporting unrecoverable errors over IPC so the platform can recycle instances instead of serving stale 502s. Dev mode fixes include persisting the server across requests and waiting for the server port to be ready instead of a fixed 2-second window. The [AI Gateway](/release/rel_L1S61jngBfAVr6TyeYpgn-vercel-ai-gateway-adds-sakana-fugu-ultra-model) added Sakana Fugu Ultra, a model that coordinates multiple frontier agents into a single answer.\n\n### Next.js, AI SDK, and Railway tweaks\n\nNext.js continued its canary cycle: [v16.3.0-canary.58](/release/rel_QldvlIG3IJJejoC00jo2j-next-js-v16-3-0-canary-58-retries-chunk-loading-on-failure-upgrades-react) added chunk loading retries on failure and upgraded React, while [v16.3.0-canary.59](/release/rel_4ps3_H2Y3AqBVMlcLSWtH-next-js-v16-3-0-canary-59-fixes-after-callback-timing-and-request-api-issues) fixed `after(callback)` being called after the response had ended and upgraded to swc 70. The [embedded Claude Code plugin marketplace was removed](/release/rel_l4ea_bmrk-G5LdTorEOGU-next-js-v16-3-0-canary-60-removes-embedded-claude-code-plugin-marketplace) in canary.60. On the AI SDK front, [WorkflowAgent v1.0.0-beta.101](/release/rel_FoVr748tf8I7xu8sA0sS_-ai-sdk-workflow-v1-0-0-beta-101-rejects-system-messages-in-prompt-by-default) now rejects system messages inside `prompt` by default, and [@ai-sdk/tui v1.0.0-beta.18](/release/rel_b-7hACi_y9HWoIYNUckwp-ai-sdk-ai-sdk-tui-1-0-0-beta-18-adds-sandbox-option-for-tool-execution) added a `sandbox` option for tool execution.\n\nRailway shipped five CLI releases this week, adding [private networking](/release/rel_e6CdNQ6JKu5IeUA5DKQrI-v5-17-0), [network flow logs](/release/rel_DqMNaSFRsy4Fxo8GsSng--v5-16-0), [WAF under attack commands](/release/rel_OP5VuziU9as08_uc4dv3e-v5-20-0), and [CDN management commands](/release/rel_29pucn9__raxM2b5q1G92-v5-19-0). The config output now includes terraform-style plan summaries with optional detailed exit codes and value revelation.","releaseIds":["rel_fxUt5sM5wpnc4pN7Q6JT9","rel_RMRne3GYyt0CnZAj6Jkkg","rel_Kj2tkrJ7-OGPU1xJV-Dbk","rel_4mpq9py6rb7Or2RfWW19E","rel_tvMpRs-5IQ_LGuiGwrR7y","rel_yNUn74KGsQqbJOSpgMBnY","rel_uMS6-oq-qrFEQjKKWPj8w","rel_sZ_jmblsJpKJAIjNC0rAt","rel_jf8HLNhxqNatu7sVZHY2U","rel_d2jNSjk4PjM4OFqM0asgf","rel_hyip06an-PiwUZxbAEb1G","rel_L1S61jngBfAVr6TyeYpgn","rel_QldvlIG3IJJejoC00jo2j","rel_4ps3_H2Y3AqBVMlcLSWtH","rel_l4ea_bmrk-G5LdTorEOGU","rel_FoVr748tf8I7xu8sA0sS_","rel_b-7hACi_y9HWoIYNUckwp","rel_e6CdNQ6JKu5IeUA5DKQrI","rel_DqMNaSFRsy4Fxo8GsSng-","rel_OP5VuziU9as08_uc4dv3e","rel_29pucn9__raxM2b5q1G92"],"releaseCount":157,"generatedAt":"2026-07-11T16:29:46.403Z","releases":[{"id":"rel_fxUt5sM5wpnc4pN7Q6JT9","title":"Cloudflare R2 SQL adds window functions, DISTINCT, and set operations","path":"/release/rel_fxUt5sM5wpnc4pN7Q6JT9-window-functions-distinct-and-set-operations-land-in-r2-sql","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_RMRne3GYyt0CnZAj6Jkkg","title":"Wrangler 4.103.0 moves and removes experimental APIs, fixes dev crash and worker output bug","path":"/release/rel_RMRne3GYyt0CnZAj6Jkkg-experimental-apis-removed-or-moved-dev-crash-on-truncated-error-stack-fixed","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_Kj2tkrJ7-OGPU1xJV-Dbk","title":"Workers SDK miniflare@4.20260617.1 fixes Uint8Array step output buffer over-persistence in local Workflows","path":"/release/rel_Kj2tkrJ7-OGPU1xJV-Dbk-workers-sdk-miniflare-4-20260617-1-fixes-uint8array-step-output-buffer-over","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_4mpq9py6rb7Or2RfWW19E","title":"Workers vite plugin v1.42.1 fixes relative cf-worker entrypoint resolution","path":"/release/rel_4mpq9py6rb7Or2RfWW19E-relative-cf-worker-imports-now-resolve-correctly","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_tvMpRs-5IQ_LGuiGwrR7y","title":"Workers create-cloudflare 2.70.5 fixes infinite loop with pnpm 11","path":"/release/rel_tvMpRs-5IQ_LGuiGwrR7y-c3-auto-update-loop-with-pnpm-11-fixed","org":{"slug":"cloudflare","name":"Cloudflare"},"importance":null},{"id":"rel_yNUn74KGsQqbJOSpgMBnY","title":"Vercel launches WebSocket support in Public Beta for Functions","path":"/release/rel_yNUn74KGsQqbJOSpgMBnY-websocket-support-now-in-public-beta","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_uMS6-oq-qrFEQjKKWPj8w","title":"@vercel/functions 3.7.2 adds maxPayload option for WebSocket upgrade","path":"/release/rel_uMS6-oq-qrFEQjKKWPj8w-websocket-upgrade-gets-maxpayload-option-256-kib-default","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_sZ_jmblsJpKJAIjNC0rAt","title":"Vercel CLI v0.15.0 adds WebSocket support for Python ASGI apps","path":"/release/rel_sZ_jmblsJpKJAIjNC0rAt-python-asgi-apps-get-websocket-support","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_jf8HLNhxqNatu7sVZHY2U","title":"Vercel CLI 5.14.5 signs blob URLs from the command line","path":"/release/rel_jf8HLNhxqNatu7sVZHY2U-blob-url-signing-via-vercel-cli","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_d2jNSjk4PjM4OFqM0asgf","title":"Vercel increases project-per-repo limit to 25 for hobby users","path":"/release/rel_d2jNSjk4PjM4OFqM0asgf-hobby-plan-25-projects-per-repo-up-from-10","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_hyip06an-PiwUZxbAEb1G","title":"Vercel CLI Go builder 3.9.1 supervises standalone servers and fixes vc dev","path":"/release/rel_hyip06an-PiwUZxbAEb1G-standalone-go-servers-report-exit-codes-vc-dev-kept-alive-across-requests","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_L1S61jngBfAVr6TyeYpgn","title":"Vercel AI Gateway adds Sakana Fugu Ultra model","path":"/release/rel_L1S61jngBfAVr6TyeYpgn-sakana-fugu-ultra-model-available-on-ai-gateway","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_QldvlIG3IJJejoC00jo2j","title":"Next.js v16.3.0-canary.58 retries chunk loading on failure, upgrades React","path":"/release/rel_QldvlIG3IJJejoC00jo2j-failed-chunk-loads-retry-automatically","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_4ps3_H2Y3AqBVMlcLSWtH","title":"Next.js v16.3.0-canary.59 fixes after() callback timing and request API issues","path":"/release/rel_4ps3_H2Y3AqBVMlcLSWtH-after-callback-and-request-api-fix-in-actions-handlers","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_l4ea_bmrk-G5LdTorEOGU","title":"Next.js v16.3.0-canary.60 removes embedded Claude Code plugin marketplace","path":"/release/rel_l4ea_bmrk-G5LdTorEOGU-embedded-claude-code-plugin-marketplace-removed","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_FoVr748tf8I7xu8sA0sS_","title":"AI SDK Workflow v1.0.0-beta.101 rejects system messages in prompt by default","path":"/release/rel_FoVr748tf8I7xu8sA0sS_-workflowagent-matches-generatetext-system-messages-in-prompt-rejected-by-default","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_b-7hACi_y9HWoIYNUckwp","title":"AI SDK @ai-sdk/tui@1.0.0-beta.18 adds sandbox option for tool execution","path":"/release/rel_b-7hACi_y9HWoIYNUckwp-sandbox-option-for-tool-execution-broader-agent-generic-support","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_e6CdNQ6JKu5IeUA5DKQrI","title":"v5.17.0","path":"/release/rel_e6CdNQ6JKu5IeUA5DKQrI-v5-17-0","org":{"slug":"railway","name":"Railway"},"importance":null},{"id":"rel_DqMNaSFRsy4Fxo8GsSng-","title":"v5.16.0","path":"/release/rel_DqMNaSFRsy4Fxo8GsSng--v5-16-0","org":{"slug":"railway","name":"Railway"},"importance":null},{"id":"rel_OP5VuziU9as08_uc4dv3e","title":"v5.20.0","path":"/release/rel_OP5VuziU9as08_uc4dv3e-v5-20-0","org":{"slug":"railway","name":"Railway"},"importance":null},{"id":"rel_29pucn9__raxM2b5q1G92","title":"v5.19.0","path":"/release/rel_29pucn9__raxM2b5q1G92-v5-19-0","org":{"slug":"railway","name":"Railway"},"importance":null}]}}