← Actus Dev

Dev News — 21 septembre 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

Bun reescribió 535.496 líneas de Zig a Rust en cuatro meses

Jarred Sumner llevó todo el core de Bun de Zig a Rust con una reescritura asistida por IA: ~50 workflows, 64 instancias en paralelo, picos de ~1.300 líneas por minuto y $165.000 en tokens contra una estimación de un año con tres ingenieros humanos. El resultado no es marketing: 128 bugs viejos cerrados, los tests de bundling bajaron de 6,7 GB a 609 MB de memoria y el throughput HTTP subió entre 2 y 5%. Ojo con el detalle que nadie mira: 11 rondas de revisión de seguridad y fuzzing 24/7. Eso es lo que separa un experimento de un runtime en producción.

20 Sep 2026
infoq.com →
Breaking

htmx 4.0: reescritura sobre fetch, morphing nativo y herencia explícita

htmx cambió XMLHttpRequest por fetch(), sumó streaming nativo, morphing con idiomorph que preserva foco y estado del DOM, y un hx-partial para actualizar varios targets desde una sola respuesta — todo en ~14KB. Ahora la parte que te va a doler: los atributos ya no se heredan solos, hay que escribir hx-confirm:inherited. Si pasás tu CSRF token por hx-headers heredado, deja de funcionar en silencio y te comés 403s. Los eventos también se renombraron a htmx:after:request. No actualices un viernes.

18 Sep 2026
infoq.com →
Release

SolidStart 2 sale estable sobre Vite 8 — y entra en mantenimiento el mismo día

Después de más de un año y 25 versiones alpha/beta/RC, SolidStart 2.0 es estable: fuera Vinxi, adentro la Environment API de Vite 8, compatibilidad real con Tailwind v4 y deploy directo a Nitro v3, Cloudflare y Netlify. Requiere Node 24 y la config se muda de app.config.ts a vite.config.ts. Y acá está el giro: el equipo lo pasó a mantenimiento porque Solid 2.0 absorbe server functions, routing y la capa de serving en el core. «Start mode replaces SolidStart».

19 Sep 2026
infoq.com →
🧩

JS Frameworks

Beta

Solid 2.0 RC.9: arregla hidratación rota y consolida los error hooks

Un signal escrito desde onSettled o createEffect durante la hidratación ya no deja el DOM huérfano: el root marca su propio scope de snapshot y la ventana de resume de un boundary streameado solo reclama su subárbol. Suma configureClientErrors({ onError }) como seam de producción, y ahora ownerPath te dice dónde se lanzó el error mientras boundaryPath dice dónde se atrapó. Ese par de campos vale oro cuando debuggeás un boundary que se come diez componentes.

18 Sep 2026
github.com/solidjs →
🔧

Build Tools & Runtimes

Destacado

Turborepo 2.11 descubre workspaces de uv y corre tasks nativas de Python

Turborepo deja de ser solo cosa de JS: ahora descubre workspaces de uv y ejecuta tasks nativas de Python, además de mejorar el soporte de Cargo/Rust con caching y watch. Suma toggle entre TUI y logs streameados, scroll y selección de texto con mouse, parser de CLI migrado a usage-rs, y varios CVEs cerrados en tar y js-yaml. Si tenés un monorepo políglota, esto te saca un Makefile de encima.

18 Sep 2026
github.com/vercel →
Destacado

pnpm 12.5: Python de primera clase, Package URLs y config por plataforma

Segunda señal del mismo día y misma dirección: pnpm ahora selecciona intérpretes de Python automáticamente y guarda los environments en el store en vez de por proyecto. Además acepta Package URLs (pnpm add pkg:pypi/[email protected]), reemplaza os/cpu/libc por plataformas declaradas tipo darwin-arm64, y suma límites de concurrencia a nivel máquina. Trae un fix de seguridad importante: ya no reutiliza el tarball de un paquete para otro con distinto integrity hash en la misma URL.

18 Sep 2026
github.com/pnpm →
🛠️

Developer Tools

Minor

ESLint 10.11: no-unsafe-finally ahora caza continue etiquetados

