Backend y Fullstack

Backend & Fullstack — 18 de agosto 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

Seguridad

Redis 8.10.1, 8.8.2, 8.6.6 y 8.4.6: nueve fixes de seguridad, uno con RCE potencial

Release coordinado en cuatro ramas con urgencia SECURITY, y la lista asusta. La peor: un payload RDB malicioso con un SLOT_INFO fuera de rango corrompe memoria durante la carga y puede terminar en ejecución remota de código. Le sigue un bypass de autenticación por certificado cliente TLS — un Common Name con un NUL byte embebido se truncaba, permitiendo autenticarse como otro usuario ACL, posiblemente privilegiado. Ese es el bug clásico de parsing que convierte una defensa en una puerta. Suman CVE-2026-62356 (buffer mal calculado al cargar CMSketch desde RDB, heap OOB write), OOB en el cleanup del heap de TopK, use-after-free en la lista de pending data de TLS, y tres fallas en Vector Sets: validación de nivel de nodo faltante al cargar desde RDB, use-after-free cuando VREM muta el grafo HNSW mientras corren VSIM en background, y un retorno negativo de hnsw_search() tratado como unsigned gigante. Si cargás RDBs de origen no confiable o exponés TLS con auth por certificado, actualizá YA.

17 Aug 2026
github.com/redis →
Seguridad

vm2: CVSS 9.9 por escape de sandbox a RCE vía Error.cause

CVSS 9.9 y escape completo. handleException() no sanitiza la propiedad Error.cause de ES2022: si el embebedor expone una función que lanza errores con .cause apuntando a objetos del host como process, el código sandboxeado se lleva acceso total al proceso host — filesystem, subprocesos y red. Afecta hasta 3.11.5 inclusive, fix en 3.11.6. Y no viene solo: la misma tanda suma otro escape crítico por host proto mutators, un tercero donde builtin: ['*'] expone os y dns, más dos DoS por bypass de bufferAllocLimit. El recordatorio de fondo no cambia: vm2 no es un límite de seguridad. Si necesitás correr código no confiable, la respuesta es aislamiento de proceso o de VM, no un sandbox in-process.

14 Aug 2026
github.com/advisories →
Breaking

better-auth 1.7.0: las cuentas ahora se identifican por issuer, y hay que backfillear antes de deployar

Major de breaking changes en la capa que menos te gusta romper: la identidad. Account.issuer pasa a ser obligatorio, y la identidad del provider OAuth ahora sale de los perfiles verificados crudos — OIDC usa sub, OAuth plano usa id, y un provider puede declarar accountSubject para otro campo inmutable. Se terminó el switcheo runtime entre sub e id. Consecuencia práctica: getUserInfo().user ya no lleva identidad de provider, mapProfileToUser no puede devolver id, y tenés que leer desde accountInfo.account.accountId. Los subjects de SSO pasan a ser definidos por protocolo: OIDC usa el claim sub verificado, SAML el NameID firmado, y mapping.id desaparece de ambas configs. Ojo con esto: la migración de schema generada NO asigna issuers confiables ni resuelve colisiones de identidad existentes — hay que aplicar el backfill de la guía de upgrade a mano antes de deployar. Además, experimental.joins se mueve a advanced.database.joins, MCP sale como paquete propio (withMcpAuthrequireMcpAuth, tablas oauthClient, oauthRefreshToken, oauthClientAssertion) y llega OIDC back-channel logout: cuando la sesión termina en el OP, cada Relying Party registrado recibe un logout+jwt firmado y el acceso se corta en el momento, en vez de esperar el TTL del access token.

18 Aug 2026
github.com/better-auth →
Breaking

Prisma 8.0.0-rc.2: se retira el binario prisma-next y vuelven los números de JavaScript

La rc.2 pide trabajo real: casi toda aplicación va a tener que re-emitir su contract y renombrar el archivo de config. El repo ya no publica CLI propia — nada expone el bin prisma-next y hay que instalar @prisma/cli, reemplazando prisma-next <command> en scripts y CI. El config se muda de prisma-next.config.ts a prisma.config.ts, con forma engine-shaped y tu config ORM anidada bajo una sección orm; el nombre viejo y la forma plana siguen cargando con warning en stderr, así que el rename y el rewrap pueden ir en commits separados. Del lado del runtime: los agregados por default vuelven a ser números de JavaScript, con variantes lossless al lado, las CHECK constraints pasan a ser parte declarada del contract, y se separan las queries que devuelven filas de las escrituras que no devuelven nada. Vienen dos recipes de upgrade con las traducciones mecánicas, una para usuarios y otra para autores de extensiones.

