← Dev News

Dev News — 26 Oct 2026: Safari 27.1 for foldables, Electron 45 and NgRx 22

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

Beta

Safari 27.1: Device Posture y Viewport Segments para el iPhone plegable

WebKit publicó las features de Safari 27.1 y el plato fuerte son los plegables: la media query device-posture (folded / continuous), navigator.devicePosture con evento change, las media queries horizontal-viewport-segments / vertical-viewport-segments, seis variables env(viewport-segment-*) y window.viewport.segments, que devuelve un DOMRect por segmento. Ojo: por ahora es developer preview detrás de feature flags. En el iPhone Duo el viewport va de 382 a 951 px CSS de ancho según la pose, así que el UA sniffing no te salva: feature detection y layouts responsivos de verdad. Lo podés probar con el simulador de Xcode 27.1.

23 Oct 2026
webkit.org →
Breaking

Electron 45: Chromium 156, Node 24.22 y preloads sandboxed más flacos

Electron 45 sube a Chromium 156.0.8078.48, V8 15.6 y Node.js v24.22.0. Trae Prompt API experimental con session.registerLocalAIHandler(), passkeys de plataforma en macOS vía app.configureWebAuthn() y lectura directa de ASAR. Ojo con los breaking changes: los preloads sandboxed ya no traen Buffer, setImmediate ni los shims de events, timers y url; la captura de pantalla pasa al permiso display-capture; y los hijos de window.open() en ventanas no sandboxed van a su propio proceso sin opener. Los métodos síncronos de safeStorage quedan deprecados (se van en la 46) y Electron 42 llegó a fin de soporte.

21 Oct 2026
electronjs.org →
⚛️

React

Patch

Next.js 16.4.3: fixes de backport para fuentes de Google, proxy.ts y OpenTelemetry

Patch de la rama LTS activa: arregla URLs de Google Fonts sin extensión en ambos bundlers, deja de cargar el runtime de app-page en proxy.ts, mantiene juntos los traces de request de OpenTelemetry, evita cargar React standalone en el bootstrap del server y revierte un cambio de invalidación de loaders en Turbopack. Si usás OTel o proxy.ts, vale la pena actualizar.

23 Oct 2026
github.com/vercel/next.js →
🧩

JS Frameworks

Release

NgRx 22: resource extensions y deep signals dinámicos para Angular 22

NgRx 22 estrena el entry point experimental @ngrx/signals/resource, que envuelve resource y httpResource de Angular para cambiar su comportamiento al recargar o en error (se registran con provideResourceExtensions). Los slices de estado con union types ahora exponen un deep signal por miembro después de narrowear con in, y aparece SignalStoreFeatureType. Requiere Angular 22 y TypeScript 6.0; @ngrx/eslint-plugin abandona ESLint 8 y .eslintrc. Migrás con ng update @ngrx/store@22.

23 Oct 2026
infoq.com →
🛠️

Developer Tools

Seguridad

Happy DOM 21.0.4: fix incompleto de CVE-2026-33943 dejaba inyectar código (CVSS 8.8)

El compilador ESM de Happy DOM no validaba los alias de imports locales antes de interpolarlos en el JavaScript generado, así que un alias inválido terminaba ejecutándose como default de una desestructuración. Es una vía alternativa al parche de CVE-2026-33943 (CVE-2026-115895, CVSS 8.8). Afecta de la 17.0.0 a la 21.0.3; arreglado en 21.0.4. Si tus tests de Vitest o Jest usan Happy DOM sobre HTML que no controlás, actualizá ya.

23 Oct 2026
GitHub Advisory →
Destacado

Biome 2.6.3: seis reglas nursery nuevas, de noBooleanSortComparator a noObsoleteAttributes

Patch con mucha chicha para el linter: noBooleanSortComparator caza el clásico array.sort((a, b) => a > b) que nunca ordena bien, noArraySortForMinMax te manda a Math.min()/Math.max(), noEagerArrayMethodsInLoops marca .map()/.filter() en el header de un for...of, más noNewRequire, noPathConcat y noObsoleteAttributes para HTML. Todas en nursery, así que las tenés que activar a mano.