Release chico pero útil: no-unsafe-finally ahora reporta continue etiquetados dentro de un finally — control de flujo que te rompe la propagación de errores y nadie ve en code review. Además object-shorthand maneja propiedades entrecomilladas con ignoreConstructors, y new-cap solo exime referencias built-in que apunten al objeto global.

18 Sep 2026
github.com/eslint →
🔥

Top Stories

Breaking

Bun rewrote 535,496 lines of Zig into Rust in four months

Jarred Sumner moved Bun's entire core from Zig to Rust in an AI-assisted rewrite: ~50 workflows, 64 parallel instances, peaks of ~1,300 lines per minute and $165,000 in tokens against an estimated one year with three human engineers. The results are concrete: 128 longstanding bugs closed, bundling tests down from 6.7 GB to 609 MB of memory, and HTTP throughput up 2–5%. The detail nobody highlights: 11 security review rounds and 24/7 fuzzing.

20 Sep 2026
infoq.com →
Breaking

htmx 4.0: fetch-based rewrite, built-in morphing and explicit inheritance

htmx swapped XMLHttpRequest for fetch(), added native streaming, idiomorph-powered morphing that preserves focus and DOM state, and an hx-partial tag to update multiple targets from one response — all in ~14KB. The painful part: attributes no longer cascade automatically, you now write hx-confirm:inherited. If your CSRF token rides on an inherited hx-headers, it silently stops working and you get 403s. Events were also renamed to htmx:after:request.

18 Sep 2026
infoq.com →
Release

SolidStart 2 ships stable on Vite 8 — and enters maintenance the same week

After more than a year and 25 alpha/beta/RC releases, SolidStart 2.0 is stable: Vinxi out, Vite 8's Environment API in, real Tailwind v4 compatibility and direct deploys to Nitro v3, Cloudflare and Netlify. It requires Node 24 and config moves from app.config.ts to vite.config.ts. The twist: the team moved it to maintenance because Solid 2.0 absorbs server functions, routing and the serving layer into core.

19 Sep 2026
infoq.com →
🧩

JS Frameworks

Beta

Solid 2.0 RC.9: fixes broken hydration and consolidates error hooks

A signal written from onSettled or createEffect during hydration no longer strands the DOM: a root marks its own snapshot scope, and a streamed boundary's resume window only claims its subtree. It also adds configureClientErrors({ onError }) as a production seam, and ownerPath now points at where the error was thrown while boundaryPath points at where it was caught.

18 Sep 2026
github.com/solidjs →
🔧

Build Tools & Runtimes

Notable

Turborepo 2.11 discovers uv workspaces and runs native Python tasks

Turborepo is no longer JS-only: it now discovers uv workspaces and runs native Python tasks, on top of improved Cargo/Rust support with caching and watch. It adds a toggle between the TUI and streamed logs, mouse scrolling and text selection, a CLI parser migrated to usage-rs, and CVE fixes in tar and js-yaml.

18 Sep 2026
github.com/vercel →
Notable

pnpm 12.5: first-class Python, Package URLs and platform-centric config

Second signal the same day pointing the same way: pnpm now auto-selects Python interpreters and stores environments in the store instead of per project. It also accepts Package URLs (pnpm add pkg:pypi/[email protected]), replaces os/cpu/libc with declared platforms like darwin-arm64, and adds machine-wide concurrency groups. Notable security fix: it no longer reuses one package's tarball for another with a different integrity hash at the same URL.

18 Sep 2026
github.com/pnpm →
🛠️

Developer Tools

Minor

ESLint 10.11: no-unsafe-finally now catches labeled continue

Small but useful release: no-unsafe-finally now reports labeled continue statements inside a finally block — control flow that silently breaks error propagation. Plus object-shorthand handles quoted properties with ignoreConstructors, and new-cap only exempts built-in references pointing at the global object.

18 Sep 2026
github.com/eslint →
🔥

Top Stories

Breaking

Bun a réécrit 535 496 lignes de Zig en Rust en quatre mois