17 Aug 2026
github.com/prisma →
🧩

Frameworks & Libraries

Release

Vitest 5.0.0-rc.2: vuelve el límite global de concurrencia y el browser mode deja de colgarse

Segunda RC, casi toda de fixes — que es exactamente lo que querés ver antes de una major. Se revive el límite global de concurrencia para el ciclo de vida de los tests, el runner se apropia del rerun post-restart manteniendo process.exit deshabilitado en los workers, y se preserva el root correcto al resolver la config. En browser mode hay tres arreglos que importan si tenés CI flaky: falla en vez de colgarse cuando el browser deja de responder, salida elegante si el browser se desconecta durante una cancelación, y GC de Playwright/Chromium cuando queda poco disco. Suma también un título custom para el summary de GitHub Actions.

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

Biome 2.5.9: el parser CSS se recupera de declaraciones rotas

Patch chico pero de calidad de vida. El parser CSS ahora se recupera en los límites de declaración tras una declaración inválida, así que las declaraciones válidas que vienen después sí se parsean — antes una línea rota te tiraba el resto del bloque. Llega también la regla nursery useNamedLayer, que prohíbe las cascade layers anónimas (@layer { ... } sin nombre), el formatter de HTML preserva las líneas en blanco significativas, y biome rage reporta más variables de entorno (BIOME_BINARY, BIOME_LOG_FILE, RUST_BACKTRACE).

17 Aug 2026
github.com/biomejs →
Beta

Effect 4.0.0-rc.110: la cadencia de la major sigue firme

Otra RC del ecosistema Effect, publicada junto a @effect/vitest y los drivers SQL. Si estás evaluando Effect 4 para backend TypeScript, el número de RC te cuenta la historia: 110 candidates y sigue. Ideal para prototipar y aprender la API, arriesgado para comprometer un servicio en producción antes del estable.

17 Aug 2026
github.com/Effect-TS →
🗄️

Databases & Data

GA

DynamoDB suma vector search nativo: se acabó el side-car de base vectorial

AWS suma un tipo de índice nuevo sobre embeddings guardados en atributos de la tabla, con una API SearchVectors para queries de vecinos más cercanos aproximados. Soporta hasta 4.096 dimensiones, distancias euclidiana, coseno y dot product, filtrado inline, y escala horizontalmente sin límite de storage. Está disponible en todas las regiones donde ya corre DynamoDB, con table classes Standard y Standard-IA. Ojo con el billing: son tres dimensiones de cobro adicionales — data escrita al índice, data procesada en las búsquedas y data almacenada, todas medidas por byte y facturadas por gigabyte. Para memoria de agentes, RAG o recomendaciones, esto elimina un componente entero de la arquitectura: la base vectorial separada que había que sincronizar. Y sincronizar dos stores es donde nacen la mitad de los bugs de consistencia.

16 Aug 2026
infoq.com →
☁️

Cloud & DevOps

Destacado

Cloudflare convierte los pipelines de CI en workflows de TypeScript

El paquete @cloudflare/ci (Apache 2.0, sobre el runtime de Workers) deja definir pipelines en TypeScript en lugar de YAML. Cada etapa mapea a un step de Workflow, o sea ejecución con checkpoint: un step que falla reintenta con el estado preservado. Los steps corren concurrentes salvo que declares dependencias — lint, test, typecheck y build se envuelven en Promise.all() antes del deploy. El caching de dependencias usa snapshots del filesystem de Sandbox guardados en R2, y un campo events nuevo en la config de Wrangler dispara Workflows directo desde eventos de version control. Dos advertencias antes de que te entusiasmes: los comandos tienen que ser idempotentes porque los steps son reintentables, y el SDK no redacta secretos de los logs de salida. La integración inicial lee repos desde Cloudflare Artifacts, todavía en private beta.

17 Aug 2026
infoq.com →
GA

