NestJS v11.1.23 + Swagger 11.4.4: fix Terminus eager instantiation y errores de decoradores
NestJS publicó dos patches el 21 de mayo: v11.1.22 arregla un bug de injection en inflight requests y mejora los reports de error identificando tipos de decoradores en módulos inválidos; v11.1.23 corrige el problema reportado desde v11.1.20 donde snapshot: true instanciaba eagerly indicators transient de Terminus, rompiendo el patrón de health checks de muchas apps. Si estabas pinneado a 11.1.19 esperando esto, ya podés actualizar. @nestjs/[email protected] también salió el mismo día. Si combinás Nest + Terminus + un health endpoint que setea snapshot: true, esta es la versión que querés.
Hono v4.12.19/.20: serveStatic opcional, bearer genérico, cache entries y request.bytes()
Antes del batch de seguridad de v4.12.21, Hono publicó v4.12.19 el 16 de mayo con parámetros opcionales para serveStatic, mejoras en cookie handling, autenticación bearer genérica (no más casts), keying configurable en cache entries y un nuevo método bytes() en request para leer el body como Uint8Array sin parsear. Después vino v4.12.20 el 19 de mayo que preserva base paths en rutas mounted y expande types de children en JSX. Si laburás Hono sobre Workers/Bun, las mejoras de cache entries son combo perfecto con el AI Gateway nuevo: cachées la respuesta del agente por tenant_id + prompt hash y ahorrás 60% de tokens.
Cloudflare: permisos granulares por Tunnel y por Mesh node
Hasta ayer, scopear permisos de Cloudflare Tunnel/Mesh era todo o nada a nivel de account. Desde el 21 de mayo, los admins pueden scope acceso a instancias individuales de Tunnel y nodos individuales de Mesh — pattern requerido para multi-tenant donde cada equipo o cliente tiene su tunnel propio y no debería tocar los de los demás. Es el complemento natural a Workers VPC + WAN: si pasás todo el tráfico privado por bindings unificados, también querés que cada operador tenga llaves chicas. Si corrés varios tunnels en una sola org (típico en agencias o SaaS multi-cliente), revisá las roles y limitalas YA antes de que alguien rote sin querer un tunnel que no le pertenece.
Cloudflare Artifacts: event subscriptions + CLI Wrangler para namespaces y repos
El 19 de mayo Cloudflare habilitó event subscriptions para Artifacts: cada cambio en un repo (push de imagen Docker/OCI o publicación de package) dispara un evento consumible desde un Worker, perfecto para builds automation o promoting de imagen a prod sin webhook intermediario. El 18 de mayo ya había sumado comandos de Wrangler CLI para listar, crear y manejar namespaces, repos y tokens de Artifacts — adiós a tener que ir al dashboard cada vez que querés un repo nuevo en un script de bootstrap. Combo: con Workflows V2 (anunciado el 1 de mayo, 50K instancias concurrentes), ya tenés un pipeline Cloudflare-only para CI/CD sin GitHub Actions de por medio.
Pattern del mes: AI Gateway como anti-corruption layer multi-provider
El AI Gateway unificado de Cloudflare formaliza un pattern que muchos ya estábamos armando a mano: un anti-corruption layer entre tu app y los LLM providers. Reglas que valen sin importar si usás Cloudflare, Portkey, LiteLLM o tu propio gateway en Hono: (1) nunca pegues directo al SDK del provider desde dominio — envolvelo en una interfaz LLMClient que reciba {provider, model, messages, schema} y devuelva un response normalizado; (2) meté el caching por hash de prompt + tenant + schema en el gateway, no en cada caller; (3) guardrails (PII, prompt injection, rate limit por usuario) van en el gateway, no en el handler de la route; (4) los failovers (cambiar de Anthropic a OpenAI si uno está caído) son política del gateway, no del agente. Si tu monorepo tiene 5 servicios llamando LLMs, ya tenés 5 lugares donde puede colarse un token leakeado o un prompt sin sanitizar — un gateway central reduce el blast radius a uno.
Issue Fields vs Projects vs labels: cuándo elegir cada uno
Con Issue Fields en preview pública, ya hay un overlap real entre tres mecanismos de metadata en GitHub: labels, Issue Fields y Project fields. Cuándo usar cada uno: labels para taxonomías chicas y planas (bug, enhancement, good-first-issue) que filtrás vía search query; Issue Fields para metadata tipada y org-wide que toda la org necesita ver y filtrar igual en todos los repos (Priority, Effort, Team owner); Project fields para metadata específica de una iniciativa que no aplica fuera de ese project (sprint number, RICE score, OKR target). El antipattern: usar labels para todo y terminar con 80 labels en cada repo que nadie entiende. La skill de Copilot que migra labels a Issue Fields hace que adoptarlos sea casi free — un comando y migrás el histórico.
Supabase OAuth: /v1/oauth/token pasa de 201 Created a 200 OK hoy
Desde hoy 22 de mayo el endpoint POST /v1/oauth/token de Supabase devuelve 200 OK en lugar de 201 Created, para cumplir con OAuth 2.1 y mejorar compatibilidad con clientes estrictos (los que validan exactamente 200 según RFC). Si tenés código que matchea explícitamente response.status === 201 para flujos de OAuth, va a romperse en silencio (token no asignado a session, redirect loop, etc.). Cambiá a response.ok o aceptá ambos códigos. Spec OAuth 2.1 lo viene pidiendo desde 2023 y Supabase fue de los últimos en alinearse.
Cloudflare blog: «AI Platform: an inference layer designed for agents»
Visión completa de Cloudflare sobre por qué el AI Gateway se vuelve el plano de control para agentes multi-modelo.
GitHub Copilot for Eclipse pasa a open source bajo MIT
GitHub liberó el código del plugin de Copilot para Eclipse — útil si tenés stack Java backend y querés auditar o forkear.
Cloudflare Radar: distribución de content-types y share de tráfico API
Nuevos charts en Radar muestran qué porcentaje del tráfico es JSON, HTML, video, etc., y cuánto del total es API vs humanos vs bots. Útil para benchmarkearte.
GHSA-2gcr-mfcq-wcc3: detalle técnico del mount prefix stripping en Hono
Advisory completo del bug de app.mount(), con PoC y diff del fix.
Tendencias Destacadas
Cloudflare cerró la semana convirtiéndose en el plano de control unificado para apps modernas: VPC + Tunnel + Mesh + WAN bajo un binding, AI Gateway unificado para todos los providers, Workflows V2 con 50K concurrencia, Artifacts con eventos y CLI. Si arrancás un fullstack TypeScript nuevo en mayo 2026, el stack default ya es Hono + Workers + Hyperdrive + D1/R2 + Workers VPC + AI Gateway. AWS y GCP siguen siendo los pesados, pero Cloudflare está armando un sub-stack autosuficiente que cubre 80% de los casos sin salir del ecosistema.
Hono se consolida como el framework default para edge — y con eso, también es target para auditoría seria. v4.12.21 trae el primer batch real de CVEs en módulos core (mount, ip-restriction, cookie, jwt) y demuestra que la auditoría de seguridad sobre Hono está madurando. Plus: el JWT middleware sin validar el scheme <em>Bearer</em> es exactamente el tipo de bug que dejás pasar cuando confiás en que «el client siempre manda Bearer». Lección: siempre escribí tests de auth con headers malformados.
Supabase self-hosted obliga a actualizar a Postgres 17 y mover Studio a rol postgres en una sola tanda — es la señal de que la plataforma quiere paridad estricta entre managed y self-hosted. Si llevás dos años corriendo Supabase self-hosted con la config default, la próxima rollout de junio te va a obligar a leer changelogs por primera vez en mucho tiempo. Sumado al cambio de OAuth de 201 a 200 hoy, es un buen mes para hacer un dependabot check de tu integración Supabase.
NestJS v11.1.23 + Swagger 11.4.4: fix Terminus eager instantiation and decorator errors
NestJS shipped two patches on May 21: v11.1.22 fixes an inflight request injection bug and improves error reports by identifying decorator types in invalid module errors; v11.1.23 fixes the regression introduced in v11.1.20 where snapshot: true eagerly instantiated Terminus transient indicators, breaking the health check pattern in many apps. If you were pinned to 11.1.19 waiting on this, you can upgrade now. @nestjs/[email protected] also dropped same day. If you run Nest + Terminus + a health endpoint with snapshot: true, this is the version you want.
Hono v4.12.19/.20: optional serveStatic, generic bearer, cache entries and request.bytes()
Before the v4.12.21 security batch, Hono shipped v4.12.19 on May 16 with optional params for serveStatic, cookie handling improvements, generic bearer auth (no more casts), configurable keying in cache entries and a new bytes() method on request to read the body as Uint8Array without parsing. Then v4.12.20 on May 19 preserved base paths on mounted routes and expanded JSX children types. If you run Hono on Workers/Bun, the cache entries improvements pair nicely with the new AI Gateway: cache the agent response by tenant_id + prompt hash and save 60% on tokens.
Cloudflare: granular permissions per Tunnel and per Mesh node
Until yesterday, scoping Cloudflare Tunnel/Mesh permissions was all-or-nothing at the account level. Since May 21, admins can scope access to individual Tunnel instances and individual Mesh nodes — the pattern multi-tenant setups need where each team or customer owns their tunnel and shouldn't touch the others. Natural complement to Workers VPC + WAN: if you funnel all private traffic through unified bindings, you also want each operator to hold small keys. If you run several tunnels in one org (typical for agencies or multi-tenant SaaS), audit and tighten the roles now before someone accidentally rotates a tunnel that isn't theirs.
Cloudflare Artifacts: event subscriptions + Wrangler CLI for namespaces and repos
On May 19 Cloudflare enabled event subscriptions for Artifacts: each repo change (Docker/OCI image push or package publish) fires an event consumable from a Worker, perfect for build automation or promoting images to prod without an intermediate webhook. On May 18 Cloudflare also added Wrangler CLI commands to list, create and manage Artifacts namespaces, repos and tokens — no more dashboard trips when you want a new repo from a bootstrap script. Combo: with Workflows V2 (announced May 1, 50K concurrent instances), you have a Cloudflare-only CI/CD pipeline without GitHub Actions in the middle.
Pattern of the month: AI Gateway as a multi-provider anti-corruption layer
Cloudflare's unified AI Gateway formalizes a pattern many of us were already building by hand: an anti-corruption layer between your app and LLM providers. Rules that hold whether you use Cloudflare, Portkey, LiteLLM or your own Hono gateway: (1) never call the provider SDK directly from the domain — wrap it in an LLMClient interface that takes {provider, model, messages, schema} and returns a normalized response; (2) put caching by prompt hash + tenant + schema in the gateway, not in each caller; (3) guardrails (PII, prompt injection, per-user rate limit) live in the gateway, not in the route handler; (4) failovers (swap Anthropic for OpenAI when one is down) are gateway policy, not agent code. If your monorepo has 5 services calling LLMs, you have 5 places where a leaked token or unsanitized prompt can slip through — a central gateway shrinks the blast radius to one.
Issue Fields vs Projects vs labels: when to use each
With Issue Fields in public preview, there's real overlap between three GitHub metadata mechanisms: labels, Issue Fields and Project fields. When to use each: labels for flat, small taxonomies (bug, enhancement, good-first-issue) you filter via search query; Issue Fields for typed, org-wide metadata everyone in the org needs to see and filter consistently across repos (Priority, Effort, Team owner); Project fields for initiative-specific metadata that doesn't apply outside that project (sprint number, RICE score, OKR target). The antipattern: using labels for everything and ending with 80 labels per repo nobody understands. The Copilot skill that migrates labels to Issue Fields makes adoption almost free — one command and the history migrates.
Supabase OAuth: /v1/oauth/token switches from 201 Created to 200 OK today
From today May 22 the Supabase POST /v1/oauth/token endpoint returns 200 OK instead of 201 Created, to comply with OAuth 2.1 and improve compatibility with strict clients (those that validate exactly 200 per RFC). If you have code matching response.status === 201 for OAuth flows, it will break silently (token not assigned to session, redirect loop, etc.). Switch to response.ok or accept both codes. OAuth 2.1 has required this since 2023 and Supabase is one of the last to align.
Cloudflare blog: «AI Platform: an inference layer designed for agents»
Cloudflare's full vision on why the AI Gateway becomes the control plane for multi-model agents.
GitHub Copilot for Eclipse goes open source under MIT
GitHub released the Copilot for Eclipse plugin source — useful if you run a Java backend stack and want to audit or fork.
Cloudflare Radar: content-type distribution and API traffic share
New Radar charts show what percentage of traffic is JSON, HTML, video, etc., and how much of the total is API vs humans vs bots. Useful for benchmarking your stack.
GHSA-2gcr-mfcq-wcc3: technical details on Hono mount prefix stripping
Full advisory for the app.mount() bug, with PoC and fix diff.
Notable Trends
Cloudflare wrapped the week becoming the unified control plane for modern apps: VPC + Tunnel + Mesh + WAN under one binding, unified AI Gateway across all providers, Workflows V2 at 50K concurrency, Artifacts with events and CLI. If you start a new fullstack TypeScript project in May 2026, the default stack is now Hono + Workers + Hyperdrive + D1/R2 + Workers VPC + AI Gateway. AWS and GCP are still the heavyweights, but Cloudflare is assembling a self-sufficient sub-stack that covers 80% of cases without leaving the ecosystem.
Hono consolidates as the default edge framework — and with that, also becomes a target for serious audit. v4.12.21 brings the first real batch of CVEs in core modules (mount, ip-restriction, cookie, jwt) and proves Hono security review is maturing. Plus: the JWT middleware not validating the <em>Bearer</em> scheme is exactly the kind of bug you let slip when you trust that "the client always sends Bearer." Lesson: always write auth tests with malformed headers.
Supabase self-hosted forces an upgrade to Postgres 17 and moves Studio to the postgres role in one batch — the signal that the platform wants strict parity between managed and self-hosted. If you've been running Supabase self-hosted with the default config for two years, the upcoming June rollout will force you to read changelogs for the first time in a while. Combined with today's OAuth 201→200 change, it's a good month to run a dependabot check on your Supabase integration.
NestJS v11.1.23 + Swagger 11.4.4 : fix Terminus eager instantiation et erreurs de décorateurs
NestJS a livré deux patches le 21 mai : v11.1.22 corrige un bug d'injection inflight et améliore les reports d'erreur ; v11.1.23 corrige la régression de v11.1.20 où snapshot: true instanciait eagerly les indicators transient de Terminus. @nestjs/[email protected] sorti le même jour.
Hono v4.12.19/.20 : serveStatic optionnel, bearer générique, cache entries et request.bytes()
Avant le batch de sécurité de v4.12.21, Hono a livré v4.12.19 le 16 mai avec params optionnels pour serveStatic, bearer auth générique, keying configurable de cache entries et nouvelle méthode bytes() sur request. Puis v4.12.20 le 19 mai préserve les base paths sur routes mounted et étend les types JSX children.
Cloudflare : permissions granulaires par Tunnel et par Mesh node
Jusqu'à hier, scoper les permissions Cloudflare Tunnel/Mesh était tout ou rien au niveau account. Depuis le 21 mai, les admins peuvent scoper l'accès aux instances individuelles de Tunnel et aux nodes Mesh — pattern requis pour les setups multi-tenant. Auditez vos roles maintenant.
Cloudflare Artifacts : event subscriptions + CLI Wrangler pour namespaces et repos
Le 19 mai Cloudflare a activé les event subscriptions pour Artifacts : chaque changement de repo déclenche un événement consommable depuis un Worker. Le 18 mai, Cloudflare avait ajouté des commandes Wrangler CLI pour gérer namespaces, repos et tokens. Combiné à Workflows V2 (1er mai, 50K instances concurrentes), vous avez un pipeline CI/CD Cloudflare-only.
Pattern du mois : AI Gateway comme anti-corruption layer multi-provider
L'AI Gateway unifié de Cloudflare formalise un pattern que beaucoup construisaient à la main : un anti-corruption layer entre l'app et les providers LLM. Règles : (1) jamais appeler le SDK provider directement depuis le domain ; (2) caching par prompt hash + tenant dans le gateway ; (3) guardrails dans le gateway ; (4) failovers en policy gateway. Un gateway central réduit le blast radius à un seul point.
Issue Fields vs Projects vs labels : quand utiliser chacun
Avec Issue Fields en public preview, il y a un vrai overlap entre labels, Issue Fields et Project fields. Quand utiliser : labels pour taxonomies plates ; Issue Fields pour metadata typée et org-wide ; Project fields pour metadata spécifique à une initiative. L'antipattern : utiliser labels pour tout et finir avec 80 labels par repo.
Supabase OAuth : /v1/oauth/token passe de 201 Created à 200 OK aujourd'hui
Depuis aujourd'hui 22 mai, l'endpoint Supabase POST /v1/oauth/token renvoie 200 OK au lieu de 201 Created, conformément à OAuth 2.1. Code matchant response.status === 201 cassera silencieusement. Passez à response.ok.
Blog Cloudflare : «AI Platform: an inference layer designed for agents»
Vision complète de Cloudflare sur l'AI Gateway comme control plane multi-modèle.
GitHub Copilot for Eclipse devient open source sous MIT
GitHub a libéré le code du plugin Copilot for Eclipse — utile pour stacks Java backend voulant auditer ou forker.
Cloudflare Radar : distribution content-types et share de trafic API
Nouveaux charts Radar montrant le % de trafic JSON/HTML/video et la part API vs humains vs bots. Utile pour benchmark.
GHSA-2gcr-mfcq-wcc3 : détails techniques sur le mount prefix stripping Hono
Advisory complet du bug app.mount(), avec PoC et diff du fix.
Tendances Notables
Cloudflare a clos la semaine en devenant le control plane unifié pour apps modernes : VPC + Tunnel + Mesh + WAN sous un binding, AI Gateway unifié, Workflows V2 à 50K concurrence, Artifacts avec events et CLI. Pour un nouveau fullstack TypeScript en mai 2026, la stack par défaut est Hono + Workers + Hyperdrive + D1/R2 + Workers VPC + AI Gateway.
Hono se consolide comme framework edge par défaut — et devient cible d'audit sérieux. v4.12.21 apporte le premier vrai batch de CVE sur modules core. Le JWT middleware ne validant pas le scheme <em>Bearer</em> est le type de bug qu'on laisse passer quand on fait confiance au client. Écrivez toujours des tests d'auth avec headers malformés.
Supabase self-hosted force un upgrade vers Postgres 17 et déplace Studio vers le rôle postgres en un seul batch — signal que la plateforme veut parité stricte entre managed et self-hosted. Combiné au changement OAuth 201→200 d'aujourd'hui, c'est le bon mois pour un dependabot check de l'intégration Supabase.