Safari Technology Preview 250: using, await using y upload de ReadableStream
WebKit suma soporte para la propuesta Explicit Resource Management: declaraciones using y await using, más Symbol.dispose y las clases de stack asociadas. Es el try/finally que dejás de escribir a mano para cerrar handles, streams y conexiones.
Del lado de red, llega soporte inicial para subir un body de tipo ReadableStream con fetch(), junto con la opción duplex en Request que lo habilita. En CSS entran text-decoration-inset, white-space-trim, wrap-inside y la propiedad content sobre ::marker. Y en edición, el Clipboard API ya copia y pega image/svg+xml sanitizando el markup en lectura y escritura.
Es un Technology Preview, así que no lo mandes a producción — pero ese using aterrizando en el cuarto motor es la señal de que la propuesta está por cruzar la línea.
Next.js 16.3.1: loops de prefetch, caché de use cache y headers() en vivo
Patch de backports pero con arreglos que se sienten. Se corrigen bugs de routing optimista que provocaban loops de prefetch repetidos — si veías tu red llenarse de requests fantasma en navegación, era esto. También se restaura la vista en vivo de headers() sobre el request entrante.
En el lado de caché: se descartan solo las entradas anteriores a una revalidación por tag y se reutilizan las completadas, se retienen menos versiones stale con TTL y fallback por mtime, y se permiten exports literales en archivos 'use cache'. Turbopack suma varios fixes de HMR para imports dinámicos evaluados desde layouts.
TanStack Solid Start llega a 2.0.0-rc.0 el mismo día que Solid 2
No es casualidad: @tanstack/solid-start, solid-start-server, solid-start-client y @tanstack/solid-router pasan todos a 2.0.0-rc.0 el mismo día que el RC de Solid 2.0. El meta-framework se sincroniza con el core.
Si estabas mirando Solid de reojo esperando que el ecosistema alrededor madurara, este es el momento de armar un spike.
Astro 7.2.2: builds incrementales que dejan de arrastrarse
El fix grande: los builds incrementales dejaban de ser viables en sitios con muchas páginas o entradas de contenido que comparten un grafo de dependencias grande. Ya está corregido. Si tenés un blog con cientos de entries y el build incremental no te servía para nada, probalo de nuevo.
Además se arreglan los errores intermitentes de ImageNotFound durante el build (ahora limita lecturas concurrentes para no agotar file descriptors y reintenta errores de I/O transitorios con backoff), los estilos de componentes que quedaban stale hasta el segundo save, y la Fonts API que rompía el caché de experimental.incrementalBuild.
Angular 22.1.2 endurece el compilador contra scripts SVG y MathML
Dos fixes que huelen a superficie de ataque cerrada: el core ahora rechaza hosts de script SVG con prefijo y el compilador remueve elementos script de MathML con namespace. Si tu app renderiza SVG o MathML de terceros, este patch te importa.
El resto: optional chaining genera la expresión correcta, los radio inputs se mantienen sincronizados cuando cambian los valores, y las respuestas JSON de HttpClient siempre se decodifican como UTF-8 — ese último te ahorra los acentos rotos que nadie sabía de dónde salían.
SvelteKit 3.0.0-next.23 sigue puliendo el camino a la major
Otra iteración de la línea next rumbo a SvelteKit 3. Nada de titulares acá, pero el ritmo de releases — tres next en cuatro días — dice que la major está cerca.
Si mantenés un proyecto sobre la rama next, seguí el changelog de cerca: en esta etapa los cambios chicos se acumulan rápido.
pnpm 12.0.0-rc.5 hace del lockfile una función pura del grafo
Breaking change con premio. Los ciclos de dependencias ahora se rompen de forma canónica: los miembros de cada ciclo se ordenan por package id y las aristas que cierran el ciclo se cortan siempre en el mismo lugar, sin importar por dónde entró la instalación. Antes el corte dependía del camino recorrido, así que instalar las mismas dependencias podía producir lockfiles distintos según el orden de los importers.
Resultado: el lockfile es una función pura del grafo de dependencias — instalaciones repetidas, importers reordenados y dependencias reordenadas producen lockfiles byte-idénticos. En workspaces grandes con muchos ciclos, la resolución de peers va 2–3× más rápido, usa ~25% menos memoria y el lockfile queda notablemente más chico.
Los lockfiles existentes siguen funcionando: los installs headless los consumen sin tocarlos. Bonus: pnpm update por fin escribe el nuevo rango de vuelta en package.json, no solo en el lockfile.
Rspack 2.1.10 estrena sistema de caché y saca los warnings ruidosos de import.meta
Llega un nuevo sistema de caché, ya integrado con el minimizado. Y se revierte una decisión de la 2.1.9: los warnings por propiedades desconocidas de import.meta resultaron demasiado ruidosos en builds reales, así que los sacaron.
También hay un bump de rkyv a 0.8.18 que cierra RUSTSEC-2026-0233/0234/0235, y arreglos en split-chunks y en el caché nuevo sobre plataformas de 32 bits.
Turborepo 2.10.9: tanda de performance sobre lockfiles de pnpm y globs
Release enfocada en velocidad: los globs con prefijo literal ahora se recorren sin compilar con wax, el parser rápido de lockfiles de pnpm toma prestados los escalares de nombres de campo en vez de clonarlos, y los nodos del workspace se indexan por nombre en project_relationships.
Además, devEngines.packageManager.version acepta rangos semver. Nada rompe, todo va un poco más rápido — que en un monorepo grande se nota.
Oxlint 1.78.0 suma one-var, no-blank-blocks y afina rules-of-hooks
Tres reglas nuevas: one-var (paridad con ESLint), jsdoc/no-blank-blocks, y opciones para jsx-a11y/anchor-has-content que igualan a ESLint.
Del lado de los fixes, react/rules-of-hooks ahora detecta callbacks en constructores — ese caso que se te colaba — y la validación exhaustiva de memo del react_compiler queda desactivada por default. También baja el auto-fix de unicorn/prefer-code-point a dangerous, que es la decisión correcta.
Biome 2.5.8 reporta diagnósticos de React Compiler y limpia legacy de Svelte
La regla nursery useReactCompiler ahora trae los diagnósticos del modo lint de React Compiler directamente a Biome. Si estás evaluando el compiler, esto te lo pone en el mismo linter que ya corrés.
Sumado: noSvelteLegacyConst prohíbe los tags {@const} legacy y recomienda declaraciones con $derived(), y mejora la performance de noImportCycles.
Tendencias Destacadas
Solid 2.0 y TanStack Solid Start llegaron a RC el mismo día. Cuando el core y el meta-framework se sincronizan así, no es coincidencia: es una apuesta coordinada por un modelo mental donde el async vive adentro del grafo reactivo, no colgado por afuera.
El determinismo se volvió feature de primera clase. pnpm 12 convierte el lockfile en una función pura del grafo, y Vitest 5 falla el test cuando no esperás un assertion asíncrono. Son la misma idea aplicada a capas distintas: los resultados no deben depender del orden en que pasaron las cosas.
Explicit Resource Management aterrizó en WebKit. Con using y await using ya presentes en el cuarto motor, la propuesta pasa de curiosidad a herramienta real — y el try/finally manual para cerrar recursos empieza a tener fecha de vencimiento.
Los linters se están comiendo al compilador. Oxlint afina rules-of-hooks y ajusta la validación de memo del react_compiler; Biome trae los diagnósticos de React Compiler adentro de su propia regla. El análisis que antes vivía en una herramienta aparte se está mudando al linter que ya corrés en cada commit.
Safari Technology Preview 250: using, await using and ReadableStream uploads
WebKit adds support for the Explicit Resource Management proposal: using and await using declarations, plus Symbol.dispose and the related stack classes. It is the try/finally you stop hand-writing to close handles, streams and connections.
On the network side, there is initial support for uploading a ReadableStream body with fetch(), alongside the new duplex option on Request that enables it. CSS gains text-decoration-inset, white-space-trim, wrap-inside and the content property on ::marker. In editing, the Clipboard API now copies and pastes image/svg+xml, sanitizing markup on both read and write.
It is a Technology Preview, so keep it out of production — but using landing in the fourth engine signals the proposal is about to cross the line.
Next.js 16.3.1: prefetch loops, use cache entries and live headers()
A backport patch, but with fixes you will feel. Optimistic-routing bugs that caused repeated prefetch loops are fixed — if your network tab was filling with phantom requests during navigation, this was it. The live headers() view of the incoming request is also restored.
On the cache side: only entries predating a tag revalidation are discarded while completed ones are reused, fewer stale versions are retained via a TTL plus mtime fallback, and literal exports are now allowed in 'use cache' files. Turbopack lands several HMR fixes for dynamic imports evaluated from layouts.
TanStack Solid Start hits 2.0.0-rc.0 the same day as Solid 2
No coincidence: @tanstack/solid-start, solid-start-server, solid-start-client and @tanstack/solid-router all move to 2.0.0-rc.0 on the same day as the Solid 2.0 RC. The meta-framework syncs with the core.
If you were eyeing Solid while waiting for the surrounding ecosystem to mature, this is the moment to run a spike.
Astro 7.2.2: incremental builds that stop crawling
The big fix: incremental builds became prohibitively slow on sites with many pages or content entries sharing a large dependency graph. That is resolved. If you run a blog with hundreds of entries and incremental builds were useless to you, try again.
Also fixed: intermittent ImageNotFound errors during build (concurrent file reads are now capped to avoid exhausting file descriptors, and transient I/O errors retry with backoff), component styles staying stale until a second save, and the Fonts API breaking experimental.incrementalBuild caching.
Angular 22.1.2 hardens the compiler against SVG and MathML scripts
Two fixes that read like closed attack surface: core now rejects prefixed SVG script hosts, and the compiler removes namespaced MathML script elements. If your app renders third-party SVG or MathML, this patch matters.
The rest: optional chaining generates the correct expression, radio inputs stay in sync when values change, and HttpClient JSON responses always decode as UTF-8 — that last one saves you the broken accents nobody could trace.
SvelteKit 3.0.0-next.23 keeps polishing the road to the major
Another iteration of the next line heading toward SvelteKit 3. No headlines here, but the release pace — three next builds in four days — says the major is close.
If you maintain a project on the next branch, follow the changelog closely: at this stage small changes pile up fast.
pnpm 12.0.0-rc.5 makes the lockfile a pure function of the graph
A breaking change worth having. Dependency cycles are now broken canonically: members of each cycle are ordered by package id and the edges closing a cycle are always cut at the same place, regardless of where the install walked in from. Previously the cut depended on the walk path, so installing the same dependencies could produce different lockfiles depending on importer order.
The payoff: the lockfile is a pure function of the dependency graph — repeated installs, reordered importers and reordered dependencies all produce byte-identical lockfiles. On large cycle-heavy workspaces, peer resolution runs 2–3× faster, uses about 25% less memory, and yields a substantially smaller lockfile.
Existing lockfiles keep working: headless installs consume them unchanged. Bonus: pnpm update finally writes the new range back into package.json, not just the lockfile.
Rspack 2.1.10 lands a new cache system and drops noisy import.meta warnings
A new cache system arrives, already integrated with minimization. And a 2.1.9 decision gets reverted: warnings for unknown import.meta properties proved too noisy in real-world builds, so they were removed.
There is also an rkyv bump to 0.8.18 closing RUSTSEC-2026-0233/0234/0235, plus fixes in split-chunks and in the new cache on 32-bit platforms.
Turborepo 2.10.9: a performance batch over pnpm lockfiles and globs
A speed-focused release: literal-prefix globs are now walked without wax compilation, the fast pnpm lockfile parser borrows field-name scalars instead of cloning them, and workspace nodes are indexed by name in project_relationships.
Also, devEngines.packageManager.version now accepts semver ranges. Nothing breaks, everything runs a bit faster — which in a large monorepo is noticeable.
Oxlint 1.78.0 adds one-var, no-blank-blocks and sharpens rules-of-hooks
Three new rules: one-var (ESLint parity), jsdoc/no-blank-blocks, and options for jsx-a11y/anchor-has-content matching ESLint.
On fixes, react/rules-of-hooks now detects constructor callbacks — the case that slipped past you — and react_compiler exhaustive memo validation is disabled by default. The unicorn/prefer-code-point auto-fix is also downgraded to dangerous, which is the right call.
Biome 2.5.8 surfaces React Compiler diagnostics and cleans up Svelte legacy
The nursery rule useReactCompiler now brings React Compiler lint-mode diagnostics straight into Biome. If you are evaluating the compiler, this puts it in the linter you already run.
Also: noSvelteLegacyConst bans legacy {@const} tags and recommends declarations with $derived(), and noImportCycles performance improves.
Notable Trends
Solid 2.0 and TanStack Solid Start hit RC on the same day. When core and meta-framework sync like that, it is not coincidence: it is a coordinated bet on a mental model where async lives inside the reactive graph rather than bolted on outside it.
Determinism became a first-class feature. pnpm 12 turns the lockfile into a pure function of the graph, and Vitest 5 fails the test when an async assertion goes unawaited. Same idea at different layers: results should not depend on the order things happened to run.
Explicit Resource Management landed in WebKit. With using and await using now present in the fourth engine, the proposal moves from curiosity to real tooling — and hand-written try/finally for closing resources starts having an expiry date.
Linters are absorbing the compiler. Oxlint sharpens rules-of-hooks and tunes react_compiler memo validation; Biome pulls React Compiler diagnostics into its own rule. Analysis that used to live in a separate tool is moving into the linter you already run on every commit.
Safari Technology Preview 250 : using, await using et upload de ReadableStream
WebKit ajoute le support de la proposition Explicit Resource Management : déclarations using et await using, plus Symbol.dispose et les classes de stack associées. C'est le try/finally que vous cessez d'écrire à la main pour fermer handles, streams et connexions.
Côté réseau, un support initial permet d'envoyer un body ReadableStream avec fetch(), accompagné de l'option duplex sur Request qui l'active. En CSS arrivent text-decoration-inset, white-space-trim, wrap-inside et la propriété content sur ::marker. En édition, l'API Clipboard copie et colle désormais image/svg+xml en assainissant le markup en lecture comme en écriture.
C'est une Technology Preview, donc pas en production — mais l'arrivée de using dans le quatrième moteur signale que la proposition est sur le point d'aboutir.
Next.js 16.3.1 : boucles de prefetch, cache use cache et headers() en direct
Un patch de backports, mais avec des correctifs qui comptent. Les bugs de routing optimiste provoquant des boucles de prefetch répétées sont corrigés — si votre onglet réseau se remplissait de requêtes fantômes en navigation, c'était ça. La vue en direct de headers() sur la requête entrante est également rétablie.
Côté cache : seules les entrées antérieures à une revalidation par tag sont écartées, les entrées complétées sont réutilisées, moins de versions obsolètes sont conservées grâce à un TTL et un fallback mtime, et les exports littéraux sont autorisés dans les fichiers 'use cache'. Turbopack livre plusieurs correctifs HMR pour les imports dynamiques évalués depuis des layouts.
TanStack Solid Start atteint 2.0.0-rc.0 le même jour que Solid 2
Pas un hasard : @tanstack/solid-start, solid-start-server, solid-start-client et @tanstack/solid-router passent tous en 2.0.0-rc.0 le jour même de la RC de Solid 2.0. Le méta-framework se synchronise avec le core.
Si vous surveilliez Solid en attendant que l'écosystème mûrisse, c'est le moment de lancer un spike.
Astro 7.2.2 : des builds incrémentaux qui cessent de ramper
Le gros correctif : les builds incrémentaux devenaient prohibitivement lents sur les sites comptant de nombreuses pages ou entrées de contenu partageant un large graphe de dépendances. C'est résolu. Si vous tenez un blog avec des centaines d'entrées et que le build incrémental ne servait à rien, réessayez.
Également corrigés : les erreurs intermittentes ImageNotFound au build (les lectures concurrentes sont désormais limitées pour ne pas épuiser les file descriptors, et les erreurs d'I/O transitoires sont retentées avec backoff), les styles de composants restant obsolètes jusqu'à une deuxième sauvegarde, et l'API Fonts cassant le cache d'experimental.incrementalBuild.
Angular 22.1.2 durcit le compilateur contre les scripts SVG et MathML
Deux correctifs qui sentent la surface d'attaque refermée : le core rejette désormais les hosts de script SVG préfixés et le compilateur supprime les éléments script MathML avec namespace. Si votre app rend du SVG ou du MathML tiers, ce patch compte.
Le reste : l'optional chaining génère la bonne expression, les inputs radio restent synchronisés quand les valeurs changent, et les réponses JSON d'HttpClient sont toujours décodées en UTF-8 — ce dernier point vous épargne les accents cassés que personne n'arrivait à tracer.
SvelteKit 3.0.0-next.23 continue de polir la route vers la majeure
Une nouvelle itération de la ligne next en route vers SvelteKit 3. Pas de gros titre ici, mais le rythme des releases — trois builds next en quatre jours — indique que la majeure approche.
Si vous maintenez un projet sur la branche next, suivez le changelog de près : à ce stade, les petits changements s'accumulent vite.
pnpm 12.0.0-rc.5 fait du lockfile une fonction pure du graphe
Un breaking change qui en vaut la peine. Les cycles de dépendances sont désormais rompus de façon canonique : les membres de chaque cycle sont ordonnés par package id et les arêtes fermant un cycle sont toujours coupées au même endroit, quel que soit le point d'entrée du parcours. Auparavant la coupe dépendait du chemin parcouru, si bien qu'installer les mêmes dépendances pouvait produire des lockfiles différents selon l'ordre des importers.
Le gain : le lockfile devient une fonction pure du graphe de dépendances — installations répétées, importers réordonnés et dépendances réordonnées produisent des lockfiles octet pour octet identiques. Sur de gros workspaces riches en cycles, la résolution des peers est 2 à 3× plus rapide, consomme environ 25 % de mémoire en moins et produit un lockfile nettement plus petit.
Les lockfiles existants continuent de fonctionner : les installs headless les consomment tels quels. Bonus : pnpm update écrit enfin la nouvelle plage dans package.json, et pas seulement dans le lockfile.
Rspack 2.1.10 livre un nouveau système de cache et retire les warnings import.meta bruyants
Un nouveau système de cache arrive, déjà intégré à la minification. Et une décision de la 2.1.9 est annulée : les warnings sur les propriétés import.meta inconnues se sont révélés trop bruyants sur de vrais builds, ils ont donc été retirés.
On note aussi une montée de rkyv vers 0.8.18 qui referme RUSTSEC-2026-0233/0234/0235, plus des correctifs dans split-chunks et dans le nouveau cache sur plateformes 32 bits.
Turborepo 2.10.9 : un lot de perfs sur les lockfiles pnpm et les globs
Une version axée vitesse : les globs à préfixe littéral sont désormais parcourus sans compilation wax, le parser rapide des lockfiles pnpm emprunte les scalaires de noms de champs au lieu de les cloner, et les nœuds du workspace sont indexés par nom dans project_relationships.
Par ailleurs, devEngines.packageManager.version accepte des plages semver. Rien ne casse, tout va un peu plus vite — ce qui, dans un gros monorepo, se remarque.
Oxlint 1.78.0 ajoute one-var, no-blank-blocks et affine rules-of-hooks
Trois nouvelles règles : one-var (parité ESLint), jsdoc/no-blank-blocks, et des options pour jsx-a11y/anchor-has-content alignées sur ESLint.
Côté correctifs, react/rules-of-hooks détecte désormais les callbacks de constructeurs — le cas qui vous échappait — et la validation exhaustive des memos du react_compiler est désactivée par défaut. L'auto-fix de unicorn/prefer-code-point est rétrogradé en dangerous, ce qui est le bon choix.
Biome 2.5.8 expose les diagnostics React Compiler et nettoie le legacy Svelte
La règle nursery useReactCompiler remonte désormais les diagnostics du mode lint de React Compiler directement dans Biome. Si vous évaluez le compiler, cela l'intègre au linter que vous exécutez déjà.
Également : noSvelteLegacyConst interdit les tags {@const} legacy et recommande les déclarations avec $derived(), et les performances de noImportCycles s'améliorent.
Tendances Notables
Solid 2.0 et TanStack Solid Start ont atteint la RC le même jour. Quand le core et le méta-framework se synchronisent ainsi, ce n'est pas un hasard : c'est un pari coordonné sur un modèle mental où l'async vit dans le graphe réactif plutôt que greffé à l'extérieur.
Le déterminisme est devenu une fonctionnalité de premier plan. pnpm 12 transforme le lockfile en fonction pure du graphe, et Vitest 5 fait échouer le test quand une assertion asynchrone n'est pas attendue. Même idée à des couches différentes : les résultats ne doivent pas dépendre de l'ordre d'exécution.
Explicit Resource Management a atterri dans WebKit. Avec using et await using désormais présents dans le quatrième moteur, la proposition passe de curiosité à outil réel — et le try/finally manuel pour fermer des ressources commence à avoir une date de péremption.
Les linters absorbent le compilateur. Oxlint affine rules-of-hooks et ajuste la validation des memos du react_compiler ; Biome intègre les diagnostics de React Compiler dans sa propre règle. L'analyse qui vivait dans un outil séparé migre vers le linter que vous exécutez déjà à chaque commit.