Grafana lleva gcx y su MCP server a GA: los agentes ahora leen telemetría real

Dos herramientas en GA: gcx, una CLI flexible para armar workflows propios contra Grafana Cloud o self-hosted, y el Grafana MCP Server, más opinado y disponible self-hosted o con endpoint hosteado. Ambos permiten consultar métricas, logs, traces, SLOs y resultados de Synthetic Monitoring. El problema que atacan es el que más duele con código generado por agentes: la brecha de verificación. La pregunta deja de ser si el agente entendió el ticket y pasa a ser si el sistema corriendo se comporta como esperabas. Incluyen creación de dashboards, generación de scripts k6 de load testing a partir de telemetría de producción, iteración local vía OpenTelemetry Collector y enriquecimiento de PRs con dashboards en vivo. Ahora bien, no te confundas: que el agente pueda leer tus métricas no reemplaza entender qué medís.

17 Aug 2026
infoq.com →
🏗️

Architecture & Best Practices

Destacado

AWS abre Dogwood: políticas de autorización que sí miran el pasado

Pieza de diseño interesante para cualquiera que modele autorización, con o sin agentes. Cedar evalúa cada request aislado: le das el mismo request dos veces y devuelve lo mismo, sin importar qué pasó antes. Dogwood (Apache 2.0) agrega una cláusula when temporal con cuatro operadores — formerly (ventanas de tiempo), count_within (límites de frecuencia), count_distinct_within (valores únicos) y sum_within (totales agregados) — implementados como macros sobre lógica temporal de primer orden métrica, no como primitivas del lenguaje. Con eso podés expresar reglas que antes vivían enterradas en código de aplicación: exigir aprobación antes de una acción, mantener totales corrientes, o prohibir contacto con terceros después de haber tocado datos confidenciales. El precio es alto y está bien declarado: la evaluación temporal necesita tracking de eventos con estado y sacrifica el razonamiento automatizado de Cedar — las políticas con condiciones temporales ya no se pueden analizar formalmente. Además el intérprete de referencia es para explorar y testear, no para autorizar en producción. Las políticas Cedar existentes siguen siendo compatibles.

16 Aug 2026
infoq.com →
Destacado

Grab bajó el trabajo mecánico de analytics del 44% al 30%, y el contexto fue el trabajo pesado

Los titulares se quedan con el número — trabajo analítico rutinario del 44% en febrero al 30% en junio — pero lo que hay que mirar es la infraestructura que lo hizo posible: más de 5.000 tablas y métricas certificadas, 4.000 documentos de contexto y 2.000 golden records a través de su sistema ContextIQ. Los agentes no arreglaron un data warehouse desordenado; el data warehouse ordenado fue el requisito. Grab usa un modelo de cinco niveles de autonomía: en el nivel 3 los agentes descubren data y redactan análisis mientras los humanos formulan la pregunta y revisan el resultado. Su sistema Spartan enruta requests a workflows especializados con más de 50 skills y 120 frameworks de análisis. Los números de self-service de marzo a mayo: métricas del 53% al 67%, data pulls del 63% al 90%, requests de SQL del 50% al 81%. Definición de métricas, interpretación causal y decisión final siguen siendo humanas — y ahí está la lección: la parte que no se automatiza es justo la que exige entender el dominio.

17 Aug 2026
infoq.com →
🔒

Security

Seguridad

deepmerge-ts: un objeto recursivo tumba el proceso, CVSS 8.2

Severidad alta, CVSS 8.2, y un caso de manual de CWE-674 (recursión no controlada). El merge de records está implementado recursivamente sin detección de ciclos: si dos objetos se referencian a sí mismos por el mismo path de propiedades, la recursión no termina y te comés un RangeError: Maximum call stack size exceeded. Afecta a deepmerge(), deepmergeCustom(), deepmergeInto() y deepmergeIntoCustom() — o sea, toda la API pública. Versiones anteriores a 8.0.0; el fix está en 8.0.0. En Node, un atacante que controle el objeto de entrada logra crashes sincrónicos repetidos y reinicios de worker en loop. Si mergeás config o payloads que vienen de afuera, este es tu recordatorio de que parsear no es validar.

16 Aug 2026
github.com/advisories →
🔥

Top Stories