24 Oct 2026
github.com/biomejs/biome →
🔥

Top Stories

Beta

Safari 27.1: Device Posture and Viewport Segments for the foldable iPhone

WebKit published the Safari 27.1 features, and the headline is foldables: the device-posture media query (folded / continuous), navigator.devicePosture with a change event, the horizontal-viewport-segments / vertical-viewport-segments media queries, six env(viewport-segment-*) variables and window.viewport.segments, which returns one DOMRect per segment. For now this is a developer preview behind feature flags. On iPhone Duo the viewport ranges from 382 to 951 CSS px wide depending on the pose, so Apple recommends feature detection over user-agent sniffing. You can test it with the Xcode 27.1 simulator.

23 Oct 2026
webkit.org →
Breaking

Electron 45: Chromium 156, Node 24.22 and slimmer sandboxed preloads

Electron 45 moves to Chromium 156.0.8078.48, V8 15.6 and Node.js v24.22.0. It adds an experimental Prompt API via session.registerLocalAIHandler(), macOS platform passkeys via app.configureWebAuthn() and direct ASAR reads. Watch the breaking changes: sandboxed preloads no longer include Buffer, setImmediate or the events, timers and url shims; screen capture now uses the display-capture permission; and window.open() children of unsandboxed windows get their own process with no opener. Synchronous safeStorage methods are deprecated (removed in 46), and Electron 42 reached end of support.

21 Oct 2026
electronjs.org →
⚛️

React

Patch

Next.js 16.4.3: backported fixes for Google fonts, proxy.ts and OpenTelemetry

An active-LTS patch: it fixes extensionless Google Fonts URLs in both bundlers, stops loading the app-page runtime in proxy.ts, keeps OpenTelemetry request traces together, avoids loading standalone React in the server bootstrap and reverts a Turbopack loader invalidation change. Worth taking if you rely on OTel or proxy.ts.

23 Oct 2026
github.com/vercel/next.js →
🧩

JS Frameworks

Release

NgRx 22: resource extensions and dynamic deep signals for Angular 22

NgRx 22 introduces the experimental @ngrx/signals/resource entry point, which wraps Angular's resource and httpResource to change their behavior while reloading or on error (registered with provideResourceExtensions). Union-typed state slices now expose a deep signal per member after narrowing with in, and SignalStoreFeatureType is added. It requires Angular 22 and TypeScript 6.0; @ngrx/eslint-plugin drops ESLint 8 and .eslintrc. Migrate with ng update @ngrx/store@22.

23 Oct 2026
infoq.com →
🛠️

Developer Tools

Security

Happy DOM 21.0.4: incomplete CVE-2026-33943 fix allowed code injection (CVSS 8.8)

Happy DOM's ESM compiler didn't validate local import aliases before interpolating them into generated JavaScript, so an invalid alias ended up executing as a destructuring default initializer. It is an alternate path around the CVE-2026-33943 fix (CVE-2026-115895, CVSS 8.8). Versions 17.0.0 through 21.0.3 are affected; fixed in 21.0.4. If your Vitest or Jest tests run Happy DOM over HTML you don't control, upgrade now.

23 Oct 2026
GitHub Advisory →
Notable

Biome 2.6.3: six new nursery rules, from noBooleanSortComparator to noObsoleteAttributes

A patch with real linter meat: noBooleanSortComparator catches the classic array.sort((a, b) => a > b) that never sorts correctly, noArraySortForMinMax points you to Math.min()/Math.max(), noEagerArrayMethodsInLoops flags .map()/.filter() in a for...of header, plus noNewRequire, noPathConcat and noObsoleteAttributes for HTML. All are nursery rules, so you opt in manually.

24 Oct 2026
github.com/biomejs/biome →
🔥

Top Stories

Bêta

Safari 27.1 : Device Posture et Viewport Segments pour l'iPhone pliable

