Astro 7.3.2 escapa valores dinámicos dentro de script y style en MDX
Cambio de seguridad silencioso pero importante: en MDX, solo el contenido literal (incluyendo el que inyectan plugins de remark/rehype) se trata como markup confiable. Un valor dinámico pasado como hijo de un <script> o <style> — o sea <script>{value}</script> — ahora se escapa como el contenido de cualquier otro elemento, en vez de renderizarse raw. Si dependías de ese comportamiento, tenés que optar explícitamente con set:html. Y esto es lo correcto: el default inseguro nunca debería haber existido. El release también arregla el 504 de «Outdated Optimize Dep» en la dev toolbar con paquetes linkeados del workspace, y un bug de i18n fallback que reemplazaba el primer substring coincidente en vez del segmento de locale, convirtiendo /energy/en/about en /esergy/en/about.
Vue 3.6.0-rc.8: la release candidate sigue avanzando
Octava RC de Vue 3.6 publicada hoy. Es la señal de que el ciclo se está estabilizando: si mantenés una librería del ecosistema Vue, este es el momento de probar contra la RC y reportar, no cuando salga el estable y te encuentres con la sorpresa. El changelog detallado vive en la rama minor del repo.
Next.js 16.4 canary.26: next/image deja de compartir el socket del request
El cambio que más me llamó la atención: next/image ya no comparte el socket del request entrante con la respuesta interna de la imagen. Es el tipo de bug de aislamiento que no ves hasta que te muerde en producción bajo carga. También llegan el fix de revalidación en background duplicada con 'use cache', reportes de errores más estrictos en routing — slots de parallel routes incompatibles, rutas canónicas obligatorias para interception routes, y error explícito cuando una página de app/ no matchea ninguna ruta — y un bundle-analyzer con vista de tabla y modo compare con diff de treemap.
TanStack Router: menos hidratación repetida en el adaptador de Solid
Release del 10 de septiembre enfocada en performance del lado Solid: se evitan escaneos de hidratación repetidos y ejecución duplicada de scripts, y solid-router saltea el setup de cliente para todos los links de servidor. Del lado Start, un fix para iterar correctamente los headers de la respuesta en start-server-core.
pnpm 12.4.1 arregla installs que fallaban por hard links, Android y nodeLinker hoisted
Patch grande en cantidad de escenarios rotos que destraba. pnpm install ya no revienta con Operation not permitted cuando el filesystem rechaza un hard link o un clone copy-on-write: bajo packageImportMethod: auto copia el archivo. Eso desbloquea checkouts de EdenFS y contenedores rootless. También: ya no escribe a través de un symlink que quedó en el path de destino (esto pisaba lo que apuntara el link, y hasta lo creaba si apuntaba a la nada), arregla instalaciones en Android usando CAs bundleadas, y bajo nodeLinker: hoisted deja de re-importar paquetes que ya están en su lugar — antes un install repetido reemplazaba todo el árbol de node_modules y volvía a correr lifecycle scripts. Ojo con un cambio de comportamiento: ahora ignoredOptionalDependencies se aplica de verdad en install, add y dedupe.
Wrangler 4.131.0 suma Containers manejados por Durable Object y saca preview settings
Wrangler acepta scheduling_policy: "durable_object" en el array top-level de containers y crea la aplicación respaldada por namespace después de que el upload del Worker resuelva el ID del namespace del Durable Object. Como ese ID es también el ID de aplicación, los deploys repetidos son idempotentes sin lookup por nombre. El soporte de desarrollo local para estas entradas queda para un follow-up. Además se eliminan los comandos de beta privada wrangler preview settings y wrangler preview settings update.
Electron 43.7.0: getUserMedia deja de aceptar IDs de WebContents como fuente de desktop
Ojo con esto si capturás pantalla en tu app: getUserMedia con chromeMediaSource: 'desktop' ya no acepta IDs de WebContents. Si capturabas un WebContents por esa vía, tenés que migrar a chromeMediaSource: 'tab' con webContents.getMediaSourceId(), o usar setDisplayMediaRequestHandler. En la misma línea de endurecimiento: los permisos de File System Access ahora están acotados al documento que los pide y se resetean cuando cierra la última página del origin, los IPC internos de <webview> y executeJavaScript se validan contra el frame emisor, y se reactivó el bloqueo de drag and drop entre frames cross-site de la misma página. Como feature útil para debug: ELECTRON_DEBUG_DRAGGABLE_REGIONS te visualiza y loguea las regiones arrastrables en apps sin empaquetar.
Tendencias Destacadas
Tres releases del mismo día, tres fixes del mismo tipo: Astro escapando scripts dinámicos en MDX, Next.js dejando de compartir el socket del request en next/image, Electron cerrando la captura de WebContents por getUserMedia. Ninguno es un CVE ruidoso — son defaults inseguros que se están corrigiendo en silencio. Y eso es lo que más me interesa: el ecosistema está pagando deuda de seguridad estructural, no parcheando exploits.
QUERY llegando a HTTP dieciséis años después de PATCH dice algo incómodo: el protocolo se mueve a escala geológica y nosotros lo venimos parcheando con convenciones. Cuántas APIs viste que mandan un POST a /search y después inventan su propia capa de caché encima. Ahora hay un verbo para eso — pero vas a esperar años a que proxies, CDNs y frameworks lo soporten de punta a punta. Conocé el estándar ahora, adoptalo cuando la infraestructura te acompañe.
El fix de Biome sobre inferencia de genéricos importados es un recordatorio: el lint con tipos es potente pero paga el costo del type checker completo. Si tu CI se puso lento y no sabés por qué, mirá qué reglas type-aware tenés prendidas antes de culpar al runner.
Astro 7.3.2 escapes dynamic values inside script and style in MDX
A quiet but important security change: in MDX, only literal content (including content injected by remark/rehype plugins) is treated as trusted markup. A dynamic value passed as a child of <script> or <style> — that is, <script>{value}</script> — is now escaped like any other element's content instead of being rendered raw. If you relied on that behavior, opt back in explicitly with set:html. The release also fixes the dev toolbar returning a 504 "Outdated Optimize Dep" with workspace-linked packages, and an i18n fallback bug that replaced the first matching substring instead of the actual locale segment, mangling /energy/en/about into /esergy/en/about.
Vue 3.6.0-rc.8: the release candidate keeps advancing
The eighth release candidate for Vue 3.6 landed today — a sign the cycle is stabilizing. If you maintain a Vue ecosystem library, this is the moment to test against the RC and report, not after stable ships. The detailed changelog lives on the repo's minor branch.
Next.js 16.4 canary.26: next/image stops sharing the requester's socket
The change that stands out: next/image no longer shares the incoming request's socket with the internal image response. That is the kind of isolation bug you only meet in production under load. Also landing: a fix for duplicate background revalidation with 'use cache', stricter routing diagnostics — incompatible parallel route slots reported, canonical routes required for interception routes, and an explicit error when an app/ page matches no route — plus a bundle-analyzer with table view and a compare mode with treemap diff.
TanStack Router: less repeated hydration in the Solid adapter
A September 10 release focused on Solid-side performance: repeated hydration scans and duplicated script execution are avoided, and solid-router skips client setup for all server links. On the Start side, a fix to correctly iterate response headers in start-server-core.
pnpm 12.4.1 fixes installs failing on hard links, Android and hoisted nodeLinker
A big patch in terms of broken scenarios unblocked. pnpm install no longer dies with Operation not permitted when the filesystem refuses a hard link or a copy-on-write clone: under packageImportMethod: auto it copies the file instead. That unblocks EdenFS checkouts and rootless containers. Also: it no longer writes through a symlink left at the destination path (which overwrote whatever the link pointed at, and created that file when it pointed nowhere), installs on Android now work via bundled CAs, and under nodeLinker: hoisted it stops re-importing packages already in place — a repeat install used to replace the whole node_modules tree and re-run lifecycle scripts. Watch one behavior change: ignoredOptionalDependencies is now actually applied by install, add and dedupe.
Wrangler 4.131.0 adds Durable Object-managed Containers and removes preview settings
Wrangler now accepts scheduling_policy: "durable_object" in the top-level containers array and creates its namespace-backed application after the Worker upload resolves the Durable Object namespace ID. Because that ID is also the application ID, repeated deploys are idempotent with no name-based lookup. Local development support for these entries is deferred to a follow-up. The private-beta wrangler preview settings and wrangler preview settings update commands are also removed.
Electron 43.7.0: getUserMedia no longer accepts WebContents source ids for desktop capture
Heads up if your app captures the screen: getUserMedia with chromeMediaSource: 'desktop' no longer accepts WebContents source ids. If you captured a WebContents that way, migrate to chromeMediaSource: 'tab' with webContents.getMediaSourceId(), or use setDisplayMediaRequestHandler. In the same hardening pass: File System Access permission requests are now scoped to the requesting document and grants reset when the origin's last page closes, internal <webview> and executeJavaScript IPCs are validated against the sending frame, and the browser-side block on drag and drop between cross-site frames of the same page was re-enabled. Handy for debugging: ELECTRON_DEBUG_DRAGGABLE_REGIONS visualizes and logs draggable regions in unpackaged apps.
Notable Trends
Three releases on the same day, three fixes of the same shape: Astro escaping dynamic scripts in MDX, Next.js no longer sharing the request socket in next/image, Electron closing WebContents capture via getUserMedia. None is a loud CVE — they are insecure defaults being quietly corrected. That is the interesting part: the ecosystem is paying down structural security debt rather than patching exploits.
QUERY arriving in HTTP sixteen years after PATCH says something uncomfortable: the protocol moves at geological pace and we have been patching over it with conventions. How many APIs have you seen POST to /search and then invent their own caching layer on top? Now there is a verb for it — but you will wait years for proxies, CDNs and frameworks to support it end to end. Learn the standard now, adopt it when the infrastructure catches up.
Biome's fix around imported generic inference is a reminder: type-aware linting is powerful but pays the full type-checker cost. If your CI got slow and you cannot explain why, audit which type-aware rules you have enabled before blaming the runner.
Astro 7.3.2 échappe les valeurs dynamiques dans script et style en MDX
Changement de sécurité discret mais important : en MDX, seul le contenu littéral est traité comme markup de confiance. Une valeur dynamique passée comme enfant de <script> ou <style> est désormais échappée au lieu d'être rendue en raw ; utilisez set:html pour le comportement précédent. La release corrige aussi le 504 « Outdated Optimize Dep » de la dev toolbar et un bug de fallback i18n transformant /energy/en/about en /esergy/en/about.
Vue 3.6.0-rc.8 : la release candidate progresse
La huitième release candidate de Vue 3.6 est sortie aujourd'hui, signe que le cycle se stabilise. Si vous maintenez une librairie de l'écosystème Vue, testez contre la RC dès maintenant. Le changelog détaillé se trouve sur la branche minor du dépôt.
Next.js 16.4 canary.26 : next/image ne partage plus le socket du requérant
Le changement marquant : next/image ne partage plus le socket de la requête entrante avec la réponse interne de l'image. Arrivent aussi un correctif de revalidation en arrière-plan dupliquée avec 'use cache', des diagnostics de routing plus stricts, et un bundle-analyzer avec vue tableau et mode comparaison avec diff treemap.
TanStack Router : moins d'hydratation répétée dans l'adaptateur Solid
Release du 10 septembre axée sur la performance côté Solid : plus de scans d'hydratation répétés ni d'exécution de scripts dupliquée, et solid-router saute le setup client pour tous les liens serveur. Côté Start, correction de l'itération des headers de réponse dans start-server-core.
pnpm 12.4.1 corrige les installs cassées par hard links, Android et nodeLinker hoisted
Un patch important par le nombre de scénarios débloqués. pnpm install ne casse plus avec Operation not permitted quand le filesystem refuse un hard link ou un clone copy-on-write : sous packageImportMethod: auto, il copie le fichier. Cela débloque EdenFS et les conteneurs rootless. Aussi : plus d'écriture à travers un symlink resté au chemin de destination, installs Android réparées via des CA bundlées, et sous nodeLinker: hoisted plus de ré-import des paquets déjà en place. Attention : ignoredOptionalDependencies est désormais réellement appliqué.
Wrangler 4.131.0 ajoute des Containers gérés par Durable Object et retire preview settings
Wrangler accepte désormais scheduling_policy: "durable_object" dans le tableau containers de premier niveau et crée l'application adossée au namespace après que l'upload du Worker ait résolu l'ID du namespace Durable Object. Cet ID étant aussi l'ID d'application, les déploiements répétés sont idempotents. Le support en développement local est reporté. Les commandes wrangler preview settings sont retirées.
Electron 43.7.0 : getUserMedia n'accepte plus d'IDs WebContents comme source desktop
Attention si votre app capture l'écran : getUserMedia avec chromeMediaSource: 'desktop' n'accepte plus les IDs de source WebContents. Migrez vers chromeMediaSource: 'tab' avec webContents.getMediaSourceId(), ou utilisez setDisplayMediaRequestHandler. Même passe de durcissement : permissions File System Access limitées au document demandeur, IPC internes validés contre le frame émetteur, et blocage du drag and drop entre frames cross-site réactivé.
Tendances Notables
Trois releases le même jour, trois correctifs de même nature : Astro échappant les scripts dynamiques en MDX, Next.js ne partageant plus le socket de requête dans next/image, Electron fermant la capture de WebContents via getUserMedia. Aucun CVE bruyant — ce sont des defaults non sûrs corrigés en silence. L'écosystème rembourse une dette de sécurité structurelle.
L'arrivée de QUERY seize ans après PATCH dit quelque chose d'inconfortable : le protocole avance à une vitesse géologique et nous l'avons contourné par des conventions. Combien d'APIs font un POST vers /search puis réinventent leur couche de cache ? Il existe maintenant un verbe pour cela, mais il faudra des années pour que proxies, CDN et frameworks le supportent de bout en bout.
Le correctif de Biome sur l'inférence des génériques importés rappelle une chose : le lint typé est puissant mais paie le coût complet du type checker. Si votre CI ralentit sans explication, auditez les règles type-aware activées avant d'accuser le runner.