Security

Redis 8.10.1, 8.8.2, 8.6.6 and 8.4.6: nine security fixes, one with potential RCE

Coordinated release across four branches with SECURITY urgency, and the list is ugly. Worst of the batch: a malicious RDB payload with an out-of-range SLOT_INFO slot id corrupts memory during RDB loading and may lead to remote code execution. Next to it, a TLS client certificate authentication bypass — a Common Name containing an embedded NUL byte was truncated, letting a client authenticate as another, possibly privileged, ACL user. That is the classic parsing bug that turns a defense into a door. Also in: CVE-2026-62356 (miscalculated buffer size in CMSketch RDB loading, heap OOB write), out-of-bounds access in the TopK heap cleanup path, a use-after-free in the TLS pending-data list, and three Vector Sets flaws: missing node level validation when loading from RDB, a use-after-free when VREM mutates the HNSW graph while background VSIM threads run, and a negative hnsw_search() return treated as a huge unsigned count. If you load RDBs from untrusted sources or expose TLS with certificate auth, patch now.

17 Aug 2026
github.com/redis →
Security

vm2: CVSS 9.9 sandbox escape to RCE via Error.cause

CVSS 9.9 and a full escape. handleException() does not sanitize the ES2022 Error.cause property: if the embedder exposes a function that throws errors whose .cause references host objects like process, sandboxed code walks away with full host process access — file operations, subprocess execution and network. Affects up to 3.11.5 inclusive, fixed in 3.11.6. And it does not come alone: the same batch adds another critical escape via dangerous host proto mutators, a third where builtin: ['*'] exposes os and dns, plus two DoS issues bypassing bufferAllocLimit. The underlying reminder has not changed: vm2 is not a security boundary. If you must run untrusted code, the answer is process or VM isolation, not an in-process sandbox.

14 Aug 2026
github.com/advisories →
Breaking

better-auth 1.7.0: accounts are now scoped by issuer, and you must backfill before deploying

Breaking changes in the layer you least enjoy breaking: identity. Account.issuer becomes required, and OAuth provider identity now comes from raw verified profiles — OIDC uses sub, plain OAuth uses id, and a provider can declare accountSubject for another immutable field. No more runtime switching between sub and id. Practical fallout: getUserInfo().user no longer carries provider identity, mapProfileToUser cannot return id, and you read the selected identity from accountInfo.account.accountId. SSO account subjects become protocol-defined: OIDC uses the verified sub claim, SAML the signed NameID, and mapping.id is removed from both configurations. Read this twice: the generated schema migration does NOT assign trusted issuers or resolve existing identity collisions — apply the upgrade guide's account-identity backfill before you deploy. Also, experimental.joins moves to advanced.database.joins, MCP ships as its own package (withMcpAuthrequireMcpAuth, with oauthClient, oauthRefreshToken and oauthClientAssertion tables), and OIDC back-channel logout arrives: when a session ends at the OP, every registered Relying Party receives a signed logout+jwt and API access is cut immediately instead of surviving until the access token's own TTL.

18 Aug 2026
github.com/better-auth →
Breaking

Prisma 8.0.0-rc.2: the prisma-next binary is retired and JavaScript numbers return

rc.2 asks for real work: almost every application will need to re-emit its contract and rename its config file. The repository no longer publishes a CLI — nothing ships a prisma-next bin anymore, so install @prisma/cli and replace prisma-next <command> across package scripts and CI. Config moves from prisma-next.config.ts to prisma.config.ts, now engine-shaped with your ORM config nested under an orm section; the old filename and flat shape still load with a deprecation warning on stderr, so the rename and the rewrap can land separately. On the runtime side: default aggregates are plain JavaScript numbers again, with lossless variants beside them, CHECK constraints become a declared part of the contract, and row-returning queries are split from non-returning writes. Two upgrade recipes ship with the mechanical translations — one for users, one for extension authors.

17 Aug 2026
github.com/prisma →
🧩

Frameworks & Libraries

Release

Vitest 5.0.0-rc.2: the global concurrency limit returns and browser mode stops hanging