WebKit a publié les fonctionnalités de Safari 27.1, centrées sur les écrans pliables : la media query device-posture (folded / continuous), navigator.devicePosture avec un événement change, les media queries horizontal-viewport-segments / vertical-viewport-segments, six variables env(viewport-segment-*) et window.viewport.segments, qui renvoie un DOMRect par segment. Pour l'instant, c'est un aperçu développeur derrière des feature flags. Sur l'iPhone Duo, le viewport va de 382 à 951 px CSS de large selon la posture : Apple recommande la détection de fonctionnalités plutôt que le sniffing du user-agent. Testable avec le simulateur de Xcode 27.1.

23 Oct 2026
webkit.org →
Breaking

Electron 45 : Chromium 156, Node 24.22 et des preloads sandboxés allégés

Electron 45 passe à Chromium 156.0.8078.48, V8 15.6 et Node.js v24.22.0. Il ajoute une Prompt API expérimentale via session.registerLocalAIHandler(), les passkeys de plateforme sur macOS via app.configureWebAuthn() et la lecture directe des archives ASAR. Attention aux changements cassants : les preloads sandboxés n'incluent plus Buffer, setImmediate ni les shims events, timers et url ; la capture d'écran utilise désormais la permission display-capture ; et les enfants de window.open() issus de fenêtres non sandboxées obtiennent leur propre processus sans opener. Les méthodes synchrones de safeStorage sont dépréciées (retirées en 46) et Electron 42 n'est plus supporté.

21 Oct 2026
electronjs.org →
⚛️

React

Patch

Next.js 16.4.3 : correctifs rétroportés pour Google Fonts, proxy.ts et OpenTelemetry

Un patch de la branche LTS active : il corrige les URL Google Fonts sans extension dans les deux bundlers, ne charge plus le runtime app-page dans proxy.ts, garde ensemble les traces de requêtes OpenTelemetry, évite de charger React standalone au démarrage du serveur et annule un changement d'invalidation des loaders Turbopack. À prendre si vous utilisez OTel ou proxy.ts.

23 Oct 2026
github.com/vercel/next.js →
🧩

JS Frameworks

Release

NgRx 22 : resource extensions et deep signals dynamiques pour Angular 22

NgRx 22 introduit le point d'entrée expérimental @ngrx/signals/resource, qui enveloppe resource et httpResource d'Angular pour modifier leur comportement pendant un rechargement ou en erreur (enregistré via provideResourceExtensions). Les tranches d'état à types union exposent désormais un deep signal par membre après un narrowing avec in, et SignalStoreFeatureType fait son apparition. Il requiert Angular 22 et TypeScript 6.0 ; @ngrx/eslint-plugin abandonne ESLint 8 et .eslintrc. Migration avec ng update @ngrx/store@22.

23 Oct 2026
infoq.com →
🛠️

Developer Tools

Sécurité

Happy DOM 21.0.4 : un correctif incomplet de CVE-2026-33943 permettait l'injection de code (CVSS 8.8)

Le compilateur ESM de Happy DOM ne validait pas les alias d'imports locaux avant de les interpoler dans le JavaScript généré : un alias invalide finissait exécuté comme valeur par défaut d'une déstructuration. C'est un contournement du correctif de CVE-2026-33943 (CVE-2026-115895, CVSS 8.8). Les versions 17.0.0 à 21.0.3 sont affectées ; corrigé en 21.0.4. Si vos tests Vitest ou Jest exécutent Happy DOM sur du HTML que vous ne contrôlez pas, mettez à jour.

23 Oct 2026
GitHub Advisory →
Notable

Biome 2.6.3 : six nouvelles règles nursery, de noBooleanSortComparator à noObsoleteAttributes

Un patch costaud pour le linter : noBooleanSortComparator repère le classique array.sort((a, b) => a > b) qui ne trie jamais correctement, noArraySortForMinMax oriente vers Math.min()/Math.max(), noEagerArrayMethodsInLoops signale .map()/.filter() dans l'en-tête d'un for...of, plus noNewRequire, noPathConcat et noObsoleteAttributes pour le HTML. Ce sont des règles nursery, à activer manuellement.

24 Oct 2026
github.com/biomejs/biome →