Noticias Dev

Dev News — 18 de agosto de 2026

Lo nuevo hoy

Today's highlights

Points forts du jour

Click en cualquiera para ir al detalle

Click any item to jump to the full section

Cliquez un élément pour aller à la section complète

🔥

Top Stories

Breaking

Remix 3.0.0-beta.10: se rehacen todos los entrypoints y llega una tanda grande de breaking changes

Ojo con esta si estás siguiendo la beta de Remix 3: la beta.10 reemplaza de una a las beta.6 hasta la beta.9 y consolida todo en una sola prerelease soportada. Los alias remix/* alineados a paquetes se fueron: ahora los middlewares viven en remix/middleware/*, los dialectos de base de datos en remix/data-table/*, los adaptadores de storage en remix/file-storage/* y remix/session-storage/*, y las rutas pasan de remix/fetch-router/routes a remix/routes.

Y no termina ahí. createAssetServer() cambia allow/deny por allowFiles/denyFiles. Los params de ruta ahora están delimitados: cortan en / y . pero no en -, así que un patrón tipo /:year-:month tiene que volverse un solo param. Los helpers href() reciben los search params dentro de una propiedad searchParams. Las cookies de sesión pasan a ser HTTP-only por defecto cuando omitís httpOnly — un default sano, pero si leías la cookie desde el cliente se te rompe. Y los tests se corren con remix test, el ejecutable remix-test ya no existe.

Migrar esto no es un find-and-replace de una tarde. Si estás en beta.5, leete el release completo antes de tocar nada.

17 Aug 2026
github.com/remix-run →
Destacado

Remix UI 0.7.0: la Navigation API queda activada por defecto en todas las apps

Ayer Remix metía progressive enhancement en los frames; hoy lo convierte en el default. run() ahora usa un resolver de frames del browser por defecto cuando omitís resolveFrame. Si vos tenías un resolver puesto solamente para hacer el fetch del HTML del frame, borralo: ya no hace falta.

Lo importante es lo que viene incluido. Todas las llamadas a run() habilitan ahora reloads de frame y navegación same-origin de links y forms a través de la Navigation API. El resolver por defecto manda el método, el encoding y el form data que corresponden, y rechaza respuestas que no sean OK.

¿Cuándo te quedás con un resolveFrame propio? Cuando necesitás headers custom, otro encoding del body, manejo propio de la respuesta o UI de error. Y si querés que una navegación puntual la maneje el browser y nada más, le ponés rmx-document al link o al form.

17 Aug 2026
github.com/remix-run →
Release

Biome 2.5.9: reglas nuevas para cascade layers, shorthands de Tailwind y Astro

Biome sigue creciendo del lado del CSS. Esta versión suma tres reglas nursery: useNamedLayer, que prohíbe las cascade layers anónimas (@layer { … } sin nombre); useTailwindShorthandClasses, que te sugiere reemplazar w-4 h-4 por size-4; y useAstroClientOnlyDirectiveValue, que marca los client:only sin valor.

Los fixes también valen: el parser de CSS ahora se recupera en los límites de declaración después de una declaración inválida, así que el resto del bloque se sigue parseando en vez de perderse. Y acepta los nombres de variante de container query de Tailwind en @variant@xl, @max-xl — que antes daban error de parseo y un diagnóstico falso de noUnknownAtRules.

Cierra con algo que si trabajás en Svelte o Vue te venía molestando: noUndeclaredVariables, noUnusedImports y noUnusedVariables ahora entienden que lo exportado en un bloque <script> se usa desde su bloque hermano.

17 Aug 2026
github.com/biomejs →
🛠️

Developer Tools

Seguridad

Vitest 5.0.0-rc.2: la UI pide auth, el mocker se limita al allowlist y el browser mode deja de colgarse

La segunda RC de Vitest 5 es corta en features y larga en endurecimiento, que en una RC es exactamente lo que querés ver. Del lado de seguridad hay dos cambios concretos: la UI ahora exige auth para el reporte de coverage y para todos los requests del subtree, y los redirect mocks del mocker quedan restringidos al allowlist del filesystem.

El browser mode se lleva la mayor parte de los arreglos: ahora falla en vez de colgarse cuando el navegador deja de responder, sale limpio si el browser se desconecta durante una cancelación, y dispara el GC de Playwright/Chromium cuando queda poco disco. Suma también snapshots evaluados en el server para bancar CSP con no-unsafe-eval, y que un source map inline malformado ya no rompa todo.

17 Aug 2026
github.com/vitest-dev →
Beta

Storybook 10.6 alpha: comandos «skills» y «tools» en la CLI, y Angular deja Compodoc

La alpha.6 de Storybook 10.6 muestra hacia dónde va el proyecto: suma los comandos storybook skills y storybook tools a la CLI, este último derivado en runtime de los toolsets, y hace correr addon-mcp y @storybook/mcp sobre esos mismos toolsets compartidos. Storybook se está posicionando como superficie para agentes, no solo como catálogo de componentes.

Del lado de Angular hay un cambio real de arquitectura: entra un analizador de docgen in-process que reemplaza a Compodoc detrás de un flag, y de ahí salen los snippets de story-docs. También se elimina la integración experimental con Playwright CT.

Es una alpha, así que no la lleves a producción — pero si mantenés setups de Angular o Vue con Storybook, mirala ahora y no cuando salga estable.

17 Aug 2026
github.com/storybookjs →
Minor

Puppeteer 25.8.0 suma «followSymlinks» y te explica cómo recuperar una carpeta de browser a medias

Release chico: se agrega la opción followSymlinks y, del lado de fixes, ahora cuando una descarga de browser queda a medias el error te dice cómo recuperar esa carpeta en vez de dejarte adivinando. @puppeteer/browsers sube a 3.2.1.

Nada urgente, pero ese mensaje de error mejorado te ahorra una tarde perdida en CI.

17 Aug 2026
github.com/puppeteer →
🔧

Build Tools & Runtimes

Seguridad

Electron 42.9.2: las ventanas abiertas desde un frame sandboxeado ya heredan sus restricciones

Este patch tiene contenido de seguridad concreto, no es rutina. Se arregla que las ventanas abiertas por un top-level frame sandboxeado no heredaban las restricciones de sandbox del opener — eso es un agujero en tu modelo de aislamiento, no un detalle cosmético. En la misma línea, <webview> y window.open ahora heredan nodeIntegrationInWorker del embedder, igual que el resto de las preferencias de Node y sandbox.

También se corrige que registerFileProtocol y registerHttpProtocol devolvían respuestas legibles a fetches no-cors cross-origin; ahora devuelven respuestas opacas como protocol.handle. Y se tapa un crash al resolver una ruta dentro de un archivo ASAR malformado con entradas de link cíclicas.

Los fixes están backporteados a 41, 43 y 44. Si tenés una app Electron en producción, este es el update de la semana.

16 Aug 2026
github.com/electron →
⚛️

React

Minor

Ant Design 6.6.1: pasada fuerte de accesibilidad y guía de migración de List a Listy

El 6.6.1 es un patch, pero casi todo lo interesante está del lado de accesibilidad: nombres accesibles localizados para las acciones de Upload y los botones de cierre de Modal y Notification, flechas del Carousel con nombre accesible vía ConfigProvider locale, y el separador decorativo del RangePicker ahora se esconde del screen reader sin perder el custom. Suma también un fix de teclado que molestaba: los botones de limpiar del Select no borraban el valor al activarse con Enter o Space.

Y hay señal de roadmap: llega la guía de migración de List (deprecado) a Listy, cubriendo render de items, virtual scrolling y los patrones de reemplazo más comunes. Si tenés List por todos lados, ese es tu documento.

17 Aug 2026
github.com/ant-design →
🔥

Top Stories

Breaking

Remix 3.0.0-beta.10: every entrypoint gets reshaped, with a big batch of breaking changes

If you're tracking the Remix 3 beta, read this one carefully: beta.10 supersedes beta.6 through beta.9 and consolidates them into a single supported prerelease. The package-aligned remix/* aliases are gone — middleware now lives under remix/middleware/*, database dialects under remix/data-table/*, storage adapters under remix/file-storage/* and remix/session-storage/*, and route definitions move from remix/fetch-router/routes to remix/routes.

And it doesn't stop there. createAssetServer() swaps allow/deny for allowFiles/denyFiles. Route params are now delimiter-bounded: they stop at / and . but not -, so a pattern like /:year-:month must collapse into one param. href() helpers take search params inside a searchParams options property. Session cookies become HTTP-only by default when httpOnly is omitted — a healthy default, but it breaks any client-side JavaScript that read the cookie. And tests now run with remix test; the remix-test executable is gone.

This isn't an afternoon find-and-replace. If you're on beta.5, read the full release before touching anything.

17 Aug 2026
github.com/remix-run →
Notable

Remix UI 0.7.0: the Navigation API is now on by default for every app

Yesterday Remix brought progressive enhancement to frames; today it makes it the default. run() now uses a default browser frame resolver when you omit resolveFrame. If you only supplied a resolver to fetch the frame HTML, delete it — it's no longer needed.

What matters is what comes bundled with it. Every run() call now enables frame reloads and same-origin link and form navigation through the Navigation API. The default resolver submits the requested method, encoding and form data, and rejects non-OK responses.

When do you keep your own resolveFrame? When you need custom request headers, a different body encoding, your own response handling, or error UI. And if you want one specific navigation left entirely to the browser, add rmx-document to that link or form.

17 Aug 2026
github.com/remix-run →
Release

Biome 2.5.9: new rules for cascade layers, Tailwind shorthands and Astro

Biome keeps growing on the CSS side. This release adds three nursery rules: useNamedLayer, which disallows anonymous cascade layers (@layer { … } with no name); useTailwindShorthandClasses, which suggests replacing w-4 h-4 with size-4; and useAstroClientOnlyDirectiveValue, which flags client:only directives with no initializer.

The fixes matter too: the CSS parser now recovers at declaration boundaries after a bogus declaration, so the rest of the block still parses instead of being lost. And it accepts Tailwind container-query variant names in @variant@xl, @max-xl — which previously produced a parse error and a bogus noUnknownAtRules diagnostic.

It closes with something that had been nagging Svelte and Vue users: noUndeclaredVariables, noUnusedImports and noUnusedVariables now understand that what one <script> block exports is used from its sibling block.

17 Aug 2026
github.com/biomejs →
🛠️

Developer Tools

Security

Vitest 5.0.0-rc.2: the UI requires auth, the mocker is limited to the allowlist, and browser mode stops hanging

The second RC of Vitest 5 is short on features and long on hardening — exactly what you want from an RC. Two concrete security changes: the UI now requires auth for the coverage report and for all UI subtree requests, and the mocker's redirect mocks are restricted to the filesystem allowlist.

Browser mode takes most of the fixes: it now fails instead of hanging when the browser stops responding, exits gracefully if the browser disconnects mid-cancellation, and triggers Playwright/Chromium GC when disk availability drops. It also adds snapshot files evaluated on the server so no-unsafe-eval CSP works, and a malformed inline source map no longer crashes the run.

17 Aug 2026
github.com/vitest-dev →
Beta

Storybook 10.6 alpha: skills and tools CLI commands, and Angular drops Compodoc

Storybook 10.6 alpha.6 shows where the project is heading: it adds storybook skills and storybook tools to the CLI — the latter derived at runtime from the toolsets — and runs addon-mcp and @storybook/mcp on those same shared toolsets. Storybook is positioning itself as an agent surface, not just a component catalog.

On the Angular side there's a real architectural change: an in-process docgen analyzer replaces Compodoc behind a flag, and story-docs snippets are generated from it. The experimental Playwright CT integration is also removed.

It's an alpha, so don't ship it — but if you maintain Angular or Vue Storybook setups, look at it now rather than when it goes stable.

17 Aug 2026
github.com/storybookjs →
Minor

Puppeteer 25.8.0 adds followSymlinks and tells you how to recover a partial browser folder

Small release: it adds the followSymlinks option and, on the fix side, a partially downloaded browser folder now produces an error that tells you how to recover it instead of leaving you guessing. @puppeteer/browsers bumps to 3.2.1.

Nothing urgent, but that improved error message saves you an afternoon lost in CI.

17 Aug 2026
github.com/puppeteer →
🔧

Build Tools & Runtimes

Security

Electron 42.9.2: windows opened from a sandboxed frame now inherit its restrictions

This patch carries real security content — it isn't routine. It fixes windows opened by a sandboxed top-level frame not inheriting the opener's sandbox restrictions, which is a hole in your isolation model, not a cosmetic detail. In the same vein, <webview> and window.open now inherit nodeIntegrationInWorker from the embedder, consistent with the other Node and sandbox preferences.

It also fixes registerFileProtocol and registerHttpProtocol returning readable responses to cross-origin no-cors fetches; they now return opaque responses like protocol.handle. And it closes a crash when resolving a path inside a malformed ASAR archive containing cyclic link entries.

The fixes are backported to 41, 43 and 44. If you run an Electron app in production, this is the update of the week.

16 Aug 2026
github.com/electron →
⚛️

React

Minor

Ant Design 6.6.1: a solid accessibility pass and a List-to-Listy migration guide

6.6.1 is a patch, but nearly everything interesting sits on the accessibility side: localized accessible names for Upload actions and Modal/Notification close buttons, Carousel arrows with accessible names via ConfigProvider locale, and the RangePicker's decorative separator now hidden from screen readers without losing custom ones. It also fixes a keyboard annoyance: Select clear buttons weren't clearing values when activated with Enter or Space.

There's a roadmap signal too: the migration guide from deprecated List to Listy has landed, covering item rendering, virtual scrolling and the common replacement patterns. If List is everywhere in your app, that's your document.

17 Aug 2026
github.com/ant-design →
🔥

Top Stories

Breaking

Remix 3.0.0-beta.10 : tous les entrypoints refaits, avec une grosse série de ruptures

Si vous suivez la bêta de Remix 3, lisez celle-ci attentivement : la beta.10 remplace les beta.6 à beta.9 et les consolide en une seule prerelease supportée. Les alias remix/* alignés sur les paquets disparaissent — les middlewares vivent désormais sous remix/middleware/*, les dialectes de base de données sous remix/data-table/*, les adaptateurs de stockage sous remix/file-storage/* et remix/session-storage/*, et les définitions de routes passent de remix/fetch-router/routes à remix/routes.

Et ce n'est pas tout. createAssetServer() remplace allow/deny par allowFiles/denyFiles. Les params de route sont maintenant bornés par délimiteur : ils s'arrêtent à / et . mais pas à -, donc un motif comme /:year-:month doit devenir un seul param. Les helpers href() reçoivent les search params dans une propriété searchParams. Les cookies de session deviennent HTTP-only par défaut quand httpOnly est omis — un défaut sain, mais cela casse tout JavaScript client qui lisait le cookie. Et les tests s'exécutent avec remix test ; l'exécutable remix-test n'existe plus.

Ce n'est pas un find-and-replace d'un après-midi. Si vous êtes en beta.5, lisez la release complète avant de toucher à quoi que ce soit.

17 Aug 2026
github.com/remix-run →
Notable

Remix UI 0.7.0 : l'API Navigation activée par défaut pour toutes les apps

Hier Remix apportait l'amélioration progressive aux frames ; aujourd'hui elle en fait le défaut. run() utilise désormais un résolveur de frames du navigateur par défaut quand resolveFrame est omis. Si vous fournissiez un résolveur uniquement pour faire le fetch du HTML du frame, supprimez-le — il n'est plus nécessaire.

L'essentiel est ce qui vient avec. Tous les appels à run() activent maintenant les rechargements de frame et la navigation same-origin des liens et formulaires via l'API Navigation. Le résolveur par défaut soumet la méthode, l'encodage et les données de formulaire demandés, et rejette les réponses non-OK.

Quand garder son propre resolveFrame ? Quand il faut des en-têtes personnalisés, un autre encodage du body, une gestion de réponse maison ou une UI d'erreur. Et pour laisser une navigation précise entièrement au navigateur, ajoutez rmx-document à ce lien ou ce formulaire.

17 Aug 2026
github.com/remix-run →
Release

Biome 2.5.9 : nouvelles règles pour les cascade layers, les shorthands Tailwind et Astro

Biome continue de grandir côté CSS. Cette version ajoute trois règles nursery : useNamedLayer, qui interdit les cascade layers anonymes (@layer { … } sans nom) ; useTailwindShorthandClasses, qui suggère de remplacer w-4 h-4 par size-4 ; et useAstroClientOnlyDirectiveValue, qui signale les directives client:only sans valeur.

Les correctifs comptent aussi : le parser CSS récupère désormais aux limites de déclaration après une déclaration invalide, si bien que le reste du bloc est toujours parsé au lieu d'être perdu. Et il accepte les noms de variante de container query Tailwind dans @variant@xl, @max-xl — qui produisaient auparavant une erreur de parsing et un faux diagnostic noUnknownAtRules.

Il termine par un point qui agaçait les utilisateurs de Svelte et Vue : noUndeclaredVariables, noUnusedImports et noUnusedVariables comprennent maintenant que ce qu'un bloc <script> exporte est utilisé depuis son bloc frère.

17 Aug 2026
github.com/biomejs →
🛠️

Developer Tools

Sécurité

Vitest 5.0.0-rc.2 : l'UI exige une auth, le mocker se limite à l'allowlist et le browser mode ne se bloque plus

La deuxième RC de Vitest 5 est courte en fonctionnalités et longue en durcissement — exactement ce qu'on attend d'une RC. Deux changements de sécurité concrets : l'UI exige désormais une auth pour le rapport de couverture et pour toutes les requêtes du subtree, et les redirect mocks du mocker sont restreints à l'allowlist du système de fichiers.

Le browser mode récupère l'essentiel des correctifs : il échoue au lieu de se bloquer quand le navigateur ne répond plus, se termine proprement si le navigateur se déconnecte pendant une annulation, et déclenche le GC de Playwright/Chromium quand l'espace disque baisse. S'ajoutent des fichiers de snapshot évalués côté serveur pour supporter la CSP no-unsafe-eval, et un source map inline malformé ne fait plus planter l'exécution.

17 Aug 2026
github.com/vitest-dev →
Bêta

Storybook 10.6 alpha : commandes skills et tools dans la CLI, et Angular abandonne Compodoc

Storybook 10.6 alpha.6 montre la direction du projet : il ajoute storybook skills et storybook tools à la CLI — ce dernier dérivé au runtime des toolsets — et fait tourner addon-mcp et @storybook/mcp sur ces mêmes toolsets partagés. Storybook se positionne comme une surface pour agents, pas seulement comme un catalogue de composants.

Côté Angular, un vrai changement d'architecture : un analyseur de docgen in-process remplace Compodoc derrière un flag, et les snippets de story-docs en sont générés. L'intégration expérimentale avec Playwright CT est également supprimée.

C'est une alpha, ne la mettez pas en production — mais si vous maintenez des setups Storybook Angular ou Vue, regardez-la maintenant plutôt qu'à la stable.

17 Aug 2026
github.com/storybookjs →
Mineur

Puppeteer 25.8.0 ajoute followSymlinks et explique comment récupérer un dossier de navigateur partiel

Petite version : elle ajoute l'option followSymlinks et, côté correctifs, un dossier de navigateur partiellement téléchargé produit désormais une erreur qui explique comment le récupérer au lieu de vous laisser deviner. @puppeteer/browsers passe à 3.2.1.

Rien d'urgent, mais ce message d'erreur amélioré vous épargne un après-midi perdu en CI.

17 Aug 2026
github.com/puppeteer →
🔧

Build Tools & Runtimes

Sécurité

Electron 42.9.2 : les fenêtres ouvertes depuis un frame sandboxé héritent de ses restrictions

Ce patch apporte un vrai contenu de sécurité — ce n'est pas de la routine. Il corrige le fait que les fenêtres ouvertes par un top-level frame sandboxé n'héritaient pas des restrictions de sandbox de l'opener, ce qui est une faille dans votre modèle d'isolation, pas un détail cosmétique. Dans la même veine, <webview> et window.open héritent maintenant de nodeIntegrationInWorker de l'embedder, comme les autres préférences Node et sandbox.

Il corrige aussi registerFileProtocol et registerHttpProtocol qui renvoyaient des réponses lisibles aux fetches no-cors cross-origin ; ils renvoient désormais des réponses opaques comme protocol.handle. Et il élimine un crash lors de la résolution d'un chemin dans une archive ASAR malformée contenant des entrées de lien cycliques.

Les correctifs sont backportés vers 41, 43 et 44. Si vous avez une app Electron en production, c'est la mise à jour de la semaine.

16 Aug 2026
github.com/electron →
⚛️

React

Mineur

Ant Design 6.6.1 : une bonne passe d'accessibilité et un guide de migration List vers Listy

La 6.6.1 est un patch, mais presque tout l'intéressant se trouve côté accessibilité : noms accessibles localisés pour les actions Upload et les boutons de fermeture de Modal/Notification, flèches du Carousel avec noms accessibles via ConfigProvider locale, et le séparateur décoratif du RangePicker désormais masqué aux lecteurs d'écran sans perdre les séparateurs personnalisés. Elle corrige aussi une gêne au clavier : les boutons d'effacement du Select n'effaçaient pas les valeurs activés avec Entrée ou Espace.

Un signal de roadmap aussi : le guide de migration de List (déprécié) vers Listy est arrivé, couvrant le rendu des items, le virtual scrolling et les patterns de remplacement courants. Si List est partout dans votre app, c'est votre document.

17 Aug 2026
github.com/ant-design →