Second RC, almost entirely fixes — exactly what you want before a major. The global concurrency limit for the test lifecycle is revived, the runner owns the post-restart rerun while keeping process.exit disabled in workers, and the correct root is preserved during config resolution. Browser mode gets three fixes that matter if your CI is flaky: it fails instead of hanging when the browser stops responding, exits gracefully when the browser disconnects mid-cancellation, and triggers Playwright/Chromium GC on low disk availability. A custom GitHub Actions summary title also lands.

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

Biome 2.5.9: the CSS parser recovers from broken declarations

Small but welcome quality-of-life patch. The CSS parser now recovers at declaration boundaries after a bogus declaration, so valid declarations that follow are parsed — previously one broken line took the rest of the block with it. Also landing: the nursery rule useNamedLayer, which disallows anonymous cascade layers (@layer { ... } with no name), the HTML formatter preserving meaningful blank lines, and biome rage reporting more environment variables (BIOME_BINARY, BIOME_LOG_FILE, RUST_BACKTRACE).

17 Aug 2026
github.com/biomejs →
Beta

Effect 4.0.0-rc.110: the major's cadence holds steady

Another RC across the Effect ecosystem, published alongside @effect/vitest and the SQL drivers. If you are evaluating Effect 4 for backend TypeScript, the RC number tells the story: 110 candidates and counting. Great for prototyping and learning the API, risky for committing a production service before the stable release.

17 Aug 2026
github.com/Effect-TS →
🗄️

Databases & Data

GA

DynamoDB adds native vector search: no more vector-database side-car

AWS adds a new index type over embeddings stored in table attributes, with a SearchVectors API for approximate nearest-neighbor queries. It supports up to 4,096 dimensions, Euclidean, cosine and dot-product distances, inline filtering, and scales horizontally with no storage limit. Available in every region where DynamoDB already runs, on Standard and Standard-IA table classes. Watch the billing: there are three extra charge dimensions — data written to the index, data processed during searches, and stored data, all metered per byte and billed per gigabyte. For agentic memory, RAG or recommendation engines, this removes an entire architectural component: the separate vector database you had to keep in sync. And keeping two stores in sync is where half your consistency bugs are born.

16 Aug 2026
infoq.com →
☁️

Cloud & DevOps

Notable

Cloudflare turns CI pipelines into TypeScript workflows

The @cloudflare/ci package (Apache 2.0, on the Workers runtime) lets you define pipelines in TypeScript instead of YAML. Each stage maps to a Workflow step, which means checkpointed execution: a failed step retries with state preserved. Steps run concurrently unless you declare dependencies — lint, test, typecheck and build get wrapped in Promise.all() before deploy. Dependency caching uses Sandbox filesystem snapshots stored in R2 buckets, and a new events field in Wrangler configuration triggers Workflows straight from version-control events. Two warnings before you get excited: commands must be idempotent because Workflow steps are retryable, and the SDK does not redact secrets from output logs. The initial integration reads repositories from Cloudflare Artifacts, still in private beta.

17 Aug 2026
infoq.com →
GA

Grafana takes gcx and its MCP server to GA: agents can now read real telemetry

Two tools reach GA: gcx, a flexible CLI for building your own workflows against Grafana Cloud or self-hosted instances, and the Grafana MCP Server, more opinionated and available self-hosted or through a hosted endpoint. Both let agents query metrics, logs, traces, SLOs and Synthetic Monitoring results. The problem they attack is the sharpest one with agent-generated code: the verification gap. The question stops being whether the agent understood the ticket and becomes whether the running system behaves as expected. Features include dashboard creation, k6 load-test script generation from production telemetry, local iteration via the OpenTelemetry Collector, and pull requests enriched with live dashboards. One caveat: an agent being able to read your metrics does not replace understanding what you measure.

17 Aug 2026
infoq.com →
🏗️

Architecture & Best Practices

Notable

AWS open-sources Dogwood: authorization policies that actually look at the past

An interesting design piece for anyone modeling authorization, agents or not. Cedar evaluates each request in isolation: feed it the same request twice and you get the same answer, regardless of what happened before. Dogwood (Apache 2.0) adds a when temporal clause with four operators — formerly (time-window checks), count_within (frequency limits), count_distinct_within (unique value counts) and sum_within (aggregate totals) — implemented as macros over Metric First-Order Temporal Logic rather than language primitives. That lets you express rules that used to live buried in application code: require approval before an action, maintain running totals, or forbid contact with external parties after handling confidential data. The price is steep and clearly stated: temporal evaluation requires stateful event tracking and sacrifices Cedar's automated reasoning — policies using temporal conditions can no longer be formally analyzed. The reference interpreter is also for exploring and testing, not for running authorization in production. Existing Cedar policies remain fully compatible.

