Node.js 24.21.0: OpenSSL 3.5.8, Undici 7.29.1 y net.BlockList más rápido
La línea 24 suma OpenSSL 3.5.8, certificados raíz actualizados a NSS 3.126 y Undici 7.29.1. Del lado semver-minor: carga de claves privadas vía STORE loaders de OpenSSL (útil si tus claves viven en HSM o en un provider externo), mejoras en la implementación de histogramas y un net.BlockList notablemente más rápido — si lo usás para rate limiting o allowlists por IP en el borde de tu app, es ganancia gratis.
workerd v1.20260914.1: el runtime de Cloudflare Workers sigue su cadencia diaria
Cloudflare sigue publicando workerd todos los días. Si corrés Workers en local con wrangler dev o tenés el runtime pinneado en un contenedor de CI, vale la pena alinear la versión con lo que corre en producción: las divergencias de compatibilidad entre tu runtime local y el de Cloudflare son el clásico bug de «en mi máquina anda».
Fastify 5.12.4: corrige el desfase de versión en fastify.js
Release de saneamiento: 5.12.4 arregla el desfase de versión que había quedado en fastify.js respecto del package.json. Es chico, pero si tenés checks que leen la versión reportada por el framework en runtime — telemetría, health endpoints, reportes de SBOM — este es el parche que te devuelve el número correcto.
Next.js 16.3.5: nonce CSP en scripts de loading/template y arreglos en el cache de imágenes
Backport con varios arreglos que importan en producción: ahora se agrega el nonce de CSP a los script tags de los archivos loading y template — si tenés Content-Security-Policy estricta, esos scripts te venían siendo bloqueados. Además, next/image saltea entradas de 0 bytes al inicializar el LRU en disco y rechaza imágenes vacías al leer/escribir el cache, y se emiten los NFT de servidor completos cuando usás output: 'standalone' con un adapter.
Kysely 0.30.0-beta.2: control de transacciones por migración y defineMigration
Llega un transactionMode con tres valores en el Migrator: 'per-run' (el comportamiento clásico, todo envuelto en una transacción si el dialecto soporta DDL transaccional), 'per-migration' y 'none' — este último reemplaza al ya deprecado disableTransactions: true. El golazo para la DX es 'per-migration': cada migración decide exportando config: { transaction: false } al lado de up/down. Si alguna vez peleaste con un CREATE INDEX CONCURRENTLY en Postgres que no puede correr adentro de una transacción, ya sabés por qué esto importa. Suma también un helper defineMigration.
AWS Lambda: configuración de lectura directa para archivos de S3
Las funciones Lambda ahora pueden configurar acceso de lectura directa a S3 Files, ajustando throughput y latencia según lo que necesite la aplicación. Para pipelines de procesamiento de archivos pesados, esto cambia el cálculo: menos copias intermedias, menos memoria reservada solo para bufferear.
Lambda durable functions se integra con Pydantic AI
Los agentes construidos con Pydantic AI ahora pueden reanudar desde checkpoints después de una interrupción, en vez de rehacer llamadas caras al modelo. El patrón es viejo y conocido — checkpointing sobre un workflow durable — pero aplicado a agentes tiene un impacto directo en la factura, no solo en la resiliencia.
Cloudflare prueba transcoding de caché para reducir almacenamiento
El prototipo de Cloudflare aplica compresión Zstandard al contenido cacheado, lo que podría liberar petabytes de capacidad adicional para HTML, JSON, CSS y JavaScript. Más capacidad efectiva en el edge significa hit rates más altos para el long tail de tus assets — el contenido que hoy se expulsa del caché antes de que alguien lo vuelva a pedir.
Terraform AWS provider 6.62.0 sigue su expansión acelerada
La versión 6.62.0 agrega soporte para nuevas capacidades de AWS a medida que la superficie del proveedor crece. El dato interesante no es el changelog puntual sino el ritmo: el provider se mueve casi tan rápido como AWS lanza servicios, y eso te obliga a tener una política explícita de pinning y upgrade en tu módulo raíz.
Una década de Rustls: benchmarks, criptografía post-cuántica y la 0.24
Retrospectiva de diez años de la librería TLS en Rust, con benchmarks y roadmap. Lo relevante para backend: suma soporte de criptografía post-cuántica y la versión 0.24 rearquitectura el buffering de entrada. Si tu stack termina en un proxy o un cliente HTTP escrito en Rust, esta es la capa que decide tu postura post-cuántica, y conviene entenderla antes de que te la pidan por compliance.
Session traces y controles de costo para diagnosticar fallas de agentes
Técnicas emergentes de observabilidad para identificar loops de tool-calls y desbordes de costo en agentes desplegados. Acá está la lección de arquitectura: el agente es un sistema distribuido no determinista, y lo tratás con el mismo instrumental que cualquier otro — trazas, presupuestos, circuit breakers. Si estás metiendo agentes en producción sin traza por sesión y sin tope de gasto, estás operando a ciegas.
pnpm 11.27.0: mirrors de Node globales y limpieza automática de trustPolicyExclude
Dos cosas útiles para monorepos. Primero, nodeDownloadMirrors ahora se puede definir en el config.yaml global o vía PNPM_CONFIG_NODE_DOWNLOAD_MIRRORS — configurás el mirror una vez por máquina en vez de repetirlo en cada workspace, que es justo lo que necesitás en una imagen de CI. Segundo, el nuevo trustPolicyExcludePrune (default false) hace que add, update y remove limpien las entradas de trustPolicyExclude que el lockfile nuevo ya no resuelve. Los patrones de nombre (@scope/*) se conservan siempre, y la limpieza se saltea si el install no cubre todo el workspace.
Nuxt Ollama: la runtime config pública expone la API key al browser
El módulo pone la API key de Ollama en la public runtime config de Nuxt, así que termina serializada en el payload que se le manda al cliente. Es el error de configuración clásico de fullstack: en Nuxt, runtimeConfig.public viaja al browser y runtimeConfig a secas no. Aprovechá y auditá tu propia config: cualquier clave que hoy esté del lado público hay que rotarla, no solo moverla.
functype-mcp-server: RCE vía alias de paquete en set_functype_version
La tool MCP set_functype_version pasa su argumento sin sanitizar a pnpm install y después hace un import dinámico — o sea, un alias de paquete alcanza para ejecutar código arbitrario. El patrón a grabarse: todo argumento de una tool MCP es input no confiable. Si tu servidor MCP le pasa strings del modelo a un package manager o a un import dinámico, ya tenés el mismo agujero.
Tendencias Destacadas
El toolchain de TypeScript se está reescribiendo en Go y ya no es una promesa: tsgolint v7 estable con 59 de 61 reglas type-aware y 12-18x de mejora deja sin excusa al linting type-aware en CI.
Serverless deja de castigar el packaging pesado: SnapStart sobre imágenes de 10 GB, lectura directa de S3 y timeouts de 90 minutos apuntan al mismo lugar — workloads que antes no entraban en Lambda ahora entran.
El control fino sobre transacciones de migración (Kysely 0.30) y sobre políticas de confianza del lockfile (pnpm 11.27) marca una tendencia: las herramientas están devolviendo decisiones caso por caso en vez de imponer un modo global.
Dos avisos de esta semana comparten raíz: config pública que no debía serlo (Nuxt Ollama) y argumentos de tool MCP que llegan sin sanitizar a un package manager. La superficie de ataque nueva es la frontera entre el modelo y tu shell.
Node.js 24.21.0: OpenSSL 3.5.8, Undici 7.29.1 and a faster net.BlockList
The 24 line picks up OpenSSL 3.5.8, root certificates refreshed to NSS 3.126, and Undici 7.29.1. On the semver-minor side: private key loading through OpenSSL STORE loaders (handy when keys live in an HSM or external provider), an improved histogram implementation, and a noticeably faster net.BlockList — free wins if you use it for IP allowlists or edge rate limiting.
workerd v1.20260914.1: the Cloudflare Workers runtime keeps its daily cadence
Cloudflare keeps publishing workerd daily. If you run Workers locally with wrangler dev or pin the runtime in a CI container, it pays to keep that version aligned with what production runs — compatibility drift between your local runtime and Cloudflare's is the classic «works on my machine» bug.
Fastify 5.12.4: fixes the fastify.js version mismatch
A housekeeping release: 5.12.4 fixes the version mismatch left in fastify.js relative to package.json. Small, but if anything reads the framework's runtime-reported version — telemetry, health endpoints, SBOM reporting — this is the patch that gives you the right number back.
Next.js 16.3.5: CSP nonce on loading/template scripts and image cache fixes
A backport with several fixes that matter in production: the CSP nonce is now added to the script tags of loading and template files — with a strict Content-Security-Policy those scripts were being blocked. Also, next/image skips 0-byte entries when initializing the disk LRU cache and rejects empty images on read/write, and whole-app server NFTs are emitted when output: 'standalone' is used with an adapter.
Kysely 0.30.0-beta.2: per-migration transaction control and defineMigration
The Migrator gains a three-valued transactionMode: 'per-run' (the classic behavior, wrapping the whole run in a transaction where the dialect supports transactional DDL), 'per-migration', and 'none' — the last replacing the now-deprecated disableTransactions: true. The real DX win is 'per-migration': each migration opts out by exporting config: { transaction: false } next to up/down. If you have ever fought a Postgres CREATE INDEX CONCURRENTLY that cannot run inside a transaction, you know exactly why this matters. A defineMigration helper lands too.
AWS Lambda: direct read configuration for Amazon S3 Files
Lambda functions can now configure direct read access to S3 Files, tuning throughput and latency to what the application actually needs. For heavy file-processing pipelines this changes the math: fewer intermediate copies, less memory provisioned purely for buffering.
Lambda durable functions integrates with Pydantic AI
Agents built with Pydantic AI can now resume from checkpoints after an interruption instead of repeating expensive model calls. The pattern is old and well understood — checkpointing over a durable workflow — but applied to agents it hits the bill directly, not just resilience.
Cloudflare tests cache transcoding to cut storage requirements
Cloudflare's prototype applies Zstandard compression to cached content, potentially freeing petabytes of additional capacity for HTML, JSON, CSS, and JavaScript. More effective edge capacity means higher hit rates for the long tail of your assets — the content evicted today before anyone asks for it again.
Terraform AWS provider 6.62.0 continues its rapid expansion
Version 6.62.0 adds support for new AWS capabilities as the provider's surface keeps growing. The interesting part is not the specific changelog but the pace: the provider moves nearly as fast as AWS ships services, which forces you to have an explicit pinning and upgrade policy in your root module.
One decade of Rustls: benchmarks, post-quantum crypto, and 0.24
A ten-year retrospective on the Rust TLS library, with benchmarks and roadmap. What matters for backend work: it adds post-quantum cryptography support, and version 0.24 rearchitects input buffering. If your stack terminates at a proxy or HTTP client written in Rust, this is the layer that decides your post-quantum posture — worth understanding before compliance asks for it.
Session traces and cost controls to diagnose AI agent failures
Emerging observability techniques for spotting tool-call loops and cost overruns in deployed agents. The architectural lesson is the real takeaway: an agent is a non-deterministic distributed system, and you instrument it like any other — traces, budgets, circuit breakers. Shipping agents to production without per-session traces and a spend ceiling is flying blind.
pnpm 11.27.0: global Node download mirrors and automatic trustPolicyExclude pruning
Two things that matter in monorepos. First, nodeDownloadMirrors can now be set in the global config.yaml or through PNPM_CONFIG_NODE_DOWNLOAD_MIRRORS — configure the mirror once per machine instead of repeating it in every workspace, which is exactly what a CI image needs. Second, the new trustPolicyExcludePrune (default false) makes add, update and remove prune trustPolicyExclude entries the freshly written lockfile no longer resolves. Name patterns (@scope/*) are always kept, and pruning is skipped when the install does not cover the whole workspace.
Nuxt Ollama: public runtime config exposes the Ollama API key to browser clients
The module places the Ollama API key in Nuxt's public runtime config, so it ends up serialized into the payload shipped to the client. This is the classic fullstack configuration mistake: in Nuxt, runtimeConfig.public travels to the browser and plain runtimeConfig does not. Take the chance to audit your own config — any key currently on the public side must be rotated, not merely moved.
functype-mcp-server: package-alias RCE via set_functype_version
The set_functype_version MCP tool passes its argument unsanitized to pnpm install and then performs a dynamic import — meaning a package alias is enough to execute arbitrary code. The pattern worth memorizing: every MCP tool argument is untrusted input. If your MCP server hands model-supplied strings to a package manager or a dynamic import, you already have the same hole.
Notable Trends
The TypeScript toolchain's rewrite in Go stopped being a promise: tsgolint v7 stable, with 59 of 61 type-aware rules and a 12-18x speedup, removes the last excuse for keeping type-aware linting out of CI.
Serverless is done punishing heavy packaging: SnapStart on 10 GB images, direct S3 reads, and 90-minute timeouts all point the same way — workloads that did not fit in Lambda now do.
Fine-grained control over migration transactions (Kysely 0.30) and lockfile trust policy (pnpm 11.27) marks a trend: tooling is handing back case-by-case decisions instead of imposing one global mode.
Two of this week's advisories share a root cause: public config that should not have been public (Nuxt Ollama), and MCP tool arguments reaching a package manager unsanitized. The new attack surface is the boundary between the model and your shell.
Node.js 24.21.0 : OpenSSL 3.5.8, Undici 7.29.1 et net.BlockList plus rapide
La ligne 24 intègre OpenSSL 3.5.8, des certificats racines mis à jour vers NSS 3.126 et Undici 7.29.1. Côté semver-minor : chargement de clés privées via les STORE loaders d'OpenSSL, une meilleure implémentation des histogrammes et un net.BlockList nettement plus rapide.
workerd v1.20260914.1 : le runtime Cloudflare Workers garde sa cadence quotidienne
Cloudflare continue de publier workerd quotidiennement. Si vous exécutez Workers en local avec wrangler dev ou épinglez le runtime en CI, alignez la version avec celle de la production : les divergences de compatibilité sont la source classique du bug « ça marche chez moi ».
Fastify 5.12.4 : corrige le décalage de version dans fastify.js
Une release d'entretien : 5.12.4 corrige le décalage de version entre fastify.js et package.json. Mineur, mais si votre télémétrie, vos endpoints de santé ou vos rapports SBOM lisent la version rapportée à l'exécution, c'est ce patch qui rétablit la bonne valeur.
Next.js 16.3.5 : nonce CSP sur les scripts loading/template et correctifs du cache d'images
Un backport avec plusieurs correctifs utiles en production : le nonce CSP est désormais ajouté aux balises script des fichiers loading et template — avec une CSP stricte, ces scripts étaient bloqués. De plus, next/image ignore les entrées de 0 octet lors de l'initialisation du cache LRU disque et rejette les images vides.
Kysely 0.30.0-beta.2 : contrôle transactionnel par migration et defineMigration
Le Migrator gagne un transactionMode à trois valeurs : 'per-run' (comportement classique), 'per-migration' et 'none' — ce dernier remplaçant disableTransactions: true, déprécié. Le vrai gain DX est 'per-migration' : chaque migration choisit en exportant config: { transaction: false }. Utile pour un CREATE INDEX CONCURRENTLY Postgres qui ne peut pas tourner dans une transaction. Un helper defineMigration arrive également.
AWS Lambda : configuration de lecture directe pour les fichiers Amazon S3
Les fonctions Lambda peuvent désormais configurer un accès en lecture directe aux fichiers S3, en ajustant débit et latence selon les besoins de l'application. Pour les pipelines de traitement de fichiers volumineux : moins de copies intermédiaires, moins de mémoire réservée au buffering.
Les durable functions Lambda s'intègrent à Pydantic AI
Les agents construits avec Pydantic AI peuvent reprendre depuis des checkpoints après une interruption au lieu de répéter des appels de modèle coûteux. Le pattern est connu, mais appliqué aux agents il touche directement la facture, pas seulement la résilience.
Cloudflare teste le transcodage du cache pour réduire le stockage
Le prototype de Cloudflare applique la compression Zstandard au contenu mis en cache, libérant potentiellement des pétaoctets de capacité pour HTML, JSON, CSS et JavaScript. Plus de capacité effective en edge signifie de meilleurs taux de hit pour la longue traîne de vos assets.
Le provider Terraform AWS 6.62.0 poursuit son expansion rapide
La version 6.62.0 ajoute la prise en charge de nouvelles capacités AWS à mesure que la surface du provider s'étend. L'essentiel n'est pas le changelog mais le rythme : cela impose une politique explicite de pinning et de mise à jour dans votre module racine.
Une décennie de Rustls : benchmarks, cryptographie post-quantique et la 0.24
Rétrospective de dix ans sur la bibliothèque TLS en Rust, avec benchmarks et feuille de route. Pour le backend : ajout du support de la cryptographie post-quantique, et la version 0.24 réarchitecture le buffering d'entrée. Si votre stack se termine sur un proxy ou un client HTTP en Rust, c'est cette couche qui détermine votre posture post-quantique.
Traces de session et contrôles de coût pour diagnostiquer les échecs d'agents
Techniques d'observabilité émergentes pour repérer les boucles d'appels d'outils et les dépassements de coût dans les agents déployés. La leçon architecturale : un agent est un système distribué non déterministe, à instrumenter comme les autres — traces, budgets, circuit breakers.
pnpm 11.27.0 : miroirs Node globaux et nettoyage automatique de trustPolicyExclude
Deux apports utiles en monorepo. D'abord, nodeDownloadMirrors peut être défini dans le config.yaml global ou via PNPM_CONFIG_NODE_DOWNLOAD_MIRRORS — un miroir configuré une fois par machine plutôt que dans chaque workspace. Ensuite, le nouveau trustPolicyExcludePrune (défaut false) fait que add, update et remove élaguent les entrées de trustPolicyExclude que le lockfile ne résout plus.
Nuxt Ollama : la runtime config publique expose la clé API au navigateur
Le module place la clé API Ollama dans la runtime config publique de Nuxt, donc sérialisée dans le payload envoyé au client. C'est l'erreur de configuration fullstack classique : dans Nuxt, runtimeConfig.public part au navigateur, pas runtimeConfig. Profitez-en pour auditer votre config — toute clé côté public doit être rotée, pas seulement déplacée.
functype-mcp-server : RCE par alias de paquet via set_functype_version
L'outil MCP set_functype_version transmet son argument non assaini à pnpm install puis effectue un import dynamique — un alias de paquet suffit donc à exécuter du code arbitraire. Le pattern à retenir : tout argument d'outil MCP est une entrée non fiable.
Tendances Notables
La réécriture en Go de la toolchain TypeScript n'est plus une promesse : tsgolint v7 stable, avec 59 des 61 règles type-aware et un gain de 12-18x, supprime la dernière excuse pour exclure le linting type-aware de la CI.
Le serverless cesse de pénaliser le packaging lourd : SnapStart sur images de 10 Go, lectures S3 directes et timeouts de 90 minutes vont dans le même sens — des workloads jusqu'ici exclus de Lambda y entrent désormais.
Le contrôle fin des transactions de migration (Kysely 0.30) et de la politique de confiance du lockfile (pnpm 11.27) marque une tendance : l'outillage rend des décisions au cas par cas au lieu d'imposer un mode global.
Deux avis de la semaine partagent la même racine : une config publique qui n'aurait pas dû l'être (Nuxt Ollama) et des arguments d'outil MCP atteignant un gestionnaire de paquets sans assainissement. La nouvelle surface d'attaque est la frontière entre le modèle et votre shell.