Jarred Sumner a migré tout le cœur de Bun de Zig vers Rust via une réécriture assistée par IA : ~50 workflows, 64 instances en parallèle, des pics à ~1 300 lignes par minute et 165 000 $ de tokens, contre une estimation d'un an avec trois ingénieurs. Résultats concrets : 128 bugs historiques corrigés, les tests de bundling passent de 6,7 Go à 609 Mo de mémoire, et le débit HTTP gagne 2 à 5 %. Le détail que personne ne relève : 11 rondes de revue de sécurité et du fuzzing 24/7.

20 Sep 2026
infoq.com →
Breaking

htmx 4.0 : réécriture sur fetch, morphing natif et héritage explicite

htmx remplace XMLHttpRequest par fetch(), ajoute le streaming natif, le morphing via idiomorph qui préserve le focus et l'état du DOM, et un hx-partial pour mettre à jour plusieurs cibles depuis une seule réponse — le tout en ~14 Ko. Le point douloureux : les attributs ne se propagent plus automatiquement, il faut écrire hx-confirm:inherited. Si votre token CSRF passe par un hx-headers hérité, il cesse de fonctionner silencieusement et vous récoltez des 403. Les événements deviennent htmx:after:request.

18 Sep 2026
infoq.com →
Release

SolidStart 2 sort en stable sur Vite 8 — et passe en maintenance dans la foulée

Après plus d'un an et 25 versions alpha/beta/RC, SolidStart 2.0 est stable : exit Vinxi, place à l'Environment API de Vite 8, une vraie compatibilité Tailwind v4 et des déploiements directs vers Nitro v3, Cloudflare et Netlify. Node 24 requis, et la config passe de app.config.ts à vite.config.ts. Le retournement : l'équipe le place en maintenance, Solid 2.0 absorbant les server functions, le routing et la couche de serving dans le core.

19 Sep 2026
infoq.com →
🧩

JS Frameworks

Bêta

Solid 2.0 RC.9 : corrige l'hydratation cassée et consolide les error hooks

Un signal écrit depuis onSettled ou createEffect pendant l'hydratation ne laisse plus de DOM orphelin : un root marque son propre scope de snapshot, et la fenêtre de reprise d'un boundary streamé ne réclame que son sous-arbre. Ajoute aussi configureClientErrors({ onError }) comme seam de production, et ownerPath indique désormais où l'erreur a été levée tandis que boundaryPath indique où elle a été attrapée.

18 Sep 2026
github.com/solidjs →
🔧

Build Tools & Runtimes

Notable

Turborepo 2.11 détecte les workspaces uv et exécute des tâches Python natives

Turborepo n'est plus réservé à JS : il détecte désormais les workspaces uv et exécute des tâches Python natives, en plus d'un meilleur support Cargo/Rust avec caching et watch. Ajoute un basculement entre TUI et logs streamés, le scroll et la sélection de texte à la souris, un parser CLI migré vers usage-rs, et des correctifs de CVE dans tar et js-yaml.

18 Sep 2026
github.com/vercel →
Notable

pnpm 12.5 : Python de premier plan, Package URLs et config par plateforme

Deuxième signal le même jour et dans la même direction : pnpm sélectionne désormais les interpréteurs Python automatiquement et range les environnements dans le store plutôt que par projet. Accepte aussi les Package URLs (pnpm add pkg:pypi/[email protected]), remplace os/cpu/libc par des plateformes déclarées type darwin-arm64, et ajoute des groupes de concurrence à l'échelle machine. Correctif de sécurité notable : plus de réutilisation du tarball d'un paquet pour un autre au hash d'intégrité différent à la même URL.

18 Sep 2026
github.com/pnpm →
🛠️

Developer Tools

Mineur

ESLint 10.11 : no-unsafe-finally attrape les continue étiquetés

Release modeste mais utile : no-unsafe-finally signale désormais les continue étiquetés dans un bloc finally — un flux de contrôle qui casse silencieusement la propagation d'erreurs. En prime, object-shorthand gère les propriétés entre guillemets avec ignoreConstructors, et new-cap n'exempte que les références built-in pointant vers l'objet global.

18 Sep 2026
github.com/eslint →