16 Aug 2026
infoq.com →
Notable

Grab cut mechanical analytics work from 44% to 30%, and the context was the heavy lifting

The headline keeps the number — routine analytical work down from 44% in February to 30% in June — but what deserves your attention is the infrastructure that made it possible: more than 5,000 certified tables and metrics, 4,000 context documents and 2,000 golden records through their ContextIQ system. The agents did not fix a messy data warehouse; the tidy data warehouse was the prerequisite. Grab uses a five-level autonomy model: at level 3, agents discover data and draft analyses while humans frame the question and review the result. Their Spartan system routes requests to specialized workflows across more than 50 skills and 120 analysis frameworks. Self-service numbers from March to May: metric requests 53% to 67%, data pulls 63% to 90%, SQL requests 50% to 81%. Metric definitions, causal interpretation and final decisions stay human — and there is the lesson: the part that does not get automated is exactly the part that requires understanding the domain.

17 Aug 2026
infoq.com →
🔒

Security

Security

deepmerge-ts: a recursive object takes down the process, CVSS 8.2

High severity, CVSS 8.2, and a textbook case of CWE-674 (uncontrolled recursion). Record merging is implemented recursively with no cycle detection: if two objects reference themselves through identical property paths, the recursion never terminates and you get a RangeError: Maximum call stack size exceeded. It affects deepmerge(), deepmergeCustom(), deepmergeInto() and deepmergeIntoCustom() — the whole public API. Versions before 8.0.0; fixed in 8.0.0. Under Node, an attacker controlling the input object gets repeated synchronous crashes and looping worker restarts. If you merge config or payloads that come from outside, this is your reminder that parsing is not validating.

16 Aug 2026
github.com/advisories →
🔥

Top Stories

Sécurité

Redis 8.10.1, 8.8.2, 8.6.6 et 8.4.6 : neuf correctifs de sécurité, dont une RCE potentielle

Release coordonnée sur quatre branches avec urgence SECURITY, et la liste fait peur. La pire : un payload RDB malveillant avec un SLOT_INFO hors plage corrompt la mémoire pendant le chargement et peut mener à une exécution de code à distance. Ensuite, un contournement de l'authentification par certificat client TLS — un Common Name contenant un NUL byte était tronqué, permettant de s'authentifier comme un autre utilisateur ACL, potentiellement privilégié. S'ajoutent CVE-2026-62356 (taille de buffer mal calculée au chargement RDB de CMSketch, heap OOB write), un accès hors limites dans le cleanup du heap TopK, un use-after-free dans la liste de pending data TLS, et trois failles Vector Sets. Si vous chargez des RDB non fiables ou exposez TLS avec auth par certificat, patchez maintenant.

17 Aug 2026
github.com/redis →
Sécurité

vm2 : CVSS 9.9, évasion de sandbox vers RCE via Error.cause

CVSS 9.9 et évasion complète. handleException() ne sanitise pas la propriété ES2022 Error.cause : si l'embedder expose une fonction qui lance des erreurs dont .cause référence des objets host comme process, le code sandboxé obtient un accès total au processus host — fichiers, sous-processus et réseau. Affecte jusqu'à 3.11.5 inclus, corrigé en 3.11.6. Et ce n'est pas tout : la même série ajoute une autre évasion critique via des host proto mutators, une troisième où builtin: ['*'] expose os et dns, plus deux DoS contournant bufferAllocLimit. Le rappel de fond ne change pas : vm2 n'est pas une frontière de sécurité.

14 Aug 2026
github.com/advisories →
Breaking

better-auth 1.7.0 : les comptes sont désormais scopés par issuer, avec backfill avant déploiement

Breaking changes dans la couche qu'on aime le moins casser : l'identité. Account.issuer devient obligatoire, et l'identité du provider OAuth provient désormais des profils vérifiés bruts — OIDC utilise sub, OAuth simple utilise id, et un provider peut déclarer accountSubject pour un autre champ immuable. Conséquence pratique : getUserInfo().user ne porte plus l'identité du provider, mapProfileToUser ne peut plus retourner id, et on lit l'identité depuis accountInfo.account.accountId. Les subjects SSO deviennent définis par protocole : sub vérifié pour OIDC, NameID signé pour SAML. Attention : la migration de schéma générée n'assigne pas les issuers de confiance et ne résout pas les collisions d'identité existantes — appliquez le backfill du guide de mise à niveau avant de déployer. Par ailleurs, experimental.joins passe à advanced.database.joins, MCP devient un paquet à part, et le back-channel logout OIDC arrive.

18 Aug 2026
github.com/better-auth →
Breaking

Prisma 8.0.0-rc.2 : le binaire prisma-next disparaît et les nombres JavaScript reviennent

La rc.2 demande du vrai travail : presque toutes les applications devront ré-émettre leur contract et renommer leur fichier de config. Le dépôt ne publie plus de CLI — plus aucun bin prisma-next, il faut installer @prisma/cli et remplacer prisma-next <command> dans les scripts et la CI. La config passe de prisma-next.config.ts à prisma.config.ts, désormais engine-shaped avec la config ORM imbriquée sous une section orm ; l'ancien nom et la forme plate se chargent encore avec un avertissement. Côté runtime : les agrégats par défaut redeviennent des nombres JavaScript, avec des variantes lossless à côté, les contraintes CHECK deviennent une partie déclarée du contract, et les requêtes qui retournent des lignes sont séparées des écritures sans retour.

17 Aug 2026
github.com/prisma →
🧩

Frameworks & Libraries

Release

Vitest 5.0.0-rc.2 : la limite globale de concurrence revient et le browser mode ne se fige plus

Deuxième RC, presque uniquement des correctifs — exactement ce qu'on veut avant une major. La limite globale de concurrence du cycle de vie des tests est rétablie, le runner reprend la main sur le rerun après redémarrage en gardant process.exit désactivé dans les workers, et le root correct est préservé lors de la résolution de config. Le browser mode reçoit trois correctifs utiles si votre CI est flaky : il échoue au lieu de se figer quand le navigateur ne répond plus, sort proprement en cas de déconnexion pendant une annulation, et déclenche le GC Playwright/Chromium quand l'espace disque manque.

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

Biome 2.5.9 : le parser CSS récupère après des déclarations invalides

Petit patch de confort. Le parser CSS récupère désormais aux limites de déclaration après une déclaration invalide, si bien que les déclarations valides suivantes sont analysées — auparavant une ligne cassée emportait le reste du bloc. Arrivent aussi la règle nursery useNamedLayer, qui interdit les cascade layers anonymes, la préservation des lignes vides significatives par le formatter HTML, et plus de variables d'environnement rapportées par biome rage.

17 Aug 2026
github.com/biomejs →
Bêta

Effect 4.0.0-rc.110 : la cadence de la major se maintient

Une nouvelle RC de l'écosystème Effect, publiée avec @effect/vitest et les drivers SQL. Si vous évaluez Effect 4 pour du backend TypeScript, le numéro de RC raconte l'histoire : 110 candidates et ça continue. Parfait pour prototyper et apprendre l'API, risqué pour engager un service en production avant la stable.

17 Aug 2026
github.com/Effect-TS →
🗄️

Databases & Data

GA

DynamoDB ajoute la vector search native : fini le side-car de base vectorielle

AWS ajoute un nouveau type d'index sur les embeddings stockés dans les attributs de table, avec une API SearchVectors pour les requêtes de plus proches voisins approximatifs. Jusqu'à 4 096 dimensions, distances euclidienne, cosinus et produit scalaire, filtrage inline, et scaling horizontal sans limite de stockage. Disponible dans toutes les régions DynamoDB, sur les table classes Standard et Standard-IA. Attention à la facturation : trois dimensions de coût supplémentaires — données écrites dans l'index, données traitées pendant les recherches et données stockées, mesurées par octet et facturées par gigaoctet. Pour la mémoire d'agents, le RAG ou les moteurs de recommandation, cela supprime un composant entier de l'architecture.

16 Aug 2026
infoq.com →
☁️

Cloud & DevOps

Notable

Cloudflare transforme les pipelines CI en workflows TypeScript

Le paquet @cloudflare/ci (Apache 2.0, sur le runtime Workers) permet de définir des pipelines en TypeScript plutôt qu'en YAML. Chaque étape correspond à un step de Workflow, donc une exécution avec checkpoint : un step échoué retente avec l'état préservé. Les steps s'exécutent en parallèle sauf dépendances déclarées via Promise.all(). Le cache de dépendances utilise des snapshots du filesystem Sandbox stockés dans R2, et un nouveau champ events dans la config Wrangler déclenche les Workflows depuis les événements de version control. Deux avertissements : les commandes doivent être idempotentes car les steps sont retentables, et le SDK ne masque pas les secrets dans les logs.

17 Aug 2026
infoq.com →
GA

Grafana passe gcx et son serveur MCP en GA : les agents lisent la télémétrie réelle

Deux outils en GA : gcx, une CLI flexible pour construire ses propres workflows contre Grafana Cloud ou une instance self-hosted, et le Grafana MCP Server, plus opinionné, disponible self-hosted ou via un endpoint hébergé. Les deux permettent d'interroger métriques, logs, traces, SLO et résultats de Synthetic Monitoring. Le problème visé est le plus douloureux avec du code généré par agent : l'écart de vérification. La question n'est plus de savoir si l'agent a compris le ticket, mais si le système en fonctionnement se comporte comme prévu. Au menu : création de dashboards, génération de scripts k6 depuis la télémétrie de production, itération locale via l'OpenTelemetry Collector et enrichissement des PR avec des dashboards en direct.

17 Aug 2026
infoq.com →
🏗️

Architecture & Best Practices

Notable

AWS ouvre Dogwood : des politiques d'autorisation qui regardent le passé

Une pièce de conception intéressante pour quiconque modélise l'autorisation, avec ou sans agents. Cedar évalue chaque requête isolément : la même requête deux fois donne la même réponse, quel que soit le passé. Dogwood (Apache 2.0) ajoute une clause when temporal avec quatre opérateurs — formerly, count_within, count_distinct_within et sum_within — implémentés comme des macros sur la logique temporelle du premier ordre métrique plutôt que comme des primitives du langage. On peut ainsi exprimer des règles jusque-là enfouies dans le code applicatif. Le prix est élevé et clairement annoncé : l'évaluation temporelle exige un suivi d'événements avec état et sacrifie le raisonnement automatisé de Cedar. L'interpréteur de référence sert à explorer et tester, pas à autoriser en production.

16 Aug 2026
infoq.com →
Notable

Grab a réduit le travail analytique mécanique de 44% à 30%, le contexte étant le vrai chantier

Le titre retient le chiffre — travail analytique routinier passé de 44% en février à 30% en juin — mais ce qui compte est l'infrastructure qui l'a rendu possible : plus de 5 000 tables et métriques certifiées, 4 000 documents de contexte et 2 000 golden records via leur système ContextIQ. Les agents n'ont pas réparé un data warehouse en désordre ; le data warehouse ordonné était le prérequis. Grab utilise un modèle d'autonomie à cinq niveaux : au niveau 3, les agents découvrent les données et rédigent des analyses pendant que les humains formulent la question et vérifient le résultat. Définitions de métriques, interprétation causale et décision finale restent humaines.

17 Aug 2026
infoq.com →
🔒

Security

Sécurité

deepmerge-ts : un objet récursif fait tomber le processus, CVSS 8.2

Sévérité haute, CVSS 8.2, cas d'école de CWE-674 (récursion non contrôlée). Le merge de records est implémenté récursivement sans détection de cycles : si deux objets se référencent eux-mêmes par le même chemin de propriétés, la récursion ne se termine jamais et provoque un RangeError: Maximum call stack size exceeded. Toute l'API publique est touchée — deepmerge(), deepmergeCustom(), deepmergeInto() et deepmergeIntoCustom(). Versions antérieures à 8.0.0 ; corrigé en 8.0.0. Sous Node, un attaquant contrôlant l'objet d'entrée obtient des crashes synchrones répétés et des redémarrages de worker en boucle.

16 Aug 2026
github.com/advisories →