<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Devpebe — radar</title><description>Follow radar from Paweł Basiak.</description><link>https://devpebe.com/</link><item><title>Radar — August 2026</title><link>https://devpebe.com/radar/2026-08/</link><guid isPermaLink="true">https://devpebe.com/radar/2026-08/</guid><description>Radar digest for 2026-08 — what changed in the working stack, distilled from release notes.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2026-08-01 → 2026-09-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;astro&quot;&gt;Astro&lt;/h2&gt;
&lt;h3 id=&quot;astro720--aug-6-2026&quot;&gt;&lt;a href=&quot;https://github.com/withastro/astro/releases/tag/astro%407.2.0&quot;&gt;astro@7.2.0&lt;/a&gt; — Aug 6, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Experimental incremental static builds&lt;/strong&gt; (&lt;code&gt;experimental.incrementalBuild&lt;/code&gt;):
pages from &lt;code&gt;getStaticPaths()&lt;/code&gt; that return a &lt;code&gt;cacheKey&lt;/code&gt; are skipped when
neither their modules nor their data changed — persist &lt;code&gt;node_modules/.astro/&lt;/code&gt;
in CI and large static sites stop paying full rebuild cost. Content
collection entries get an optional &lt;code&gt;digest&lt;/code&gt; to use as that key.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;session: false&lt;/code&gt;&lt;/strong&gt; opts out of session support and tree-shakes the session
runtime (and &lt;code&gt;unstorage&lt;/code&gt;) out of the SSR bundle.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;astro preview --background&lt;/code&gt; with &lt;code&gt;status / logs / stop&lt;/code&gt; subcommands —
preview servers get the same background treatment dev servers got in 7.0,
auto-enabled for AI coding agents.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;logger.entrypoint&lt;/code&gt; now accepts project-relative paths (&lt;code&gt;&apos;./src/logger.js&apos;&lt;/code&gt;)
instead of requiring a hand-built &lt;code&gt;URL&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;v2670--aug-5-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.7.0&quot;&gt;v26.7.0&lt;/a&gt; — Aug 5, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Perfetto tracing support&lt;/strong&gt;; private keys loadable through OpenSSL STORE
loaders; &lt;code&gt;Symbol.dispose&lt;/code&gt; implemented in &lt;code&gt;ModuleHooks&lt;/code&gt;; new
&lt;code&gt;--test-coverage-include-all&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2660--aug-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.6.0&quot;&gt;v26.6.0&lt;/a&gt; — Aug 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The test runner gains &lt;code&gt;context.log&lt;/code&gt; and a &lt;code&gt;test:log&lt;/code&gt; event; &lt;code&gt;ffi&lt;/code&gt; gets
&lt;code&gt;getCurrentEventLoop&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v24190--aug-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.19.0&quot;&gt;v24.19.0&lt;/a&gt; — Aug 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;LTS backports: &lt;code&gt;blob.textStream&lt;/code&gt;, &lt;code&gt;--experimental-import-text&lt;/code&gt;,
&lt;code&gt;TCP_KEEPINTVL&lt;/code&gt;/&lt;code&gt;TCP_KEEPCNT&lt;/code&gt;, and the &lt;code&gt;httpValidation&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v3350--aug-17-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.35.0&quot;&gt;v3.35.0&lt;/a&gt; — Aug 17, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New tracked features: &lt;strong&gt;scroll promises&lt;/strong&gt;, text modules, and plural
&lt;code&gt;position-visibility&lt;/code&gt; for anchor positioning.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;anchors-valid&lt;/code&gt; / &lt;code&gt;anchors-visible&lt;/code&gt; were added as a &lt;strong&gt;discouraged&lt;/strong&gt;
feature — don’t build on those.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3343--aug-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.34.3&quot;&gt;v3.34.3&lt;/a&gt; — Aug 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Baseline widely available: &lt;code&gt;Array.fromAsync&lt;/code&gt; and AVIF&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v8011--aug-13-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v8.0.11&quot;&gt;v8.0.11&lt;/a&gt; — Aug 13, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;text-box-trim&lt;/code&gt; on inline elements and top-layer ancestor-matching
boundaries for &lt;code&gt;:hover&lt;/code&gt;/&lt;code&gt;:active&lt;/code&gt;/&lt;code&gt;:focus-within&lt;/code&gt; enter the data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v809--aug-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v8.0.9&quot;&gt;v8.0.9&lt;/a&gt; — Aug 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;code&gt;Navigator.cpuPerformance&lt;/code&gt; and the CSS &lt;code&gt;param()&lt;/code&gt; type;
Edge 154 added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v930--aug-5-2026&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v9.3.0&quot;&gt;v9.3.0&lt;/a&gt; — Aug 5, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Toggle Button Group keyboard navigation switched to the roving tabindex
pattern&lt;/strong&gt; — a behavior change if your tests tab through the group.&lt;/li&gt;
&lt;li&gt;Autocomplete announces loading / no-options through a new &lt;code&gt;status&lt;/code&gt; slot
(aria-live), and menu items get &lt;code&gt;aria-checked&lt;/code&gt; for checkbox/radio roles.&lt;/li&gt;
&lt;li&gt;Grouped buttons, checkboxes, and radios now respect a global &lt;code&gt;disableRipple&lt;/code&gt;
from &lt;code&gt;MuiButtonBase&lt;/code&gt; defaultProps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;react-hook-form&quot;&gt;React Hook Form&lt;/h2&gt;
&lt;h3 id=&quot;v7850--aug-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/react-hook-form/react-hook-form/releases/tag/v7.85.0&quot;&gt;v7.85.0&lt;/a&gt; — Aug 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Support for React’s &lt;code&gt;&amp;#x3C;Activity /&gt;&lt;/code&gt;&lt;/strong&gt; component.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7840--aug-1-2026&quot;&gt;&lt;a href=&quot;https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0&quot;&gt;v7.84.0&lt;/a&gt; — Aug 1, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhanced &lt;code&gt;&amp;#x3C;Form /&gt;&lt;/code&gt; submit behavior; performance improved and bundle size
reduced.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2640--aug-20-2026&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v26.4.0&quot;&gt;v26.4.0&lt;/a&gt; — Aug 20, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;toResolveHierarchy&lt;/code&gt; results cached per &lt;code&gt;(code, fallbackCode)&lt;/code&gt; pair — it
runs on every &lt;code&gt;t&lt;/code&gt; call, so hot paths get cheaper.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;konva&quot;&gt;Konva&lt;/h2&gt;
&lt;h3 id=&quot;1031--aug-15-2026&quot;&gt;&lt;a href=&quot;https://github.com/konvajs/konva/releases/tag/10.3.1&quot;&gt;10.3.1&lt;/a&gt; — Aug 15, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transformer performance improved with many attached nodes; text layout
hot-path optimizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10700--aug-10-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.70.0&quot;&gt;10.70.0&lt;/a&gt; — Aug 10, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stable MCP SDK v2 support&lt;/strong&gt;; &lt;code&gt;@solidjs/router&lt;/code&gt; v1 supported in
Solid/SolidStart.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;videojs&quot;&gt;video.js&lt;/h2&gt;
&lt;h3 id=&quot;v8240--aug-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/videojs/video.js/releases/tag/v8.24.0&quot;&gt;v8.24.0&lt;/a&gt; — Aug 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The poster can mark the player as &lt;code&gt;maincontent&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v21011--aug-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.10.11&quot;&gt;v2.10.11&lt;/a&gt; — Aug 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Native &lt;strong&gt;uv tool tasks are now cached&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v21010--aug-14-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.10.10&quot;&gt;v2.10.10&lt;/a&gt; — Aug 14, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;pytest task discovery&lt;/strong&gt;, cross-toolchain repository affectedness, and
support for &lt;code&gt;nub.lock&lt;/code&gt; files.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-charts&quot;&gt;TanStack Charts&lt;/h2&gt;
&lt;h3 id=&quot;v0130--aug-14-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/charts/releases/tag/v0.13.0&quot;&gt;v0.13.0&lt;/a&gt; — Aug 14, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ShadCN-compatible chart catalog&lt;/strong&gt; with renderer-owned tooltips.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v070--aug-7-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/charts/releases/tag/v0.7.0&quot;&gt;v0.7.0&lt;/a&gt; — Aug 7, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Renderer-native crosshairs, cursor bands, and intersection markers; native
waffle, hexbin, Delaunay link, and Voronoi marks.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): React, TypeScript, JavaScript / TC39,
     Vite (8.2.1 patch), Tailwind CSS, Storybook (10.5.x patches), Zod,
     Jotai, Axios, Lodash, Notistack, Convex, PostHog JS, Playwright,
     Vitest, and TanStack beyond Charts --&gt;</content:encoded></item><item><title>Radar — July 2026</title><link>https://devpebe.com/radar/2026-07/</link><guid isPermaLink="true">https://devpebe.com/radar/2026-07/</guid><description>Radar digest for 2026-07 — what changed in the working stack, distilled from release notes.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2026-07-01 → 2026-08-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;javascript--tc39&quot;&gt;JavaScript / TC39&lt;/h2&gt;
&lt;h3 id=&quot;es2026--jul-2-2026&quot;&gt;&lt;a href=&quot;https://github.com/tc39/ecma262/releases/tag/es2026&quot;&gt;ES2026&lt;/a&gt; — Jul 2, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ECMAScript 2026 finalized&lt;/strong&gt; — approved by TC39 in March 2026 and by
&lt;a href=&quot;https://ecma-international.org/news/ecma-international-approves-new-standards-14/&quot;&gt;Ecma International on June 30th, 2026&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;v2651--jul-29-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.5.1&quot;&gt;v26.5.1&lt;/a&gt; — Jul 29, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security release&lt;/strong&gt; (10 CVEs, two High: HTTP/2 RST-stream deferral,
permission-model radix nodes) — same patches in
&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.18.1&quot;&gt;24.18.1&lt;/a&gt; and
&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.23.2&quot;&gt;22.23.2&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2650--jul-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.5.0&quot;&gt;v26.5.0&lt;/a&gt; — Jul 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;blob.textStream&lt;/code&gt;&lt;/strong&gt; and an exposed &lt;code&gt;ReadableStreamTee&lt;/code&gt;; new
&lt;code&gt;--experimental-import-text&lt;/code&gt; flag; TLS reports negotiated groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v3340--jul-15-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.34.0&quot;&gt;v3.34.0&lt;/a&gt; — Jul 15, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CSS &lt;code&gt;@mixin&lt;/code&gt; gets a feature entry&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Also new: the &lt;strong&gt;&lt;code&gt;switch&lt;/code&gt; control&lt;/strong&gt; for checkboxes and &lt;code&gt;heading-offset&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3342--jul-24-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.34.2&quot;&gt;v3.34.2&lt;/a&gt; — Jul 24, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Baseline newly available: &lt;code&gt;Intl.Locale&lt;/code&gt; info; &lt;code&gt;rect()&lt;/code&gt;/&lt;code&gt;xywh()&lt;/code&gt; basic shapes
reached widely available.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v807--jul-17-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v8.0.7&quot;&gt;v8.0.7&lt;/a&gt; — Jul 17, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;&lt;code&gt;PermissionsPolicy&lt;/code&gt; JS API&lt;/strong&gt;, CSS &lt;code&gt;window-drag&lt;/code&gt;, and import
source-phase (&lt;code&gt;import source&lt;/code&gt;) enter the data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v805--jul-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v8.0.5&quot;&gt;v8.0.5&lt;/a&gt; — Jul 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;HTMLModelElement&lt;/code&gt;&lt;/strong&gt; (the &lt;code&gt;&amp;#x3C;model&gt;&lt;/code&gt; element for 3D content) gets full
compat coverage, plus &lt;code&gt;headingOffset&lt;/code&gt;/&lt;code&gt;headingReset&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v1050--jul-10-2026&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.5.0&quot;&gt;v10.5.0&lt;/a&gt; — Jul 10, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Angular-vite framework&lt;/strong&gt; (preview) for Angular development, docs, and tests.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vitest &lt;code&gt;initialGlobals&lt;/code&gt;&lt;/strong&gt;: run story tests across themes, viewports, and
locales in one pass.&lt;/li&gt;
&lt;li&gt;Experimental AI features: agentic review of visual changesets,
a React docgen service unifying MCP/Docs/Controls metadata, and one-click
Claude / Codex plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1053--jul-20-2026&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.5.3&quot;&gt;v10.5.3&lt;/a&gt; — Jul 20, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Internal TypeScript upgraded to &lt;strong&gt;6.0.3&lt;/strong&gt;, with peer ranges widened for TS 6
in &lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.5.2&quot;&gt;10.5.2&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vite&quot;&gt;Vite&lt;/h2&gt;
&lt;h3 id=&quot;v820--jul-30-2026&quot;&gt;&lt;a href=&quot;https://github.com/vitejs/vite/releases/tag/v8.2.0&quot;&gt;v8.2.0&lt;/a&gt; — Jul 30, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Second 8.x minor; details in the
&lt;a href=&quot;https://github.com/vitejs/vite/blob/v8.2.0/packages/vite/CHANGELOG.md&quot;&gt;changelog&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;react&quot;&gt;React&lt;/h2&gt;
&lt;h3 id=&quot;1928--1919--1908--jul-21-2026&quot;&gt;&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.2.8&quot;&gt;19.2.8 / 19.1.9 / 19.0.8&lt;/a&gt; — Jul 21, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Decoding performance improvements across all three lines
(&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.1.9&quot;&gt;19.1.9&lt;/a&gt;,
&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.0.8&quot;&gt;19.0.8&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v920--jul-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v9.2.0&quot;&gt;v9.2.0&lt;/a&gt; — Jul 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;data-*&lt;/code&gt; attributes supported on &lt;code&gt;slotProps&lt;/code&gt;&lt;/strong&gt; (with an opt-in
&lt;code&gt;DataAttributesOverrides&lt;/code&gt; type augmentation) — cleaner hooks for testing and
analytics without wrapper components.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;react-hook-form&quot;&gt;React Hook Form&lt;/h2&gt;
&lt;h3 id=&quot;v7830--jul-25-2026&quot;&gt;&lt;a href=&quot;https://github.com/react-hook-form/react-hook-form/releases/tag/v7.83.0&quot;&gt;v7.83.0&lt;/a&gt; — Jul 25, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;getEventValue&lt;/code&gt; handles file inputs; TypeScript performance improved with a
hard cap at 10 levels of recursive type depth.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7820--jul-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/react-hook-form/react-hook-form/releases/tag/v7.82.0&quot;&gt;v7.82.0&lt;/a&gt; — Jul 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved dirty-field calculation for larger forms and deeply nested values.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1190--jul-26-2026&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.19.0&quot;&gt;v1.19.0&lt;/a&gt; — Jul 26, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Symbol-keyed config fields survive &lt;code&gt;mergeConfig&lt;/code&gt;; opt-in
&lt;code&gt;AxiosHeaders.parseParameters&lt;/code&gt; for quote-aware RFC-style header parameter
parsing; Cloudflare’s 520 added to HTTP status codes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;posthog-js14080--jul-29-2026&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/posthog-js%401.408.0&quot;&gt;posthog-js@1.408.0&lt;/a&gt; — Jul 29, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Canvas capture in session replay gains &lt;strong&gt;region masking&lt;/strong&gt; via a
&lt;code&gt;maskRegionsFn&lt;/code&gt; — return &lt;code&gt;[]&lt;/code&gt; to record as-is, &lt;code&gt;null&lt;/code&gt; to skip the frame.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10690--jul-29-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.69.0&quot;&gt;10.69.0&lt;/a&gt; — Jul 29, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare Agents instrumentation&lt;/strong&gt; (&lt;code&gt;instrumentAgentWithSentry&lt;/code&gt;, plus
automatic instrumentation) and a Spotlight integration for local dev.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10670--jul-20-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.67.0&quot;&gt;10.67.0&lt;/a&gt; — Jul 20, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SvelteKit 3 support&lt;/strong&gt;; Workers AI bindings and Cloudflare rate limiters
auto-instrumented; mongodb/mongoose move to orchestrion instrumentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10640--jul-7-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.64.0&quot;&gt;10.64.0&lt;/a&gt; — Jul 7, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Sentry’s &lt;strong&gt;minimal OpenTelemetry tracer provider is now the default&lt;/strong&gt;; new
Cloudflare &lt;code&gt;nodejs_compat&lt;/code&gt; entrypoint (AI v7, prismaIntegration).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1620--jul-24-2026&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.62.0&quot;&gt;v1.62.0&lt;/a&gt; — Jul 24, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Passkeys survive storage state&lt;/strong&gt;: a &lt;code&gt;credentials&lt;/code&gt; option persists the
context’s virtual WebAuthn credentials for re-seeding.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;locator.waitForFunction&lt;/code&gt;; a &lt;code&gt;scroll&lt;/code&gt; option to opt out of auto
scroll-into-view; &lt;code&gt;page.evaluate&lt;/code&gt; and &lt;code&gt;addInitScript&lt;/code&gt; accept functions as
arguments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Playwright MCP server and &lt;code&gt;playwright-cli&lt;/code&gt; now ship in the box&lt;/strong&gt;
(&lt;code&gt;npx playwright mcp&lt;/code&gt; / &lt;code&gt;npx playwright cli&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;⚠ Debian 11 support dropped.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v2108--jul-31-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.10.8&quot;&gt;v2.10.8&lt;/a&gt; — Jul 31, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;uv workspaces&lt;/strong&gt;: discovery, native uv tasks, and lockfile-closure
hashing. Android (Termux) supported.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2106--jul-22-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.10.6&quot;&gt;v2.10.6&lt;/a&gt; — Jul 22, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cargo-only repos&lt;/strong&gt; with inferred Cargo workspace tasks and crate-scoped
verification tasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2105--jul-13-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.10.5&quot;&gt;v2.10.5&lt;/a&gt; — Jul 13, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The Remote Cache can serve as an &lt;strong&gt;sccache backend for Cargo tasks&lt;/strong&gt;, with
sccache embedded so nothing needs installing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-charts&quot;&gt;TanStack Charts&lt;/h2&gt;
&lt;h3 id=&quot;v001--jul-31-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/charts/releases/tag/v0.0.1&quot;&gt;v0.0.1&lt;/a&gt; — Jul 31, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New TanStack package&lt;/strong&gt;: &lt;code&gt;@tanstack/charts&lt;/code&gt; publishes its first public
releases — core plus React, Preact, and Vue adapters — reaching
&lt;a href=&quot;https://github.com/TanStack/charts/releases/tag/v0.3.0&quot;&gt;v0.3.0&lt;/a&gt;
(composable axis/grid/tick options) the same day.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): TypeScript,
     Tailwind CSS, Astro, Zod, Jotai, i18next, Konva, Lodash, Notistack,
     Convex, video.js, Vitest, and TanStack beyond Charts (Intent shipped
     version-only releases) --&gt;</content:encoded></item><item><title>Radar — June 2026</title><link>https://devpebe.com/radar/2026-06/</link><guid isPermaLink="true">https://devpebe.com/radar/2026-06/</guid><description>Radar digest for 2026-06 — what changed in the working stack, distilled from release notes.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2026-06-01 → 2026-07-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;astro&quot;&gt;Astro&lt;/h2&gt;
&lt;h3 id=&quot;astro700--jun-22-2026&quot;&gt;&lt;a href=&quot;https://github.com/withastro/astro/releases/tag/astro%407.0.0&quot;&gt;astro@7.0.0&lt;/a&gt; — Jun 22, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Astro 7 is stable&lt;/strong&gt; — the second major this year (v6 was March).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Background dev server support&lt;/strong&gt;: &lt;code&gt;astro dev --background&lt;/code&gt;
plus &lt;code&gt;astro dev stop / status / logs --follow&lt;/code&gt;; background mode turns on
automatically when an AI coding agent is detected.&lt;/li&gt;
&lt;li&gt;The notes point &lt;code&gt;@astrojs/db&lt;/code&gt; users to alternatives — Node’s built-in
&lt;code&gt;node:sqlite&lt;/code&gt;, Drizzle directly, or a hosted database.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vite&quot;&gt;Vite&lt;/h2&gt;
&lt;h3 id=&quot;v810--jun-23-2026&quot;&gt;&lt;a href=&quot;https://github.com/vitejs/vite/releases/tag/v8.1.0&quot;&gt;v8.1.0&lt;/a&gt; — Jun 23, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First 8.x minor; details in the
&lt;a href=&quot;https://github.com/vitejs/vite/blob/v8.1.0/packages/vite/CHANGELOG.md&quot;&gt;changelog&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;v2640--jun-24-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.4.0&quot;&gt;v26.4.0&lt;/a&gt; — Jun 24, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Package maps land in the loader&lt;/strong&gt;, and a minimal &lt;code&gt;node:vfs&lt;/code&gt; subsystem
appears (with &lt;code&gt;node:fs/promises&lt;/code&gt; dispatching to mounted VFS instances).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;setKeepAlive&lt;/code&gt; supports &lt;code&gt;TCP_KEEPINTVL&lt;/code&gt;/&lt;code&gt;TCP_KEEPCNT&lt;/code&gt;; TLS gets a
&lt;code&gt;certificateCompression&lt;/code&gt; option; &lt;code&gt;readFile&lt;/code&gt; accepts caller-supplied
buffers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2631--jun-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.3.1&quot;&gt;v26.3.1&lt;/a&gt; — Jun 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security release&lt;/strong&gt; (10 CVEs, two High: TLS hostname normalization for
server identity checks, WebCrypto cipher output-length guard) — same
patches in &lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.17.0&quot;&gt;24.17.0&lt;/a&gt;
and &lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.23.0&quot;&gt;22.23.0&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2630--jun-1-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.3.0&quot;&gt;v26.3.0&lt;/a&gt; — Jun 1, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;permission.drop&lt;/code&gt;&lt;/strong&gt; to shed permissions at runtime; &lt;code&gt;httpValidation&lt;/code&gt;
option configures header-value validation; &lt;code&gt;Buffer.poolSize&lt;/code&gt; default grows
to 64 KiB.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v3320--jun-25-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.32.0&quot;&gt;v3.32.0&lt;/a&gt; — Jun 25, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;:has()&lt;/code&gt; is now Baseline widely available&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;loading=&quot;lazy&quot;&lt;/code&gt; also reached widely available; &lt;strong&gt;&lt;code&gt;field-sizing&lt;/code&gt;&lt;/strong&gt; became
newly available (auto-growing textareas in CSS).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3310--jun-19-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.31.0&quot;&gt;v3.31.0&lt;/a&gt; — Jun 19, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Widely available now includes &lt;strong&gt;CSS nesting&lt;/strong&gt;, &lt;code&gt;masks&lt;/code&gt;, &lt;code&gt;linear()&lt;/code&gt; easing,
&lt;code&gt;:dir()&lt;/code&gt;, &lt;code&gt;counter-set&lt;/code&gt;, and &lt;code&gt;createImageBitmap&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;New tracked features: &lt;strong&gt;CSS gap decorations&lt;/strong&gt;, anchor-positioning transforms,
service worker static routes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3300--jun-5-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.30.0&quot;&gt;v3.30.0&lt;/a&gt; — Jun 5, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New tracked feature: &lt;strong&gt;variadic &lt;code&gt;color-mix()&lt;/code&gt;&lt;/strong&gt; (more than two colors).&lt;/li&gt;
&lt;li&gt;WebMCP rename: &lt;code&gt;navigator.modelContext&lt;/code&gt; → &lt;code&gt;document.modelContext&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v804--jun-19-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v8.0.4&quot;&gt;v8.0.4&lt;/a&gt; — Jun 19, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;Element.scroll&lt;/code&gt; / &lt;code&gt;scrollBy&lt;/code&gt; / &lt;code&gt;scrollIntoView&lt;/code&gt; / &lt;code&gt;scrollTo&lt;/code&gt; returning
promises&lt;/strong&gt; enters the data, plus &lt;code&gt;MediaCapabilities&lt;/code&gt; key-system
configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v802--jun-5-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v8.0.2&quot;&gt;v8.0.2&lt;/a&gt; — Jun 5, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;code&gt;background: border-area&lt;/code&gt;, column-rule inset properties,
&lt;code&gt;Request.isReloadNavigation&lt;/code&gt;; Edge 152 added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h2&gt;
&lt;h3 id=&quot;v431--jun-12-2026&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.3.1&quot;&gt;v4.3.1&lt;/a&gt; — Jun 12, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cleaner emitted CSS: &lt;code&gt;m-0&lt;/code&gt; now outputs &lt;code&gt;0&lt;/code&gt; and &lt;code&gt;m-1&lt;/code&gt; outputs
&lt;code&gt;var(--spacing)&lt;/code&gt; instead of &lt;code&gt;calc()&lt;/code&gt; wrappers — smaller output, easier
devtools reading.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v910--jun-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v9.1.0&quot;&gt;v9.1.0&lt;/a&gt; — Jun 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;prefers-reduced-motion&lt;/code&gt; support&lt;/strong&gt; for the OS motion setting.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;enhanceHighContrast&lt;/code&gt; theme wrapper for Windows High Contrast mode.&lt;/li&gt;
&lt;li&gt;Select: spacebar selection and &lt;strong&gt;typeahead while closed&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1170--jun-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.17.0&quot;&gt;v1.17.0&lt;/a&gt; — Jun 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The Node adapter supports &lt;strong&gt;zstd response decompression&lt;/strong&gt;, with
&lt;code&gt;transitional.advertiseZstdAcceptEncoding&lt;/code&gt; controlling the &lt;code&gt;Accept-Encoding&lt;/code&gt;
header.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;posthog-js13920--jun-22-2026&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/posthog-js%401.392.0&quot;&gt;posthog-js@1.392.0&lt;/a&gt; — Jun 22, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bundled OpenTelemetry dependencies removed — the lazily-loaded logs chunk
shrinks; auto-captured console logs now run through &lt;code&gt;logs.beforeSend&lt;/code&gt; for
redaction.&lt;/li&gt;
&lt;li&gt;⚠ Log record attributes renamed: &lt;code&gt;distinct_id&lt;/code&gt; → &lt;code&gt;posthogDistinctId&lt;/code&gt;,
&lt;code&gt;location.href&lt;/code&gt; → &lt;code&gt;url.full&lt;/code&gt;, &lt;code&gt;session.id&lt;/code&gt; → &lt;code&gt;sessionId&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;posthog-js13820--jun-6-2026&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/posthog-js%401.382.0&quot;&gt;posthog-js@1.382.0&lt;/a&gt; — Jun 6, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Rage-click detection ignores text-editing surfaces (double/triple-click
selection) and &lt;code&gt;+&lt;/code&gt;/&lt;code&gt;-&lt;/code&gt; stepper buttons.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10610--jun-25-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.61.0&quot;&gt;10.61.0&lt;/a&gt; — Jun 25, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;streamGenAiSpans&lt;/code&gt; on by default; top-level &lt;strong&gt;&lt;code&gt;Sentry.setAttribute(s)&lt;/code&gt;&lt;/strong&gt;
APIs; Cloudflare D1 &lt;code&gt;batch&lt;/code&gt;/&lt;code&gt;exec&lt;/code&gt;/&lt;code&gt;withSession&lt;/code&gt; and durable-object SQLite
instrumented.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10590--jun-19-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.59.0&quot;&gt;10.59.0&lt;/a&gt; — Jun 19, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;React Router v8 support&lt;/strong&gt; plus version-agnostic React Router SPA exports;
AWS SDK clients ≥ 3.1046.0 instrumented.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10570--jun-9-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.57.0&quot;&gt;10.57.0&lt;/a&gt; — Jun 9, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;sendDefaultPii&lt;/code&gt; is deprecated in favor of &lt;code&gt;dataCollection&lt;/code&gt;&lt;/strong&gt; — and
&lt;code&gt;dataCollection.userInfo&lt;/code&gt; now defaults to &lt;code&gt;true&lt;/code&gt;; check what you send.&lt;/li&gt;
&lt;li&gt;Angular 22 support; Cloudflare D1 auto-instrumented from env.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1610--jun-15-2026&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.61.0&quot;&gt;v1.61.0&lt;/a&gt; — Jun 15, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;expect.soft.poll(...)&lt;/code&gt;&lt;/strong&gt; is supported; &lt;code&gt;video&lt;/code&gt; gains the same retry-aware
modes as &lt;code&gt;trace&lt;/code&gt; (&lt;code&gt;on-all-retries&lt;/code&gt;, &lt;code&gt;retain-on-failure-…&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fullConfig.argv&lt;/code&gt; snapshots runner args; &lt;code&gt;-G&lt;/code&gt; shorthand for
&lt;code&gt;--grep-invert&lt;/code&gt;; &lt;code&gt;AggregateError&lt;/code&gt; sub-errors listed separately in
&lt;code&gt;testInfo.errors&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v2101--jun-29-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.10.1&quot;&gt;v2.10.1&lt;/a&gt; — Jun 29, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;TUI virtual terminals migrate from vt100 to &lt;strong&gt;Ghostty&lt;/strong&gt;;
&lt;code&gt;devEngines.packageManager&lt;/code&gt; supported (workspaces included).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2917--jun-9-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.9.17&quot;&gt;v2.9.17&lt;/a&gt; — Jun 9, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JIT task input hashing.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-intent&quot;&gt;TanStack Intent&lt;/h2&gt;
&lt;h3 id=&quot;v030--jun-21-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/intent/releases/tag/v0.3.0&quot;&gt;v0.3.0&lt;/a&gt; — Jun 21, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The new skills-for-AI-agents CLI grows &lt;code&gt;intent hooks install&lt;/code&gt; for supported
coding agents; &lt;code&gt;intent validate --check/--fix&lt;/code&gt; arrived in
&lt;a href=&quot;https://github.com/TanStack/intent/releases/tag/v0.2.0&quot;&gt;v0.2.0&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v010--jun-14-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/intent/releases/tag/v0.1.0&quot;&gt;v0.1.0&lt;/a&gt; — Jun 14, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First 0.x with a public shape: &lt;code&gt;package.json#intent.skills&lt;/code&gt; source
allowlisting and a persistent &lt;code&gt;intent exclude&lt;/code&gt; command.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): React, TypeScript, JavaScript / TC39,
     Storybook, React Hook Form, Zod, Jotai, i18next, Konva, Lodash,
     Notistack, Convex, video.js, Vitest (a v3 backport only), and TanStack
     beyond Intent --&gt;</content:encoded></item><item><title>Radar — May 2026</title><link>https://devpebe.com/radar/2026-05/</link><guid isPermaLink="true">https://devpebe.com/radar/2026-05/</guid><description>Radar digest for 2026-05 — what changed in the working stack, distilled from release notes.</description><pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2026-05-01 → 2026-06-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h2&gt;
&lt;h3 id=&quot;v430--may-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.3.0&quot;&gt;v4.3.0&lt;/a&gt; — May 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New scrollbar utilities&lt;/strong&gt;:
&lt;code&gt;scrollbar-{auto,thin,none}&lt;/code&gt;, &lt;code&gt;scrollbar-thumb-*&lt;/code&gt; / &lt;code&gt;scrollbar-track-*&lt;/code&gt;
colors, and &lt;code&gt;scrollbar-gutter-*&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;@container-size&lt;/code&gt; utility, plus &lt;code&gt;zoom-*&lt;/code&gt; and &lt;code&gt;tab-*&lt;/code&gt; utilities.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@variant&lt;/code&gt; now supports &lt;strong&gt;stacked&lt;/strong&gt; (&lt;code&gt;@variant hover:focus&lt;/code&gt;) and &lt;strong&gt;compound&lt;/strong&gt;
(&lt;code&gt;@variant hover, focus&lt;/code&gt;) variants for custom CSS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;v2600--may-5-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.0.0&quot;&gt;v26.0.0&lt;/a&gt; — May 5, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Node 26 is out.&lt;/strong&gt; New language features via V8: &lt;code&gt;Map&lt;/code&gt;/&lt;code&gt;WeakMap&lt;/code&gt;
&lt;code&gt;getOrInsert&lt;/code&gt; / &lt;code&gt;getOrInsertComputed&lt;/code&gt; (upsert proposal) and
&lt;code&gt;Iterator.concat&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;⚠ End-of-life for legacy &lt;code&gt;_stream_*&lt;/code&gt; modules and &lt;code&gt;http.writeHeader&lt;/code&gt;;
&lt;code&gt;module.register&lt;/code&gt; runtime-deprecated;
&lt;code&gt;--experimental-transform-types&lt;/code&gt; removed.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assert&lt;/code&gt; accepts printf-style messages in assertion errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2620--may-20-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.2.0&quot;&gt;v26.2.0&lt;/a&gt; — May 20, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;Temporal.Instant&lt;/code&gt; support in &lt;code&gt;fs.Stats&lt;/code&gt;&lt;/strong&gt;; &lt;code&gt;http.writeInformation&lt;/code&gt; sends
arbitrary 1xx status codes; &lt;code&gt;stream.compose&lt;/code&gt; marked stable.&lt;/li&gt;
&lt;li&gt;Web Cryptography wires ML-DSA, ML-KEM, ChaCha20-Poly1305, and AES-KW when
built against BoringSSL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2610--may-7-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v26.1.0&quot;&gt;v26.1.0&lt;/a&gt; — May 7, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;crypto.randomUUIDv7&lt;/code&gt;&lt;/strong&gt;; &lt;code&gt;req.signal&lt;/code&gt; on &lt;code&gt;IncomingMessage&lt;/code&gt;; a &lt;code&gt;signal&lt;/code&gt;
option for &lt;code&gt;fs.stat&lt;/code&gt;; &lt;code&gt;process&lt;/code&gt; throws on &lt;code&gt;execve(2)&lt;/code&gt; failure instead of
aborting.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v24160--may-21-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.16.0&quot;&gt;v24.16.0&lt;/a&gt; — May 21, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;LTS backports: &lt;code&gt;randomUUIDv7&lt;/code&gt;, test-order randomization in the test runner,
and edit-free runtime expression probes in &lt;code&gt;node inspect&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v3290--may-22-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.29.0&quot;&gt;v3.29.0&lt;/a&gt; — May 22, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;container-style-queries&lt;/code&gt; is Baseline newly available&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Baseline widely available: &lt;code&gt;lh&lt;/code&gt; / &lt;code&gt;rlh&lt;/code&gt; units, &lt;code&gt;user-activation&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3280--may-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.28.0&quot;&gt;v3.28.0&lt;/a&gt; — May 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Newly available: &lt;code&gt;::open&lt;/code&gt; pseudo-class, &lt;code&gt;baseline-shift&lt;/code&gt;, &lt;code&gt;ToggleEvent.source&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;New tracked feature: &lt;strong&gt;&lt;code&gt;text-fit&lt;/code&gt;&lt;/strong&gt; (auto-fitting text to its container).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3270--may-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.27.0&quot;&gt;v3.27.0&lt;/a&gt; — May 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Newly available: &lt;code&gt;crisp-edges&lt;/code&gt;, shared workers (+ JS modules in shared
workers), &lt;code&gt;text-decoration-skip-ink: all&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The Reporting API was split into per-report-type features (CSP violations,
crashes, deprecations, …) — Baseline answers get more precise.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3260--may-1-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.26.0&quot;&gt;v3.26.0&lt;/a&gt; — May 1, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;contrast-color()&lt;/code&gt; is Baseline newly available&lt;/strong&gt; — pick a readable
foreground in CSS without hand-rolled luminance math.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v800--may-22-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v8.0.0&quot;&gt;v8.0.0&lt;/a&gt; — May 22, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;browser-compat-data v8&lt;/strong&gt; — a new major of the dataset (19,752 features
tracked).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7316--may-15-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.3.16&quot;&gt;v7.3.16&lt;/a&gt; — May 15, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;WebAuthn &lt;code&gt;getPublicKey&lt;/code&gt; algorithm support (EdDSA / ES256 / RS256),
WebAssembly &lt;code&gt;mutable-globals&lt;/code&gt;, and CSS &lt;code&gt;url()&lt;/code&gt; &lt;code&gt;integrity&lt;/code&gt; enter the data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v1040--may-14-2026&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.4.0&quot;&gt;v10.4.0&lt;/a&gt; — May 14, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Change review&lt;/strong&gt;: sidebar filtering that highlights new, modified, and
related stories based on git changes.&lt;/li&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;@storybook/tanstack-react&lt;/code&gt; framework&lt;/strong&gt; with routing and server
function support; zero-config React Native init.&lt;/li&gt;
&lt;li&gt;Agentic Setup (AI-assisted onboarding CLI) and one-click local Storybook
sharing via Chromatic.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;react&quot;&gt;React&lt;/h2&gt;
&lt;h3 id=&quot;1926--1917--1906--may-6-2026&quot;&gt;&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.2.6&quot;&gt;19.2.6 / 19.1.7 / 19.0.6&lt;/a&gt; — May 6, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Type hardening and performance improvements across all three lines
(&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.1.7&quot;&gt;19.1.7&lt;/a&gt;,
&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.0.6&quot;&gt;19.0.6&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v901--may-7-2026&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v9.0.1&quot;&gt;v9.0.1&lt;/a&gt; — May 7, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First v9 patch, heavy on accessibility: high-contrast mode support for
Avatar/Badge/Slider/Switch, &lt;code&gt;aria-checked=&quot;mixed&quot;&lt;/code&gt; for indeterminate
checkboxes, progress component a11y improvements.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;zod&quot;&gt;Zod&lt;/h2&gt;
&lt;h3 id=&quot;v442--may-1-2026&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v4.4.2&quot;&gt;v4.4.2&lt;/a&gt; — May 1, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Discriminated-union option typing tightened; &lt;code&gt;z.preprocess&lt;/code&gt; defers
optionality to the inner schema.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1160--may-2-2026&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.16.0&quot;&gt;v1.16.0&lt;/a&gt; — May 2, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;The fetch adapter now enforces &lt;code&gt;maxBodyLength&lt;/code&gt; / &lt;code&gt;maxContentLength&lt;/code&gt;&lt;/strong&gt;
(silently ignored before); proxy requests preserve user-supplied &lt;code&gt;Host&lt;/code&gt;
headers; percent-encoded basic-auth credentials in URLs are now decoded.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QUERY HTTP method support&lt;/strong&gt; across adapters and types.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ECONNREFUSED&lt;/code&gt; exposed as a constant on &lt;code&gt;AxiosError&lt;/code&gt;; the internal &lt;code&gt;encode&lt;/code&gt;
helper is exported for userland param serializers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0320--may-4-2026&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v0.32.0&quot;&gt;v0.32.0&lt;/a&gt; — May 4, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The 0.x line hardens &lt;code&gt;mergeConfig&lt;/code&gt; and header merging with null-prototype
objects to block prototype-pollution gadgets.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2630--may-26-2026&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v26.3.0&quot;&gt;v26.3.0&lt;/a&gt; — May 26, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;ResourceNamespaceMap&lt;/code&gt; — a mergeable augmentation surface for namespace
resource types, built for monorepos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2610--may-11-2026&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v26.1.0&quot;&gt;v26.1.0&lt;/a&gt; — May 11, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;enableSelector: &apos;strict&apos;&lt;/code&gt; drops the flattened-primary key form at the type
level; a &lt;code&gt;parseInterpolation&lt;/code&gt; TypeOption landed in
&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v26.2.0&quot;&gt;v26.2.0&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10550--may-28-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.55.0&quot;&gt;10.55.0&lt;/a&gt; — May 28, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;@sentry/hono&lt;/code&gt; is stable&lt;/strong&gt; (&lt;code&gt;honoIntegration&lt;/code&gt; deprecated).&lt;/li&gt;
&lt;li&gt;TanStack Start: distributed tracing, server-side route parametrization,
readable server-function names in traces, component tracking.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10540--may-26-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.54.0&quot;&gt;10.54.0&lt;/a&gt; — May 26, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Array attributes for spans/logs/metrics; new
&lt;code&gt;fetchStreamPerformanceIntegration&lt;/code&gt; tracks streamed responses; new
&lt;code&gt;dataCollection&lt;/code&gt; client option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10530--may-12-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.53.0&quot;&gt;10.53.0&lt;/a&gt; — May 12, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Node 26 support&lt;/strong&gt;; core exports split by browser/server for smaller
bundles; &lt;code&gt;addConsoleInstrumentationFilter&lt;/code&gt; utility.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1600--may-11-2026&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.60.0&quot;&gt;v1.60.0&lt;/a&gt; — May 11, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;toMatchAriaSnapshot&lt;/code&gt; works on a whole Page; a &lt;code&gt;boxes&lt;/code&gt; option appends
bounding boxes to aria snapshots (aimed at AI consumption).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getByRole&lt;/code&gt; gains a &lt;code&gt;description&lt;/code&gt; option; &lt;code&gt;toHaveCSS&lt;/code&gt; reads
&lt;code&gt;::before&lt;/code&gt;/&lt;code&gt;::after&lt;/code&gt; via the new &lt;code&gt;pseudo&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BrowserContext&lt;/code&gt; mirrors page lifecycle events (&lt;code&gt;download&lt;/code&gt;,
&lt;code&gt;frameattached&lt;/code&gt;, …); &lt;code&gt;connectOverCDP&lt;/code&gt; gets &lt;code&gt;noDefaults&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v2914--may-14-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.9.14&quot;&gt;v2.9.14&lt;/a&gt; — May 14, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security release&lt;/strong&gt; — three advisories: VSCode-extension command
injection, login-callback CSRF/session fixation, and local code execution
during Yarn Berry detection.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v297--may-1-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.9.7&quot;&gt;v2.9.7&lt;/a&gt; — May 1, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Graceful shutdown; Vercel auth moves to standard OAuth/device flows.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): TypeScript, JavaScript / TC39, Vite
     (8.0.x patches), Astro, React Hook Form, Jotai (internal changes only),
     Konva, Lodash, Notistack, Convex, PostHog JS, video.js, Vitest (patches
     only), and TanStack (Intent/Redact pre-1.0 churn) --&gt;</content:encoded></item><item><title>Radar — April 2026</title><link>https://devpebe.com/radar/2026-04/</link><guid isPermaLink="true">https://devpebe.com/radar/2026-04/</guid><description>Radar digest for 2026-04 — what changed in the working stack, distilled from release notes.</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2026-04-01 → 2026-05-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v900--apr-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v9.0.0&quot;&gt;v9.0.0&lt;/a&gt; — Apr 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Material UI v9 is stable.&lt;/strong&gt; Among the changes called out in the release:
Slider moves from mouse events to &lt;strong&gt;pointer events&lt;/strong&gt;, transition performance
improvements, and a Switch border for high-contrast mode. Check the upgrade
guide before bumping (the v7→v9 jump also removes &lt;code&gt;Grid&lt;/code&gt; &lt;code&gt;direction=&quot;column&quot;&lt;/code&gt;,
per the docs notes shipped alongside).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;react&quot;&gt;React&lt;/h2&gt;
&lt;h3 id=&quot;1925--1916--1905--apr-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.2.5&quot;&gt;19.2.5 / 19.1.6 / 19.0.5&lt;/a&gt; — Apr 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security-hardening patches on all three lines&lt;/strong&gt; — “more cycle
protections” (&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.1.6&quot;&gt;19.1.6&lt;/a&gt;,
&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.0.5&quot;&gt;19.0.5&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;typescript&quot;&gt;TypeScript&lt;/h2&gt;
&lt;h3 id=&quot;v603--apr-16-2026&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/TypeScript/releases/tag/v6.0.3&quot;&gt;v6.0.3&lt;/a&gt; — Apr 16, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;First patch on the 6.0 line.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;v24150--apr-16-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.15.0&quot;&gt;v24.15.0&lt;/a&gt; — Apr 16, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;LTS catches up: &lt;strong&gt;&lt;code&gt;require(esm)&lt;/code&gt; and the module compile cache are stable&lt;/strong&gt;,
&lt;code&gt;--max-heap-size&lt;/code&gt;, raw key formats in the KeyObject APIs, and a
&lt;code&gt;throwIfNoEntry&lt;/code&gt; option for &lt;code&gt;fs.stat&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2590--apr-1-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.9.0&quot;&gt;v25.9.0&lt;/a&gt; — Apr 1, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;AsyncLocalStorage&lt;/code&gt; gets &lt;code&gt;using&lt;/code&gt; scopes&lt;/strong&gt; (explicit resource management).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TurboSHAKE&lt;/code&gt; and &lt;code&gt;KangarooTwelve&lt;/code&gt; land in Web Cryptography; SEA supports a
code cache for ESM entrypoints; experimental &lt;code&gt;stream/iter&lt;/code&gt; implementation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v3250--apr-28-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.25.0&quot;&gt;v3.25.0&lt;/a&gt; — Apr 28, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;overscroll-behavior&lt;/code&gt; regressed from Baseline widely available to
limited&lt;/strong&gt; — new inconsistencies between browsers. If you rely on it for
scroll chaining, test again.&lt;/li&gt;
&lt;li&gt;New tracked features: &lt;code&gt;light-dark()&lt;/code&gt; for images, &lt;strong&gt;HTML-in-canvas&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3240--apr-21-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.24.0&quot;&gt;v3.24.0&lt;/a&gt; — Apr 21, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;integrity group&lt;/strong&gt;: subresource integrity plus new CSS &lt;code&gt;url()&lt;/code&gt; modifier
features (&lt;code&gt;url-integrity&lt;/code&gt;, &lt;code&gt;url-cross-origin&lt;/code&gt;, &lt;code&gt;url-referrer-policy&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Baseline newly available: the custom highlight API (&lt;code&gt;highlight&lt;/code&gt;),
&lt;code&gt;Math.sumPrecise&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3231--apr-14-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.23.1&quot;&gt;v3.23.1&lt;/a&gt; — Apr 14, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;XSLT regressed from Baseline widely available to limited availability —
Chrome is withdrawing support.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3230--apr-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.23.0&quot;&gt;v3.23.0&lt;/a&gt; — Apr 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New tracked features: &lt;strong&gt;&lt;code&gt;border-shape&lt;/code&gt;&lt;/strong&gt;, &lt;code&gt;dynamic-range-limit&lt;/code&gt;, the Prompt
API (&lt;code&gt;languagemodel&lt;/code&gt;), and groups for Fetch, HTTP, image formats, and MathML.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;clear-site-data&lt;/code&gt; regressed to limited availability due to previously
untracked browser bugs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v7313--apr-24-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.3.13&quot;&gt;v7.3.13&lt;/a&gt; — Apr 24, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;&lt;code&gt;LanguageModel&lt;/code&gt; API&lt;/strong&gt; (Prompt API) enters the data, alongside new
generic font families (&lt;code&gt;fangsong&lt;/code&gt;, &lt;code&gt;kai&lt;/code&gt;, &lt;code&gt;khmer-mul&lt;/code&gt;, &lt;code&gt;nastaliq&lt;/code&gt;) and
&lt;code&gt;all: revert-rule&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7310--apr-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.3.10&quot;&gt;v7.3.10&lt;/a&gt; — Apr 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Local-network access permissions (&lt;code&gt;local-network&lt;/code&gt;, &lt;code&gt;loopback-network&lt;/code&gt;),
&lt;code&gt;attachShadow&lt;/code&gt; &lt;code&gt;referenceTarget&lt;/code&gt;, and fetch’s &lt;code&gt;targetAddressSpace&lt;/code&gt; tracked;
Safari 26.5 added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;zod&quot;&gt;Zod&lt;/h2&gt;
&lt;h3 id=&quot;v440--apr-29-2026&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v4.4.0&quot;&gt;v4.4.0&lt;/a&gt; — Apr 29, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;z.cuid&lt;/code&gt; validation tightened and CUID v1 deprecated&lt;/strong&gt;; &lt;code&gt;z.httpUrl&lt;/code&gt; now
rejects malformed URLs missing the slash after the protocol.&lt;/li&gt;
&lt;li&gt;Key-refinement failures surface as structured &lt;code&gt;invalid_key&lt;/code&gt; issues; the
v3-style single-argument &lt;code&gt;z.record(valueType)&lt;/code&gt; works again.&lt;/li&gt;
&lt;li&gt;Global configuration is shared through &lt;code&gt;globalThis&lt;/code&gt; — fixes mixed CJS/ESM
module instances.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1152--apr-21-2026&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.15.2&quot;&gt;v1.15.2&lt;/a&gt; — Apr 21, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;allowedSocketPaths&lt;/code&gt; config option allowlists Unix domain socket paths
in the Node adapter.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1150--apr-7-2026&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.15.0&quot;&gt;v1.15.0&lt;/a&gt; — Apr 7, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Legacy &lt;code&gt;url.parse&lt;/code&gt; usage replaced (silences Node deprecation warnings);
compatibility checks and docs for Deno and Bun.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2606--apr-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v26.0.6&quot;&gt;v26.0.6&lt;/a&gt; — Apr 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security hardening&lt;/strong&gt;: warnings for &lt;code&gt;escapeValue: false&lt;/code&gt; combined with
interpolated variables in &lt;code&gt;$t()&lt;/code&gt; nesting, ReDoS prevention in interpolation
delimiters, and control characters stripped from log arguments to prevent
log forging.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;konva&quot;&gt;Konva&lt;/h2&gt;
&lt;h3 id=&quot;v1030--apr-30-2026&quot;&gt;&lt;a href=&quot;https://github.com/konvajs/konva/releases/tag/v10.3.0&quot;&gt;v10.3.0&lt;/a&gt; — Apr 30, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;TextPath&lt;/code&gt; gets a &lt;code&gt;direction&lt;/code&gt; property for better RTL support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10510--apr-29-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.51.0&quot;&gt;10.51.0&lt;/a&gt; — Apr 29, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;@sentry/nitro&lt;/code&gt;&lt;/strong&gt; SDK; Cloudflare RPC calls get trace propagation.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;@sentry/hono/node&lt;/code&gt; setup changed — &lt;code&gt;init&lt;/code&gt; moves to an external file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10490--apr-16-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.49.0&quot;&gt;10.49.0&lt;/a&gt; — Apr 16, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;View Hierarchy integration&lt;/strong&gt; in the browser SDK; Cloudflare alarms split
into linked traces; V8 v14 (Node 25+) support in node-native.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10480--apr-9-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.48.0&quot;&gt;10.48.0&lt;/a&gt; — Apr 9, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Lambda extension ships inside the npm package for container-image Lambdas;
portable Express integration; MCP integration supports
&lt;code&gt;registerTool&lt;/code&gt;/&lt;code&gt;registerResource&lt;/code&gt;/&lt;code&gt;registerPrompt&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1590--apr-1-2026&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.59.0&quot;&gt;v1.59.0&lt;/a&gt; — Apr 1, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Screencast recordings with action annotations and visual overlays&lt;/strong&gt;
for background browser sessions.&lt;/li&gt;
&lt;li&gt;A dashboard for background browser sessions: watch agents live, intervene
manually, open DevTools; &lt;code&gt;PLAYWRIGHT_DASHBOARD=1&lt;/code&gt; shows all
&lt;code&gt;@playwright/test&lt;/code&gt; browsers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v414--apr-9-2026&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v4.1.4&quot;&gt;v4.1.4&lt;/a&gt; — Apr 9, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Aria snapshot support&lt;/strong&gt;; the text reporter defaults to &lt;code&gt;skipFull&lt;/code&gt; when a
coding agent is detected; json reporter gets &lt;code&gt;filterMeta&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v413--apr-7-2026&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v4.1.3&quot;&gt;v4.1.3&lt;/a&gt; — Apr 7, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Custom snapshot matchers, &lt;code&gt;browser.locators.exact&lt;/code&gt;, and an
&lt;code&gt;experimental.preParse&lt;/code&gt; flag.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v295--apr-7-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.9.5&quot;&gt;v2.9.5&lt;/a&gt; — Apr 7, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Circular package dependency detection in &lt;code&gt;boundaries&lt;/code&gt;; remote-cache upload
chunks grow from 8KB to 256KB.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v294--apr-5-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.9.4&quot;&gt;v2.9.4&lt;/a&gt; — Apr 5, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Incremental task caching&lt;/strong&gt;; &lt;code&gt;--affected&lt;/code&gt; and &lt;code&gt;--filter&lt;/code&gt; can now be
combined.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): Vite (8.0.x patches), Tailwind CSS,
     Astro, Storybook, JavaScript / TC39, React Hook Form, Jotai, Lodash,
     Notistack, Convex, PostHog JS, video.js, and TanStack (Intent shipped
     version-only releases) --&gt;</content:encoded></item><item><title>Radar — March 2026</title><link>https://devpebe.com/radar/2026-03/</link><guid isPermaLink="true">https://devpebe.com/radar/2026-03/</guid><description>Radar digest for 2026-03 — what changed in the working stack, distilled from release notes.</description><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2026-03-01 → 2026-04-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vite 8, TypeScript 6.0, and Astro 6 went stable&lt;/strong&gt; within two weeks of each other.&lt;/p&gt;
&lt;h2 id=&quot;vite&quot;&gt;Vite&lt;/h2&gt;
&lt;h3 id=&quot;v800--mar-12-2026&quot;&gt;&lt;a href=&quot;https://github.com/vitejs/vite/releases/tag/v8.0.0&quot;&gt;v8.0.0&lt;/a&gt; — Mar 12, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Vite 8 is stable&lt;/strong&gt; — a new major. The GitHub release defers to the
&lt;a href=&quot;https://github.com/vitejs/vite/blob/v8.0.0/packages/vite/CHANGELOG.md&quot;&gt;changelog&lt;/a&gt;
for details; plan the upgrade rather than auto-bumping.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;typescript&quot;&gt;TypeScript&lt;/h2&gt;
&lt;h3 id=&quot;v602--mar-23-2026&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/TypeScript/releases/tag/v6.0.2&quot;&gt;v6.0.2&lt;/a&gt; — Mar 23, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;TypeScript 6.0 became stable&lt;/strong&gt; (v6.0.2 is the first stable tag). The
release points to the announcement post on the TypeScript blog for the full
notes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;v2582--mar-24-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.8.2&quot;&gt;v25.8.2&lt;/a&gt; — Mar 24, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security release across all lines&lt;/strong&gt; (9 CVEs, two rated High: SNICallback
error handling, null-prototype &lt;code&gt;headersDistinct&lt;/code&gt;/&lt;code&gt;trailersDistinct&lt;/code&gt;) — also
shipped as &lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.14.1&quot;&gt;24.14.1&lt;/a&gt;,
&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.22.2&quot;&gt;22.22.2&lt;/a&gt;, and
&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v20.20.2&quot;&gt;20.20.2&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2580--mar-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.8.0&quot;&gt;v25.8.0&lt;/a&gt; — Mar 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;--permission-audit&lt;/code&gt;&lt;/strong&gt; flag; SQLite &lt;code&gt;DatabaseSync&lt;/code&gt; gets a &lt;code&gt;limits&lt;/code&gt;
property; the test runner exposes a worker ID for concurrent runs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;astro&quot;&gt;Astro&lt;/h2&gt;
&lt;h3 id=&quot;astro600--mar-10-2026&quot;&gt;&lt;a href=&quot;https://github.com/withastro/astro/releases/tag/astro%406.0.0&quot;&gt;astro@6.0.0&lt;/a&gt; — Mar 10, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Astro 6 is stable.&lt;/strong&gt; From the notes: a reworked adapter entrypoint
contract (&lt;code&gt;entryType: &apos;self&apos; | &apos;legacy-dynamic&apos;&lt;/code&gt;), a new
&lt;code&gt;prerenderConflictBehavior&lt;/code&gt; option (&lt;code&gt;warn&lt;/code&gt; by default, &lt;code&gt;error&lt;/code&gt; to fail the
build), and cache-control helpers with &lt;code&gt;maxAge&lt;/code&gt; and &lt;code&gt;swr&lt;/code&gt;
(stale-while-revalidate) windows.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v3220--mar-25-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.22.0&quot;&gt;v3.22.0&lt;/a&gt; — Mar 25, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Baseline widely available&lt;/strong&gt; now includes &lt;code&gt;subgrid&lt;/code&gt;, &lt;code&gt;counter-style&lt;/code&gt;,
&lt;code&gt;contain-intrinsic-size&lt;/code&gt;, &lt;code&gt;hyphens&lt;/code&gt;, &lt;code&gt;image-set&lt;/code&gt;, and &lt;code&gt;modulepreload&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Newly available: hanging/each-line &lt;code&gt;text-indent&lt;/code&gt;; new tracked features
&lt;code&gt;focusgroup&lt;/code&gt; and Declarative WebMCP.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3210--mar-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.21.0&quot;&gt;v3.21.0&lt;/a&gt; — Mar 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WebMCP arrives in the platform tracker&lt;/strong&gt;: &lt;code&gt;navigator.modelContext&lt;/code&gt; gets a
feature entry and its own group.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3200--mar-11-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.20.0&quot;&gt;v3.20.0&lt;/a&gt; — Mar 11, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New tracked features: &lt;strong&gt;lazy-loading for &lt;code&gt;&amp;#x3C;video&gt;&lt;/code&gt;/&lt;code&gt;&amp;#x3C;audio&gt;&lt;/code&gt;&lt;/strong&gt;,
signature-based resource integrity, and
&lt;code&gt;text-decoration-line: spelling-error | grammar-error&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v739--mar-27-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.3.9&quot;&gt;v7.3.9&lt;/a&gt; — Mar 27, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CookieStore.set&lt;/code&gt; gains a &lt;code&gt;maxAge&lt;/code&gt; option; &lt;code&gt;CSSFontFaceDescriptors&lt;/code&gt;
(ascent/descent overrides, variation settings) enters the data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v737--mar-13-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.3.7&quot;&gt;v7.3.7&lt;/a&gt; — Mar 13, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: CSS &lt;strong&gt;&lt;code&gt;timeline-trigger&lt;/code&gt;&lt;/strong&gt; and
&lt;code&gt;AudioContext.playbackStats&lt;/code&gt; (latency stats for audio playback).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v736--mar-6-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.3.6&quot;&gt;v7.3.6&lt;/a&gt; — Mar 6, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Web Preferences API&lt;/strong&gt; (&lt;code&gt;navigator.preferences&lt;/code&gt;, &lt;code&gt;PreferenceManager&lt;/code&gt;
for color scheme / contrast / reduced motion overrides) enters the data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h2&gt;
&lt;h3 id=&quot;v422--mar-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.2.2&quot;&gt;v4.2.2&lt;/a&gt; — Mar 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@tailwindcss/vite&lt;/code&gt; supports &lt;strong&gt;Vite 8&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v1030--mar-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.3.0&quot;&gt;v10.3.0&lt;/a&gt; — Mar 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Storybook MCP&lt;/strong&gt;: agentic component dev, docs, and test (preview, React).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vite 8&lt;/strong&gt;, Next.js 16.2, and ESLint 10 support; Addon Pseudo-States gets
Tailwind v4 support.&lt;/li&gt;
&lt;li&gt;Numerous accessibility improvements across the UI.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v10216--mar-6-2026&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.2.16&quot;&gt;v10.2.16&lt;/a&gt; — Mar 6, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security: host/origin validation for requests and websocket
connections&lt;/strong&gt;, backported as “request validation” to the
&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.1.20&quot;&gt;9.x&lt;/a&gt;,
&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v8.6.18&quot;&gt;8.x&lt;/a&gt;, and
&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v7.6.24&quot;&gt;7.x&lt;/a&gt; lines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;jotai&quot;&gt;Jotai&lt;/h2&gt;
&lt;h3 id=&quot;v2190--mar-24-2026&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.19.0&quot;&gt;v2.19.0&lt;/a&gt; — Mar 24, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;store.get&lt;/code&gt; performance improved when atoms are not mutated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1140--mar-27-2026&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.14.0&quot;&gt;v1.14.0&lt;/a&gt; — Mar 27, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ No new features, but &lt;code&gt;proxy-from-env&lt;/code&gt; moved to v2 — validate env-based
proxy behavior and CJS resolution edge cases after upgrading.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2600--mar-28-2026&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v26.0.0&quot;&gt;v26.0.0&lt;/a&gt; — Mar 28, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;i18next 26 is out&lt;/strong&gt;, a cleanup major: removed the deprecated
&lt;code&gt;initImmediate&lt;/code&gt; option (use &lt;code&gt;initAsync&lt;/code&gt;), the legacy monolithic
&lt;code&gt;interpolation.format&lt;/code&gt; function, the console support notice (and
&lt;code&gt;showSupportNotice&lt;/code&gt;), and the unused &lt;code&gt;simplifyPluralSuffix&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v25100--mar-21-2026&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.10.0&quot;&gt;v25.10.0&lt;/a&gt; — Mar 21, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;In v25.9–25.10, &lt;strong&gt;interpolation values
are now typed from format specifiers&lt;/strong&gt; (&lt;code&gt;{{val, number}}&lt;/code&gt; requires a
number), &lt;code&gt;keyFromSelector&lt;/code&gt; returns a branded &lt;code&gt;SelectorKey&lt;/code&gt;, selector syntax
works for &lt;code&gt;keyPrefix&lt;/code&gt; in &lt;code&gt;getFixedT&lt;/code&gt;, and plural keys enforce
&lt;code&gt;{ count: number }&lt;/code&gt; (&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.9.0&quot;&gt;v25.9.0&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;TypeScript 6 supported since
&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.10.7&quot;&gt;v25.10.7&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;lodash&quot;&gt;Lodash&lt;/h2&gt;
&lt;h3 id=&quot;4180--mar-31-2026&quot;&gt;&lt;a href=&quot;https://github.com/lodash/lodash/releases/tag/4.18.0&quot;&gt;4.18.0&lt;/a&gt; — Mar 31, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A documentation-and-hardening release: a security notice for &lt;code&gt;_.template&lt;/code&gt;
in the threat model and API docs, plus republished per-method packages.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10470--mar-31-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.47.0&quot;&gt;10.47.0&lt;/a&gt; — Mar 31, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Runtime metrics integrations for Node.js and Bun&lt;/strong&gt;; new
&lt;code&gt;elementTimingIntegration&lt;/code&gt; tracks element render/load times in the browser;
OTLP integration for &lt;code&gt;node-core/light&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10460--mar-25-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.46.0&quot;&gt;10.46.0&lt;/a&gt; — Mar 25, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;@sentry/elysia&lt;/code&gt; alpha&lt;/strong&gt; — automatic 5xx capture, lifecycle spans for
every Elysia phase, distributed tracing headers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10440--mar-17-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.44.0&quot;&gt;10.44.0&lt;/a&gt; — Mar 17, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;@sentry/effect&lt;/code&gt; alpha&lt;/strong&gt;, &lt;strong&gt;Astro 6 support&lt;/strong&gt;, basic Hono instrumentation
on Node, and NestJS &lt;code&gt;@nestjs/bullmq&lt;/code&gt; + &lt;code&gt;@nestjs/schedule&lt;/code&gt; decorators
instrumented.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v411--mar-23-2026&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v4.1.1&quot;&gt;v4.1.1&lt;/a&gt; — Mar 23, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;matchesTags&lt;/code&gt; tests the current filter; new &lt;code&gt;experimental.vcsProvider&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v410--mar-12-2026&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v4.1.0&quot;&gt;v4.1.0&lt;/a&gt; — Mar 12, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test tags&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;aroundEach&lt;/code&gt;/&lt;code&gt;aroundAll&lt;/code&gt; hooks&lt;/strong&gt;, and chai-style
assertions.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vi.doMock&lt;/code&gt; returns a disposable; expectedly-failed tests (&lt;code&gt;.fails&lt;/code&gt;) are
tracked in UI and CLI; a warning fires when &lt;code&gt;vi.mock&lt;/code&gt;/&lt;code&gt;vi.hoisted&lt;/code&gt; are
declared below the module’s top level.&lt;/li&gt;
&lt;li&gt;Several formerly-experimental features stabilized.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v291--mar-30-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.9.1&quot;&gt;v2.9.1&lt;/a&gt; — Mar 30, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Local cache eviction&lt;/strong&gt; via &lt;code&gt;cacheMaxAge&lt;/code&gt; and &lt;code&gt;cacheMaxSize&lt;/code&gt;; the
migration codemod handles package-manager catalogs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v290--mar-30-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.9.0&quot;&gt;v2.9.0&lt;/a&gt; — Mar 30, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;turbo-ignore&lt;/code&gt; is deprecated&lt;/strong&gt; in favor of &lt;code&gt;turbo query affected&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;affectedUsingTaskInputs&lt;/code&gt; future flag brings task-level &lt;code&gt;--affected&lt;/code&gt;
detection; &lt;code&gt;experimentalObservability&lt;/code&gt; adds an OpenTelemetry backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2815--mar-9-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.8.15&quot;&gt;v2.8.15&lt;/a&gt; — Mar 9, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ The daemon is removed from watch mode; &lt;code&gt;futureFlags.longerSignatureKey&lt;/code&gt;
enforces a minimum HMAC key length for cache signatures.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11660--mar-1-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.166.0&quot;&gt;v1.166.0&lt;/a&gt; — Mar 1, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Dev-server SSR style injection is configurable; TanStack Start’s dev server
supports split &lt;code&gt;base&lt;/code&gt; and &lt;code&gt;basepath&lt;/code&gt; since
&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.165.0&quot;&gt;v1.165.0&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): React, JavaScript / TC39, Material
     UI, React Hook Form, Zod, Konva (fixes only), Notistack, Convex,
     PostHog JS, video.js, Playwright, and TanStack beyond Router --&gt;</content:encoded></item><item><title>Radar — February 2026</title><link>https://devpebe.com/radar/2026-02/</link><guid isPermaLink="true">https://devpebe.com/radar/2026-02/</guid><description>Radar digest for 2026-02 — what changed in the working stack, distilled from release notes.</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2026-02-01 → 2026-03-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;v2570--feb-24-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.7.0&quot;&gt;v25.7.0&lt;/a&gt; — Feb 24, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SEA supports an ESM entry point&lt;/strong&gt;; SQLite marked release candidate.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http2&lt;/code&gt; gets &lt;code&gt;http1Options&lt;/code&gt; for HTTP/1-fallback configuration.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;Duplex.toWeb&lt;/code&gt; renamed its &lt;code&gt;type&lt;/code&gt; option to &lt;code&gt;readableType&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v24140--feb-24-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.14.0&quot;&gt;v24.14.0&lt;/a&gt; — Feb 24, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;LTS picks up the recent Current features: &lt;code&gt;fs.watch&lt;/code&gt; &lt;code&gt;ignore&lt;/code&gt; option,
&lt;code&gt;http.setGlobalProxyFromEnv&lt;/code&gt;, subpath imports starting with &lt;code&gt;#/&lt;/code&gt;, and the
&lt;code&gt;trackPromises&lt;/code&gt; option in &lt;code&gt;async_hooks.createHook&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2560--feb-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.6.0&quot;&gt;v25.6.0&lt;/a&gt; — Feb 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;async_hooks.createHook&lt;/code&gt; gets &lt;code&gt;trackPromises&lt;/code&gt;; &lt;code&gt;node:stream/consumers&lt;/code&gt; gets
&lt;code&gt;bytes&lt;/code&gt;; the test runner’s &lt;code&gt;run()&lt;/code&gt; accepts an &lt;code&gt;env&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;Initial ESM support in the embedder API; &lt;code&gt;Socket&lt;/code&gt; gains &lt;code&gt;setTOS&lt;/code&gt;/&lt;code&gt;getTOS&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v3180--feb-23-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.18.0&quot;&gt;v3.18.0&lt;/a&gt; — Feb 23, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New tracked features: the &lt;strong&gt;&lt;code&gt;&amp;#x3C;install&gt;&lt;/code&gt; element&lt;/strong&gt;, &lt;strong&gt;Navigation API precommit
handlers&lt;/strong&gt;, and WebAssembly JS Promise Integration (JSPI).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3170--feb-17-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.17.0&quot;&gt;v3.17.0&lt;/a&gt; — Feb 17, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;text-wrap-*&lt;/code&gt; entries were consolidated into just &lt;strong&gt;&lt;code&gt;text-wrap&lt;/code&gt;,
&lt;code&gt;text-wrap-balance&lt;/code&gt;, and &lt;code&gt;text-wrap-pretty&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;New tracked features include the &lt;strong&gt;CSS &lt;code&gt;random()&lt;/code&gt; function&lt;/strong&gt;, Digital
Credentials, the &lt;code&gt;&amp;#x3C;geolocation&gt;&lt;/code&gt; element, and built-in &lt;code&gt;LanguageDetector&lt;/code&gt; /
&lt;code&gt;Translator&lt;/code&gt; APIs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3160--feb-10-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.16.0&quot;&gt;v3.16.0&lt;/a&gt; — Feb 10, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;display-mode&lt;/code&gt; is no longer Baseline&lt;/strong&gt; — the status regressed after
upstream data turned out to be incomplete. Re-check before relying on it.&lt;/li&gt;
&lt;li&gt;New: CSS &lt;code&gt;filter()&lt;/code&gt; function feature, WebGPU group.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3150--feb-4-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.15.0&quot;&gt;v3.15.0&lt;/a&gt; — Feb 4, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;background-attachment&lt;/code&gt; and &lt;code&gt;autofill&lt;/code&gt; regressed to not-Baseline&lt;/strong&gt; due to
upstream data changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v733--feb-20-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.3.3&quot;&gt;v7.3.3&lt;/a&gt; — Feb 20, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;WebTransport&lt;/strong&gt; compatibility data: send groups, &lt;code&gt;draining&lt;/code&gt;,
&lt;code&gt;supportsReliableOnly&lt;/code&gt;, datagram writables.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v732--feb-13-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.3.2&quot;&gt;v7.3.2&lt;/a&gt; — Feb 13, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;&lt;code&gt;AnimationTrigger&lt;/code&gt;&lt;/strong&gt;, the &lt;code&gt;clipboardchange&lt;/code&gt; event, and
the CrashReportContext API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v731--feb-6-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.3.1&quot;&gt;v7.3.1&lt;/a&gt; — Feb 6, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;Iterator.zip&lt;/code&gt;&lt;/strong&gt; and the &lt;code&gt;color-gamut&lt;/code&gt; media values (&lt;code&gt;p3&lt;/code&gt;, &lt;code&gt;rec2020&lt;/code&gt;,
&lt;code&gt;srgb&lt;/code&gt;) enter the data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h2&gt;
&lt;h3 id=&quot;v420--feb-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.2.0&quot;&gt;v4.2.0&lt;/a&gt; — Feb 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Four new default palettes: &lt;strong&gt;mauve, olive, mist, taupe&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;New &lt;strong&gt;logical-property utilities&lt;/strong&gt;: &lt;code&gt;pbs-*&lt;/code&gt;/&lt;code&gt;pbe-*&lt;/code&gt;, &lt;code&gt;mbs-*&lt;/code&gt;/&lt;code&gt;mbe-*&lt;/code&gt;,
&lt;code&gt;border-bs-*&lt;/code&gt;/&lt;code&gt;border-be-*&lt;/code&gt;, &lt;code&gt;inline-*&lt;/code&gt;/&lt;code&gt;block-*&lt;/code&gt; sizes, and
&lt;code&gt;inset-s/e/bs/be-*&lt;/code&gt; — writing-mode-safe spacing without arbitrary values.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;@tailwindcss/webpack&lt;/code&gt; package for running Tailwind as a webpack plugin.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v10210--feb-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.2.10&quot;&gt;v10.2.10&lt;/a&gt; — Feb 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security: websocket connections now require a token&lt;/strong&gt; — the same
hardening was backported all the way down to
&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.1.19&quot;&gt;9.1.19&lt;/a&gt;,
&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v8.6.17&quot;&gt;8.6.17&lt;/a&gt;, and
&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v7.6.23&quot;&gt;7.6.23&lt;/a&gt;.
Update whichever line you’re on.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;jotai&quot;&gt;Jotai&lt;/h2&gt;
&lt;h3 id=&quot;v2180--feb-19-2026&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.18.0&quot;&gt;v2.18.0&lt;/a&gt; — Feb 19, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;code&gt;jotai/babel&lt;/code&gt; is deprecated in favor of the separate &lt;code&gt;jotai-babel&lt;/code&gt;
package.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1136--feb-27-2026&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.13.6&quot;&gt;v1.13.6&lt;/a&gt; — Feb 27, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;React Native Blob support&lt;/strong&gt; — verify your integration if you rely on
specific Blob or FormData behaviors there.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10400--feb-24-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.40.0&quot;&gt;10.40.0&lt;/a&gt; — Feb 24, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ The TanStack Start Vite plugin moved to the
&lt;code&gt;@sentry/tanstackstart-react/vite&lt;/code&gt; subpath; Gatsby v2 support dropped.&lt;/li&gt;
&lt;li&gt;Astro on Cloudflare Workers support; async KV API instrumented on
Cloudflare; framework-agnostic tunnel handler; Deno SDK gains logs,
metrics, and &lt;code&gt;Deno.serve&lt;/code&gt; instrumentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10390--feb-16-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.39.0&quot;&gt;10.39.0&lt;/a&gt; — Feb 16, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;TanStack Start &lt;strong&gt;server-function middleware auto-instrumented&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;node-core/light&lt;/code&gt;&lt;/strong&gt; build for error tracking / logs / metrics without
tracing; experimental automatic Vercel cron monitoring on Next.js; trace
continuation from &lt;code&gt;Server-Timing&lt;/code&gt; headers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v2811--feb-25-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.8.11&quot;&gt;v2.8.11&lt;/a&gt; — Feb 25, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;The daemon is removed from &lt;code&gt;turbo run&lt;/code&gt;&lt;/strong&gt; — daemon flags and config are
deprecated.&lt;/li&gt;
&lt;li&gt;A wide performance pass: parallelized globwalks and package.json loading,
deduplicated file hashing, faster pnpm lockfile resolution, fewer
filesystem syscalls.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2810--feb-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.8.10&quot;&gt;v2.8.10&lt;/a&gt; — Feb 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--profile&lt;/code&gt; can emit &lt;strong&gt;LLM-friendly markdown&lt;/strong&gt; alongside the trace output
(filename now optional); more hashing and watch-mode performance work.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11610--feb-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.161.0&quot;&gt;v1.161.0&lt;/a&gt; — Feb 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Import protection&lt;/strong&gt; — server-only modules are guarded from client
bundles; &lt;code&gt;excludeFiles&lt;/code&gt; added in
&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.163.0&quot;&gt;v1.163.0&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11600--feb-15-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.160.0&quot;&gt;v1.160.0&lt;/a&gt; — Feb 15, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;isDangerousProtocol&lt;/code&gt; now uses a customizable allowlist.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11580--feb-3-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.158.0&quot;&gt;v1.158.0&lt;/a&gt; — Feb 3, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;routeId&lt;/code&gt; is passed into &lt;code&gt;context&lt;/code&gt;/&lt;code&gt;beforeLoad&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): React, TypeScript (6.0 beta out),
     JavaScript / TC39, Vite (8.0 in beta), Astro, Material UI, React Hook
     Form, Zod, i18next (patches only), Konva, Lodash, Notistack, Convex,
     PostHog JS, video.js, Playwright (browser bumps only), Vitest, and
     TanStack beyond Router --&gt;</content:encoded></item><item><title>Radar — January 2026</title><link>https://devpebe.com/radar/2026-01/</link><guid isPermaLink="true">https://devpebe.com/radar/2026-01/</guid><description>Radar digest for 2026-01 — what changed in the working stack, distilled from release notes.</description><pubDate>Sat, 31 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2026-01-01 → 2026-02-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;react&quot;&gt;React&lt;/h2&gt;
&lt;h3 id=&quot;1924--1915--1904--jan-26-2026&quot;&gt;&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.2.4&quot;&gt;19.2.4 / 19.1.5 / 19.0.4&lt;/a&gt; — Jan 26, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security patches across all three release lines&lt;/strong&gt; — more DoS mitigations
for Server Actions and hardened Server Components. Worth updating even if
you’re pinned to an older minor (&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.1.5&quot;&gt;19.1.5&lt;/a&gt;,
&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.0.4&quot;&gt;19.0.4&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;v2550--jan-26-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.5.0&quot;&gt;v25.5.0&lt;/a&gt; — Jan 26, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;fs.watch&lt;/code&gt; gets an &lt;code&gt;ignore&lt;/code&gt; option&lt;/strong&gt; — skip paths without hand-rolled
filtering in the watcher callback.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--build-sea&lt;/code&gt; generates single-executable applications directly with the
Node binary.&lt;/li&gt;
&lt;li&gt;SQLite: defensive mode enabled by default, and &lt;code&gt;prepare&lt;/code&gt; accepts options.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2540--jan-19-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.4.0&quot;&gt;v25.4.0&lt;/a&gt; — Jan 19, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;require(esm)&lt;/code&gt; is now stable.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;http.setGlobalProxyFromEnv&lt;/code&gt; — proxy configuration from env vars
without an agent package.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;--require-module&lt;/code&gt;/&lt;code&gt;--no-require-module&lt;/code&gt; CLI flags;
&lt;code&gt;events.listenerCount&lt;/code&gt; now accepts EventTargets.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2530--jan-13-2026&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.3.0&quot;&gt;v25.3.0&lt;/a&gt; — Jan 13, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security release across all lines&lt;/strong&gt; (7 CVEs) — TLS socket default error
handler, stricter symlink permission checks, &lt;code&gt;async_hooks&lt;/code&gt; stack-overflow
handling. Same patches shipped to
&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.13.0&quot;&gt;24.13.0&lt;/a&gt;,
&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.22.0&quot;&gt;22.22.0&lt;/a&gt;, and
&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v20.20.0&quot;&gt;20.20.0&lt;/a&gt; LTS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v3140--jan-19-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.14.0&quot;&gt;v3.14.0&lt;/a&gt; — Jan 19, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;display-grid-lanes&lt;/code&gt; and &lt;code&gt;grid-lanes&lt;/code&gt; feature IDs now
redirect to &lt;strong&gt;&lt;code&gt;masonry&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;New tracked features: &lt;code&gt;view-transitions-element-scoped&lt;/code&gt;, &lt;code&gt;iterator-concat&lt;/code&gt;,
&lt;code&gt;Atomics.pause&lt;/code&gt;, &lt;code&gt;Map.getOrInsert&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3130--jan-7-2026&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.13.0&quot;&gt;v3.13.0&lt;/a&gt; — Jan 7, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Permissions Policy and the legacy Feature Policy are now tracked as separate
features — useful when auditing which header syntax you can rely on.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v725--jan-23-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.2.5&quot;&gt;v7.2.5&lt;/a&gt; — Jan 23, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;&lt;code&gt;&amp;#x3C;input type=&quot;switch&quot;&gt;&lt;/code&gt;&lt;/strong&gt;, the CSS &lt;code&gt;random()&lt;/code&gt; type, the
&lt;code&gt;display-mode&lt;/code&gt; media feature values (&lt;code&gt;browser&lt;/code&gt;, &lt;code&gt;fullscreen&lt;/code&gt;, &lt;code&gt;standalone&lt;/code&gt;,
…), &lt;code&gt;ShadowRoot.referenceTarget&lt;/code&gt; — plus Edge 147.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v724--jan-15-2026&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.2.4&quot;&gt;v7.2.4&lt;/a&gt; — Jan 15, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;document.startViewTransition&lt;/code&gt; options parameter (&lt;code&gt;types&lt;/code&gt; / &lt;code&gt;update&lt;/code&gt;) and
the new &lt;code&gt;Origin&lt;/code&gt; API (&lt;code&gt;Origin.from&lt;/code&gt;, &lt;code&gt;isSameOrigin&lt;/code&gt;) enter the data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v1020--jan-21-2026&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.2.0&quot;&gt;v10.2.0&lt;/a&gt; — Jan 21, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;Viewports and Zoom UI&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Typesafe CSF factories&lt;/strong&gt; for Vue, Angular, and Web Components (preview).&lt;/li&gt;
&lt;li&gt;MDX support for Storybook MCP (experimental) + MDX manifest generation in
Addon-Docs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v737--jan-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.3.7&quot;&gt;v7.3.7&lt;/a&gt; — Jan 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Migration signals ahead of v9: &lt;code&gt;TransitionProps&lt;/code&gt; → &lt;code&gt;slotProps.transition&lt;/code&gt; on
Dialog, &lt;code&gt;TransitionComponent&lt;/code&gt; → &lt;code&gt;slots.transition&lt;/code&gt; on Snackbar.&lt;/li&gt;
&lt;li&gt;NumberField now uses the stable Base UI package.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;jotai&quot;&gt;Jotai&lt;/h2&gt;
&lt;h3 id=&quot;v2170--jan-28-2026&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.17.0&quot;&gt;v2.17.0&lt;/a&gt; — Jan 28, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;unstable_onInit&lt;/code&gt; removed&lt;/strong&gt;, and two deprecations to plan around: the
&lt;code&gt;loadable&lt;/code&gt; util and &lt;code&gt;setSelf&lt;/code&gt; in the atom read function.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1133--jan-20-2026&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.13.3&quot;&gt;v1.13.3&lt;/a&gt; — Jan 20, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AxiosRequestConfig&lt;/code&gt; accepts &lt;code&gt;undefined&lt;/code&gt; values, compatibility with frozen
prototypes, and better IntelliSense for string literals in widened unions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;konva&quot;&gt;Konva&lt;/h2&gt;
&lt;h3 id=&quot;1020--jan-15-2026&quot;&gt;&lt;a href=&quot;https://github.com/konvajs/konva/releases/tag/10.2.0&quot;&gt;10.2.0&lt;/a&gt; — Jan 15, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rotateAnchorAngle&lt;/code&gt; on Transformer — customizable rotation-anchor position.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;1010--jan-14-2026&quot;&gt;&lt;a href=&quot;https://github.com/konvajs/konva/releases/tag/10.1.0&quot;&gt;10.1.0&lt;/a&gt; — Jan 14, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Optional &lt;code&gt;nodes&lt;/code&gt; array in &lt;code&gt;TransformerConfig&lt;/code&gt;; text gets an
underline-offset option; shared proto-listener performance optimized.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;posthog-js13310--jan-19-2026&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/posthog-js%401.331.0&quot;&gt;posthog-js@1.331.0&lt;/a&gt; — Jan 19, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;code&gt;posthog.init&lt;/code&gt; option &lt;code&gt;evaluationEnvironments&lt;/code&gt; is deprecated in favor of
&lt;code&gt;evaluationContexts&lt;/code&gt; — removal planned for a future major.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10370--jan-27-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.37.0&quot;&gt;10.37.0&lt;/a&gt; — Jan 27, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;Sentry.setConversationId&lt;/code&gt;&lt;/strong&gt; API to track multi-turn AI conversations;
TanStack Start global middleware auto-instrumented by the Vite plugin.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10360--jan-21-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.36.0&quot;&gt;10.36.0&lt;/a&gt; — Jan 21, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prisma v7 support&lt;/strong&gt; in the Node SDK.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10350--jan-19-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.35.0&quot;&gt;10.35.0&lt;/a&gt; — Jan 19, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;sentryTanstackStart&lt;/code&gt; Vite plugin manages automatic source-map uploads;
Cloudflare release id set automatically from &lt;code&gt;CF_VERSION_METADATA&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10330--jan-12-2026&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.33.0&quot;&gt;10.33.0&lt;/a&gt; — Jan 12, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vercel AI SDK v6 support&lt;/strong&gt;; scope attributes now apply to metrics; DSNs
accept IPv6 hosts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1580--jan-23-2026&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.58.0&quot;&gt;v1.58.0&lt;/a&gt; — Jan 23, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;UI mode: a ‘system’ theme option, Cmd/Ctrl+F search in code editors, and a
reorganized network panel with auto-formatted JSON responses.&lt;/li&gt;
&lt;li&gt;⚠ Removed: the &lt;code&gt;_react&lt;/code&gt;/&lt;code&gt;_vue&lt;/code&gt; selectors, the &lt;code&gt;:light&lt;/code&gt; selector suffix, the
&lt;code&gt;devtools&lt;/code&gt; launch option, and WebKit on macOS 13.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v4017--jan-12-2026&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v4.0.17&quot;&gt;v4.0.17&lt;/a&gt; — Jan 12, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenTelemetry support for browser mode&lt;/strong&gt;, plus &lt;code&gt;TRACEPARENT&lt;/code&gt;/&lt;code&gt;TRACESTATE&lt;/code&gt;
env vars for context propagation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v275--jan-17-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.7.5&quot;&gt;v2.7.5&lt;/a&gt; — Jan 17, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Optional &lt;strong&gt;&lt;code&gt;description&lt;/code&gt; field on task definitions&lt;/strong&gt; in turbo.json; new
&lt;code&gt;docs&lt;/code&gt; subcommand searches the documentation from the CLI.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v274--jan-11-2026&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.7.4&quot;&gt;v2.7.4&lt;/a&gt; — Jan 11, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Git worktree support.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11550--jan-23-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.155.0&quot;&gt;v1.155.0&lt;/a&gt; — Jan 23, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Router-core performance: pre-compiled regex decoder in &lt;code&gt;interpolatePath&lt;/code&gt;,
regex-free &lt;code&gt;parseSegment&lt;/code&gt;; new eslint rule checks route param names.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11520--jan-18-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.152.0&quot;&gt;v1.152.0&lt;/a&gt; — Jan 18, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Custom &lt;code&gt;fetch&lt;/code&gt; implementation for server functions — configurable via
&lt;code&gt;createStart&lt;/code&gt; since &lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.153.0&quot;&gt;v1.153.0&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11500--jan-14-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.150.0&quot;&gt;v1.150.0&lt;/a&gt; — Jan 14, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;Route.redirect&lt;/code&gt; and &lt;code&gt;getRouteApi.redirect&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11460--jan-8-2026&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.146.0&quot;&gt;v1.146.0&lt;/a&gt; — Jan 8, 2026&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Params are now validated while matching.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window: TypeScript, JavaScript / TC39, Vite (8.0 still in
     beta), Tailwind CSS, Astro, React Hook Form, Zod (chores only), i18next,
     Lodash, Notistack, Convex, video.js, and TanStack beyond Router (the CLI
     shipped only template chores) --&gt;</content:encoded></item><item><title>Radar — December 2025</title><link>https://devpebe.com/radar/2025-12/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-12/</guid><description>Radar digest for 2025-12 — what changed in the working stack, distilled from release notes.</description><pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-12-01 → 2026-01-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;react&quot;&gt;React&lt;/h2&gt;
&lt;h3 id=&quot;1923--dec-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.2.3&quot;&gt;19.2.3&lt;/a&gt; — Dec 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Server Functions hardening&lt;/strong&gt;: extra loop protection added — the same patch
shipped across the 19.0.x and 19.1.x lines the same day.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-24120-krypton-lts--dec-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.12.0&quot;&gt;Version 24.12.0 ‘Krypton’ (LTS)&lt;/a&gt; — Dec 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Type stripping marked stable on the LTS line.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Permission model gains &lt;code&gt;--allow-inspector&lt;/code&gt;; compile cache can be made
portable.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;v8&lt;/code&gt;: CPU profile API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v3120--dec-18-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.12.0&quot;&gt;v3.12.0&lt;/a&gt; — Dec 18, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New features: &lt;code&gt;wasm-branch-hinting&lt;/code&gt;, &lt;code&gt;scroll-target-group&lt;/code&gt;,
&lt;code&gt;scroll-marker-targets&lt;/code&gt;, &lt;code&gt;document-caretpositionfrompoint&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hidden-until-found&lt;/code&gt; now marked unsupported in Firefox (still Limited
Availability).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3110--dec-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.11.0&quot;&gt;v3.11.0&lt;/a&gt; — Dec 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New features: &lt;strong&gt;&lt;code&gt;interest-invokers&lt;/code&gt;&lt;/strong&gt;, anchor-position container queries,
&lt;code&gt;scroll-into-view-container&lt;/code&gt;, range syntax for style queries,
&lt;code&gt;toggleevent-source&lt;/code&gt;, and &lt;code&gt;web-install&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3100--dec-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.10.0&quot;&gt;v3.10.0&lt;/a&gt; — Dec 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;discouraged&lt;/code&gt; features now carry &lt;code&gt;reason&lt;/code&gt; / &lt;code&gt;reason_html&lt;/code&gt;, and optionally a
&lt;code&gt;removal_date&lt;/code&gt; marking pending or completed browser removal.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v722--dec-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.2.2&quot;&gt;v7.2.2&lt;/a&gt; — Dec 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Safari 26.3 release data; &lt;code&gt;&amp;#x3C;details&gt;&lt;/code&gt; &lt;code&gt;search_match_opens&lt;/code&gt; and the
&lt;code&gt;Sec-CH-*&lt;/code&gt; client-hint headers tracked.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v720--dec-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.2.0&quot;&gt;v7.2.0&lt;/a&gt; — Dec 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CSS &lt;code&gt;attr()&lt;/code&gt; &lt;code&gt;type-or-unit&lt;/code&gt; and &lt;code&gt;fallback&lt;/code&gt; support tracked (typed attr()).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7124--dec-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.24&quot;&gt;v7.1.24&lt;/a&gt; — Dec 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;zstd in &lt;code&gt;CompressionStream&lt;/code&gt; / &lt;code&gt;DecompressionStream&lt;/code&gt;&lt;/strong&gt; and
&lt;code&gt;ClipboardChangeEvent&lt;/code&gt; tracked.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v736--dec-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.3.6&quot;&gt;v7.3.6&lt;/a&gt; — Dec 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ListItem: &lt;code&gt;secondaryAction&lt;/code&gt; slot.&lt;/li&gt;
&lt;li&gt;Slider accepts a readonly array for &lt;code&gt;marks&lt;/code&gt;; TextField slot props are
extensible via TS module augmentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;zod&quot;&gt;Zod&lt;/h2&gt;
&lt;h3 id=&quot;v430--dec-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v4.3.0&quot;&gt;v4.3.0&lt;/a&gt; — Dec 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JSON Schema conversion covers the full surface&lt;/strong&gt;: all primitive types,
string formats, composition (&lt;code&gt;anyOf&lt;/code&gt;/&lt;code&gt;oneOf&lt;/code&gt;/&lt;code&gt;allOf&lt;/code&gt;), object and array
constraints, &lt;code&gt;$ref&lt;/code&gt; with circular schemas, metadata preserved.&lt;/li&gt;
&lt;li&gt;⚠ E.164 phone regex tightened — non-zero leading digit, 7–15 digits total.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v420--dec-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v4.2.0&quot;&gt;v4.2.0&lt;/a&gt; — Dec 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;z.fromJSONSchema&lt;/code&gt;&lt;/strong&gt; and a &lt;code&gt;.toJSONSchema&lt;/code&gt; method; new &lt;code&gt;z.looseRecord&lt;/code&gt;
and &lt;code&gt;z.xor&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;jotai&quot;&gt;Jotai&lt;/h2&gt;
&lt;h3 id=&quot;v2160--dec-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.16.0&quot;&gt;v2.16.0&lt;/a&gt; — Dec 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;code&gt;atomFamily&lt;/code&gt; in &lt;code&gt;jotai/utils&lt;/code&gt; deprecated — migrate to &lt;code&gt;jotai-family&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2570--dec-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.7.0&quot;&gt;v25.7.0&lt;/a&gt; — Dec 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cloneInstance&lt;/code&gt; creates a new interpolator when interpolation options are
passed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10320--dec-18-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.32.0&quot;&gt;10.32.0&lt;/a&gt; — Dec 18, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TanStack Start server functions traced&lt;/strong&gt;; Vue gets a TanStack Router
integration.&lt;/li&gt;
&lt;li&gt;Replay can attach request bodies via &lt;code&gt;attachRawBodyFromRequest&lt;/code&gt;; scope
attributes apply to logs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10310--dec-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.31.0&quot;&gt;10.31.0&lt;/a&gt; — Dec 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Browser: &lt;strong&gt;GraphQL persisted operations&lt;/strong&gt; support (hash + protocol version
attributes).&lt;/li&gt;
&lt;li&gt;Node: &lt;code&gt;propagateTraceparent&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10300--dec-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.30.0&quot;&gt;10.30.0&lt;/a&gt; — Dec 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Next.js Webpack top-level options deprecated.&lt;/li&gt;
&lt;li&gt;Node captures scope when the event loop is blocked.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10280--dec-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.28.0&quot;&gt;10.28.0&lt;/a&gt; — Dec 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;LangChain v1 support; LangChain/LangGraph instrumentation exposed in the
browser SDK.&lt;/li&gt;
&lt;li&gt;AWS Lambda layer published for Node 24; &lt;code&gt;isolateTrace&lt;/code&gt; option on
&lt;code&gt;Sentry.withMonitor&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v4015--dec-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v4.0.15&quot;&gt;v4.0.15&lt;/a&gt; — Dec 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Reporters print an import duration breakdown; module cache opt-out at the
plugin level.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;turborepo-v270--dec-19-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.7.0&quot;&gt;Turborepo v2.7.0&lt;/a&gt; — Dec 19, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Turborepo Devtools.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Yarn 4 catalogs support; task-level &lt;code&gt;extends&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;Faster lookup of tasks impacted by package changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;turborepo-v271--dec-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.7.1&quot;&gt;Turborepo v2.7.1&lt;/a&gt; — Dec 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;turbo query&lt;/code&gt; can now query external dependencies.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-cli&quot;&gt;TanStack CLI&lt;/h2&gt;
&lt;h3 id=&quot;v0440--dec-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.44.0&quot;&gt;v0.44.0&lt;/a&gt; — Dec 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Apollo Client add-on.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0410--dec-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.41.0&quot;&gt;v0.41.0&lt;/a&gt; — Dec 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;TanStack AI add-on for React.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11450--dec-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.145.0&quot;&gt;v1.145.0&lt;/a&gt; — Dec 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Start: &lt;strong&gt;async server-function validation&lt;/strong&gt; enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11440--dec-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.144.0&quot;&gt;v1.144.0&lt;/a&gt; — Dec 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;RawStream&lt;/code&gt; lands across router and Start packages.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v114211--dec-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.142.11&quot;&gt;v1.142.11&lt;/a&gt; — Dec 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;code&gt;json&lt;/code&gt; helper deprecated in favor of the standard &lt;code&gt;Response.json&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11420--dec-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.142.0&quot;&gt;v1.142.0&lt;/a&gt; — Dec 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;File-based routing: any special string can now be escaped in route file
names.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11418--dec-19-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.141.8&quot;&gt;v1.141.8&lt;/a&gt; — Dec 19, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vue support matures&lt;/strong&gt;: &lt;code&gt;vue-router&lt;/code&gt; Sentry integration via
&lt;code&gt;tanstackRouterBrowserTracingIntegration&lt;/code&gt;, Vue Start example apps and e2e
suites (&lt;code&gt;@tanstack/vue-router&lt;/code&gt; / &lt;code&gt;vue-start&lt;/code&gt; packages now publish alongside
React and Solid).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-store&quot;&gt;TanStack Store&lt;/h2&gt;
&lt;h3 id=&quot;v090--dec-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/store/releases/tag/v0.9.0&quot;&gt;v0.9.0&lt;/a&gt; — Dec 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Preact adapter&lt;/strong&gt; added (published as &lt;code&gt;@tanstack/preact-store&lt;/code&gt; in
&lt;a href=&quot;https://github.com/TanStack/store/releases/tag/v0.10.0&quot;&gt;v0.10.0&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): TypeScript, JavaScript / TC39, Vite,
     Tailwind CSS, Astro, Storybook (10.1.x patches), React Hook Form, Axios,
     Konva, Lodash, Notistack, Convex, PostHog JS, video.js, Playwright,
     TanStack Query, and the remaining TanStack packages --&gt;</content:encoded></item><item><title>Radar — November 2025</title><link>https://devpebe.com/radar/2025-11/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-11/</guid><description>Radar digest for 2025-11 — what changed in the working stack, distilled from release notes.</description><pubDate>Sun, 30 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-11-01 → 2025-12-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-2520-current--nov-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.2.0&quot;&gt;Version 25.2.0 (Current)&lt;/a&gt; — Nov 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TypeScript type stripping is stable.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;util.deprecate&lt;/code&gt; gains options; &lt;code&gt;v8.HeapStatistics&lt;/code&gt; adds
&lt;code&gt;total_allocated_bytes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;node-api: &lt;code&gt;napi_create_object_with_properties&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Network family autoselection timeout raised to 500ms.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v390--nov-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.9.0&quot;&gt;v3.9.0&lt;/a&gt; — Nov 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New features: &lt;code&gt;justify-self-block&lt;/code&gt;, &lt;strong&gt;&lt;code&gt;progress()&lt;/code&gt; CSS function&lt;/strong&gt;,
&lt;code&gt;rect-xywx&lt;/code&gt;, and split CSS shape functions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v380--nov-7-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.8.0&quot;&gt;v3.8.0&lt;/a&gt; — Nov 7, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New feature: &lt;strong&gt;custom media queries&lt;/strong&gt; (&lt;code&gt;@custom-media&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v370--nov-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.7.0&quot;&gt;v3.7.0&lt;/a&gt; — Nov 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New features: &lt;code&gt;&amp;#x3C;input type=&quot;file&quot; multiple&gt;&lt;/code&gt;, &lt;code&gt;webkitdirectory&lt;/code&gt;,
&lt;code&gt;referencetarget&lt;/code&gt;, and the &lt;code&gt;@supports&lt;/code&gt; at-rule.&lt;/li&gt;
&lt;li&gt;⚠ Feature ID &lt;code&gt;open-closed&lt;/code&gt; renamed to &lt;code&gt;open-pseudo&lt;/code&gt; (old ID redirects).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v7123--nov-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.23&quot;&gt;v7.1.23&lt;/a&gt; — Nov 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;InterestEvent&lt;/code&gt; / &lt;code&gt;interestfor&lt;/code&gt;&lt;/strong&gt; (interest invokers) tracked across
anchor, area, button, and SVG anchor elements.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7121--nov-12-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.21&quot;&gt;v7.1.21&lt;/a&gt; — Nov 12, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Firefox 148 release data; &lt;code&gt;@custom-media&lt;/code&gt; and &lt;code&gt;text-decoration-inset&lt;/code&gt;
tracked.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7119--nov-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.19&quot;&gt;v7.1.19&lt;/a&gt; — Nov 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Private State Tokens tracked (&lt;code&gt;fetch&lt;/code&gt; &lt;code&gt;privateToken&lt;/code&gt;, Permissions-Policy
entries, &lt;code&gt;Sec-Private-State-Token&lt;/code&gt;); Safari 26.2 and Edge 145 release data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;astro&quot;&gt;Astro&lt;/h2&gt;
&lt;h3 id=&quot;astro5160--nov-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/withastro/astro/releases/tag/astro%405.16.0&quot;&gt;astro@5.16.0&lt;/a&gt; — Nov 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Preview server keyboard shortcuts: &lt;code&gt;o&lt;/code&gt; opens the site in the browser, &lt;code&gt;q&lt;/code&gt;
quits, &lt;code&gt;h&lt;/code&gt; lists all shortcuts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v1010--nov-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.1.0&quot;&gt;v10.1.0&lt;/a&gt; — Nov 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UI overhaul fixing hundreds of a11y issues&lt;/strong&gt;, plus a CLI overhaul for
faster installs.&lt;/li&gt;
&lt;li&gt;Angular 21 support; RSbuild install support; Preact support in the Vitest
addon.&lt;/li&gt;
&lt;li&gt;Component manifest for &lt;strong&gt;Storybook MCP&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Improved JSX code snippets for React.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v735--nov-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.3.5&quot;&gt;v7.3.5&lt;/a&gt; — Nov 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Next.js 16 support.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Collapse: &lt;code&gt;slots&lt;/code&gt; and &lt;code&gt;slotProps&lt;/code&gt; props.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;konva&quot;&gt;Konva&lt;/h2&gt;
&lt;h3 id=&quot;10010--nov-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/konvajs/konva/releases/tag/10.0.10&quot;&gt;10.0.10&lt;/a&gt; — Nov 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Hit detection updated to handle canvas farbling (privacy-randomized canvas,
e.g. Brave).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;posthog-js12840--nov-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/posthog-js%401.284.0&quot;&gt;posthog-js@1.284.0&lt;/a&gt; — Nov 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;URL-prefilled survey responses&lt;/strong&gt;: &lt;code&gt;q{N}&lt;/code&gt; query params with
&lt;code&gt;auto_submit=true&lt;/code&gt; enable pre-filled NPS from email campaigns, one-click
responses from notifications, SMS and QR-code surveys.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10270--nov-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.27.0&quot;&gt;10.27.0&lt;/a&gt; — Nov 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Browser profiling: &lt;code&gt;manual&lt;/code&gt; mode added; ⚠ old profiling API deprecated.&lt;/li&gt;
&lt;li&gt;Scope attribute APIs; AzureOpenAI tracing support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10260--nov-19-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.26.0&quot;&gt;10.26.0&lt;/a&gt; — Nov 19, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LangGraph agent instrumentation&lt;/strong&gt; (core, Cloudflare, Vercel Edge).&lt;/li&gt;
&lt;li&gt;OpenAI SDK v6 support and embeddings API coverage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10240--nov-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.24.0&quot;&gt;10.24.0&lt;/a&gt; — Nov 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Metrics: top-level &lt;code&gt;enableMetrics&lt;/code&gt; and &lt;code&gt;beforeSendMetric&lt;/code&gt; options.&lt;/li&gt;
&lt;li&gt;AWS: &lt;code&gt;SENTRY_LAYER_EXTENSION&lt;/code&gt; env variable configures the Lambda layer
extension.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10230--nov-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.23.0&quot;&gt;10.23.0&lt;/a&gt; — Nov 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Default &lt;code&gt;maxValueLength: 250&lt;/code&gt; removed.&lt;/li&gt;
&lt;li&gt;Browser transport buffer size is now limited; server SDKs send a
&lt;code&gt;user-agent&lt;/code&gt; header with envelope requests.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1570--nov-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.57.0&quot;&gt;v1.57.0&lt;/a&gt; — Nov 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Service Worker network requests&lt;/strong&gt; are now reported and routable through
the BrowserContext (Chromium), with SW console messages on
&lt;code&gt;worker.on(&apos;console&apos;)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;testConfig.tag&lt;/code&gt; adds a tag to all tests in a run (useful with
merge-reports).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;locator.description&lt;/code&gt; returns the description set with &lt;code&gt;locator.describe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;steps&lt;/code&gt; option in &lt;code&gt;locator.click&lt;/code&gt; / &lt;code&gt;locator.dragTo&lt;/code&gt; controls emitted
&lt;code&gt;mousemove&lt;/code&gt; events.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v4014--nov-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v4.0.14&quot;&gt;v4.0.14&lt;/a&gt; — Nov 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;UI: tabbed failure view for &lt;code&gt;toMatchScreenshot&lt;/code&gt; with a comparison slider.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v4011--nov-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v4.0.11&quot;&gt;v4.0.11&lt;/a&gt; — Nov 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Extensible test artifact API.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Experimental: OpenTelemetry traces and a file-system module cache.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;turborepo-v261--nov-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.6.1&quot;&gt;Turborepo v2.6.1&lt;/a&gt; — Nov 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cross-platform microfrontends &lt;code&gt;port&lt;/code&gt; command; TUI icon moved to the left.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-cli&quot;&gt;TanStack CLI&lt;/h2&gt;
&lt;h3 id=&quot;v0390--nov-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.39.0&quot;&gt;v0.39.0&lt;/a&gt; — Nov 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Streamdown support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0370--nov-19-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.37.0&quot;&gt;v0.37.0&lt;/a&gt; — Nov 19, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Prisma 7 support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11370--nov-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.137.0&quot;&gt;v1.137.0&lt;/a&gt; — Nov 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Start: &lt;strong&gt;Vite preview support&lt;/strong&gt; (with prerendering via the preview server
in &lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.138.0&quot;&gt;v1.138.0&lt;/a&gt;);
new &lt;code&gt;srvx&lt;/code&gt; start command launches the production build.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11365--nov-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.136.5&quot;&gt;v1.136.5&lt;/a&gt; — Nov 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Route tree processed into a segment tree instead of flat routes — matching
performance work.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11360--nov-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.136.0&quot;&gt;v1.136.0&lt;/a&gt; — Nov 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Start: &lt;code&gt;createServerEntry&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11350--nov-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.135.0&quot;&gt;v1.135.0&lt;/a&gt; — Nov 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;useHydrated&lt;/code&gt; hook exported with documentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): React, TypeScript, JavaScript / TC39,
     Vite, Tailwind CSS, React Hook Form, Zod (4.1.13 patch), Jotai, Axios,
     i18next (type export only), Lodash, Notistack, Convex, video.js,
     TanStack Query, TanStack Store, and the remaining TanStack packages --&gt;</content:encoded></item><item><title>Radar — October 2025</title><link>https://devpebe.com/radar/2025-10/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-10/</guid><description>Radar digest for 2025-10 — what changed in the working stack, distilled from release notes.</description><pubDate>Fri, 31 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-10-01 → 2025-11-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;react&quot;&gt;React&lt;/h2&gt;
&lt;h3 id=&quot;1920--oct-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.2.0&quot;&gt;19.2.0&lt;/a&gt; — Oct 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;&amp;#x3C;Activity&gt;&lt;/code&gt;&lt;/strong&gt; — hide and restore the UI and internal state of its
children.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;useEffectEvent&lt;/code&gt;&lt;/strong&gt; — extract non-reactive logic into an Effect Event.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cacheSignal&lt;/code&gt; (RSC) signals when the &lt;code&gt;cache&lt;/code&gt; lifetime is over.&lt;/li&gt;
&lt;li&gt;React Performance tracks appear on the browser devtools Performance panel.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;resume&lt;/code&gt; / &lt;code&gt;resumeAndPrerender&lt;/code&gt; APIs continue a prerender to a stream or
HTML; &lt;code&gt;prerender&lt;/code&gt; now returns a &lt;code&gt;postponed&lt;/code&gt; state to feed them.&lt;/li&gt;
&lt;li&gt;⚠ React DOM now batches Suspense boundary reveals, matching client-side
rendering behavior.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-2510-current--oct-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.1.0&quot;&gt;Version 25.1.0 (Current)&lt;/a&gt; — Oct 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;http&lt;/code&gt;: &lt;code&gt;optimizeEmptyRequests&lt;/code&gt; server option; &lt;code&gt;sqlite&lt;/code&gt; gains a defensive
flag; new &lt;code&gt;watch&lt;/code&gt; config namespace.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-22210-jod-lts--oct-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.21.0&quot;&gt;Version 22.21.0 ‘Jod’ (LTS)&lt;/a&gt; — Oct 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Built-in HTTP proxy support&lt;/strong&gt; in &lt;code&gt;http&lt;/code&gt;/&lt;code&gt;https.request&lt;/code&gt; and &lt;code&gt;Agent&lt;/code&gt;, plus
&lt;code&gt;--use-env-proxy&lt;/code&gt; / &lt;code&gt;NODE_USE_ENV_PROXY&lt;/code&gt; for fetch.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--max-old-space-size&lt;/code&gt; accepts percentages.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-2500-current--oct-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v25.0.0&quot;&gt;Version 25.0.0 (Current)&lt;/a&gt; — Oct 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--allow-net&lt;/code&gt; permission&lt;/strong&gt; added to the permission model.&lt;/li&gt;
&lt;li&gt;Web Storage unflagged (&lt;code&gt;--experimental-webstorage&lt;/code&gt; on by default); global
&lt;code&gt;ErrorEvent&lt;/code&gt; exposed.&lt;/li&gt;
&lt;li&gt;⚠ End-of-life sweep: &lt;code&gt;SlowBuffer&lt;/code&gt;, &lt;code&gt;assert.CallTracker&lt;/code&gt;, multi-argument
&lt;code&gt;assert.fail&lt;/code&gt;, &lt;code&gt;child_process._channel&lt;/code&gt;, and the bound-function
&lt;code&gt;asyncResource&lt;/code&gt; property are gone.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-24100-current--oct-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.10.0&quot;&gt;Version 24.10.0 (Current)&lt;/a&gt; — Oct 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sqlite&lt;/code&gt;: authorization API; &lt;code&gt;console&lt;/code&gt; accepts per-stream &lt;code&gt;inspectOptions&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v360--oct-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.6.0&quot;&gt;v3.6.0&lt;/a&gt; — Oct 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The npm package now ships per-BCD-key statuses as &lt;code&gt;status.by_compat_key&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v350--oct-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.5.0&quot;&gt;v3.5.0&lt;/a&gt; — Oct 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New features: &lt;code&gt;caret-shape&lt;/code&gt; (CSS) and &lt;code&gt;queueMicrotask&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v340--oct-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.4.0&quot;&gt;v3.4.0&lt;/a&gt; — Oct 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New features: &lt;code&gt;clipboardchange&lt;/code&gt; event, &lt;code&gt;ariaNotify&lt;/code&gt;, IndexedDB
&lt;code&gt;getAllRecords&lt;/code&gt;, WebRTC encoded transform.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v330--oct-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.3.0&quot;&gt;v3.3.0&lt;/a&gt; — Oct 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New feature: &lt;code&gt;topics&lt;/code&gt; (Topics API), plus a large description backfill.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v7117--oct-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.17&quot;&gt;v7.1.17&lt;/a&gt; — Oct 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Brotli in &lt;code&gt;CompressionStream&lt;/code&gt; / &lt;code&gt;DecompressionStream&lt;/code&gt;&lt;/strong&gt; now tracked;
&lt;code&gt;RTCEncodedAudioFrame.getMetadata&lt;/code&gt; return properties added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7112--oct-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.12&quot;&gt;v7.1.12&lt;/a&gt; — Oct 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;WebNN surface tracked: &lt;code&gt;MLContext&lt;/code&gt; tensor APIs, &lt;code&gt;MLTensor&lt;/code&gt;, new
&lt;code&gt;MLGraphBuilder&lt;/code&gt; ops.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7111--oct-7-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.11&quot;&gt;v7.1.11&lt;/a&gt; — Oct 7, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;IndexedDB &lt;code&gt;getAll&lt;/code&gt; / &lt;code&gt;getAllKeys&lt;/code&gt; options object with &lt;code&gt;direction&lt;/code&gt;;
&lt;code&gt;PushEvent.notification&lt;/code&gt; and &lt;code&gt;Window.pushManager&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v7110--oct-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.10&quot;&gt;v7.1.10&lt;/a&gt; — Oct 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Document.activeViewTransition&lt;/code&gt;, &lt;code&gt;NavigationPrecommitController&lt;/code&gt;, and
computed styles returning &lt;code&gt;CSSStyleProperties&lt;/code&gt; tracked; Edge 144 release
data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v1000--oct-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v10.0.0&quot;&gt;v10.0.0&lt;/a&gt; — Oct 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Module automocking&lt;/strong&gt; for easier testing.&lt;/li&gt;
&lt;li&gt;Typesafe &lt;strong&gt;CSF factories preview&lt;/strong&gt; for React.&lt;/li&gt;
&lt;li&gt;Tag filtering exclusion and configuration for sidebar management.&lt;/li&gt;
&lt;li&gt;Next 16, Vitest 4, and Svelte async components support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v9114--oct-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.1.14&quot;&gt;v9.1.14&lt;/a&gt; — Oct 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Next.js 16 support and Vitest 4 support on the 9.x line.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v733--oct-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.3.3&quot;&gt;v7.3.3&lt;/a&gt; — Oct 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CircularProgress: track slot via &lt;code&gt;enableTrackSlot&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Autocomplete: highlighted index syncs when the popup opens.&lt;/li&gt;
&lt;li&gt;Steppers: &lt;code&gt;TransitionProps&lt;/code&gt; replaced with &lt;code&gt;slotProps.transition&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1130--oct-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.13.0&quot;&gt;v1.13.0&lt;/a&gt; — Oct 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;HTTP/2 support&lt;/strong&gt; in the http adapter.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2560--oct-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.6.0&quot;&gt;v25.6.0&lt;/a&gt; — Oct 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;exists&lt;/code&gt; now respects &lt;code&gt;returnObjects&lt;/code&gt; — returns &lt;code&gt;false&lt;/code&gt; when accessing an
object key with &lt;code&gt;returnObjects: false&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;konva&quot;&gt;Konva&lt;/h2&gt;
&lt;h3 id=&quot;1006--oct-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/konvajs/konva/releases/tag/10.0.6&quot;&gt;10.0.6&lt;/a&gt; — Oct 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enhanced &lt;code&gt;Image.getClientRect&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;1003--oct-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/konvajs/konva/releases/tag/10.0.3&quot;&gt;10.0.3&lt;/a&gt; — Oct 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;TextPath: text decoration options — &lt;code&gt;line-through&lt;/code&gt;, including combined
styles with &lt;code&gt;underline&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Better type inference for Rect attributes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10220--oct-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.22.0&quot;&gt;10.22.0&lt;/a&gt; — Oct 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LangChain instrumentation&lt;/strong&gt; (core, Cloudflare, Vercel Edge).&lt;/li&gt;
&lt;li&gt;Node: Firebase v2 cloud functions instrumented.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10210--oct-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.21.0&quot;&gt;10.21.0&lt;/a&gt; — Oct 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Browser profiling: &lt;code&gt;trace&lt;/code&gt; lifecycle mode for UI profiling.&lt;/li&gt;
&lt;li&gt;Nuxt: database, server cache, and storage APIs instrumented.&lt;/li&gt;
&lt;li&gt;Browser: &lt;code&gt;onRequestSpanEnd&lt;/code&gt; hook in the tracing integration.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10200--oct-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.20.0&quot;&gt;10.20.0&lt;/a&gt; — Oct 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Growthbook feature-flags integration; TanStack Router Solid support.&lt;/li&gt;
&lt;li&gt;Next.js: native debugIds in Turbopack.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10180--oct-7-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.18.0&quot;&gt;10.18.0&lt;/a&gt; — Oct 7, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Node: &lt;strong&gt;&lt;code&gt;pino&lt;/code&gt; integration&lt;/strong&gt;; ⚠ the separate &lt;code&gt;@sentry/pino-transport&lt;/code&gt;
package is removed.&lt;/li&gt;
&lt;li&gt;Google GenAI: stream responses and tool calls supported.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1560--oct-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.56.0&quot;&gt;v1.56.0&lt;/a&gt; — Oct 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Playwright Agents&lt;/strong&gt;: a planner that explores the app and produces a
Markdown test plan, a generator that turns the plan into test files, and a
healer that runs the suite and repairs failing tests.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;page.consoleMessages&lt;/code&gt;, &lt;code&gt;page.pageErrors&lt;/code&gt;, and &lt;code&gt;page.requests&lt;/code&gt; for
retrieving recent console/network activity.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--test-list&lt;/code&gt; / &lt;code&gt;--test-list-invert&lt;/code&gt; to pick tests from a file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v400--oct-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v4.0.0&quot;&gt;v4.0.0&lt;/a&gt; — Oct 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Major cleanup: &lt;code&gt;&apos;basic&apos;&lt;/code&gt; reporter removed, &lt;code&gt;UserConfig&lt;/code&gt; type replaced by
&lt;code&gt;ViteUserConfig&lt;/code&gt;, deprecated coverage options moved to &lt;code&gt;vitest/node&lt;/code&gt;
exports.&lt;/li&gt;
&lt;li&gt;⚠ Node types removed from the main entry point — import from &lt;code&gt;vitest/node&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;⚠ Vite 5 support dropped.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;turborepo-v260--oct-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.6.0&quot;&gt;Turborepo v2.6.0&lt;/a&gt; — Oct 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Microfrontends&lt;/strong&gt; support, with &lt;code&gt;schema.json&lt;/code&gt; for &lt;code&gt;microfrontends.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;~8.6× faster ESLint rule; TUI task-list search with &lt;code&gt;/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;New OAuth flow for the Turborepo CLI with Vercel.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-cli&quot;&gt;TanStack CLI&lt;/h2&gt;
&lt;h3 id=&quot;v0340--oct-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.34.0&quot;&gt;v0.34.0&lt;/a&gt; — Oct 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Drizzle add-on.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0310--oct-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.31.0&quot;&gt;v0.31.0&lt;/a&gt; — Oct 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Redwood SDK support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0290--oct-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.29.0&quot;&gt;v0.29.0&lt;/a&gt; — Oct 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Prisma support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0280--oct-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.28.0&quot;&gt;v0.28.0&lt;/a&gt; — Oct 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Strapi and WorkOS add-ons; Convex add-on for Solid.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v4420--oct-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v4.42.0&quot;&gt;v4.42.0&lt;/a&gt; — Oct 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;v4 line adds React 19 to peerDeps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11340--oct-29-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.134.0&quot;&gt;v1.134.0&lt;/a&gt; — Oct 29, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Start: &lt;code&gt;ServerEntry&lt;/code&gt; type exported to allow typing default exports.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11330--oct-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.133.0&quot;&gt;v1.133.0&lt;/a&gt; — Oct 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Devtools: &lt;strong&gt;history tab&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-store&quot;&gt;TanStack Store&lt;/h2&gt;
&lt;h3 id=&quot;v080--oct-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/store/releases/tag/v0.8.0&quot;&gt;v0.8.0&lt;/a&gt; — Oct 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Custom comparator / equality function support.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): TypeScript (5.9.x patches),
     JavaScript / TC39, Vite, Tailwind CSS (4.1.15 patch), Astro, React Hook
     Form, Zod (4.1.12 patch), Jotai, Lodash, Notistack, Convex, PostHog JS,
     video.js, and the remaining TanStack packages --&gt;</content:encoded></item><item><title>Radar — September 2025</title><link>https://devpebe.com/radar/2025-09/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-09/</guid><description>Radar digest for 2025-09 — what changed in the working stack, distilled from release notes.</description><pubDate>Tue, 30 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-09-01 → 2025-10-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-2490-current--sep-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.9.0&quot;&gt;Version 24.9.0 (Current)&lt;/a&gt; — Sep 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;http.shouldUpgradeCallback&lt;/code&gt;&lt;/strong&gt; lets servers control HTTP upgrades.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sqlite&lt;/code&gt;: tagged-template support, plus ERM cleanup and an exported
&lt;code&gt;Session&lt;/code&gt; class.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;worker&lt;/code&gt;: new heap profile API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-22200-jod-lts--sep-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.20.0&quot;&gt;Version 22.20.0 ‘Jod’ (LTS)&lt;/a&gt; — Sep 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Brotli lands in &lt;code&gt;CompressionStream&lt;/code&gt; / &lt;code&gt;DecompressionStream&lt;/code&gt;&lt;/strong&gt; on the LTS
line.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;test_runner&lt;/code&gt;: object property mocking.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http&lt;/code&gt;: new &lt;code&gt;Agent.agentKeepAliveTimeoutBuffer&lt;/code&gt; option; &lt;code&gt;http2&lt;/code&gt; gains raw
header arrays in &lt;code&gt;h2Stream.respond&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;SEA (single executable apps): &lt;code&gt;execArgv&lt;/code&gt; / &lt;code&gt;execArgvExtension&lt;/code&gt; in the config.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-2480-current--sep-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.8.0&quot;&gt;Version 24.8.0 (Current)&lt;/a&gt; — Sep 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Post-quantum crypto wave&lt;/strong&gt;: SLH-DSA KeyObject/sign/verify, Ed448 and
ML-DSA context parameters in both &lt;code&gt;node:crypto&lt;/code&gt; and Web Cryptography.&lt;/li&gt;
&lt;li&gt;Argon2 and KMAC algorithms added to Web Cryptography.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;worker&lt;/code&gt;: CPU profile APIs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v320--sep-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.2.0&quot;&gt;v3.2.0&lt;/a&gt; — Sep 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New feature: &lt;code&gt;highlightsFromPoint&lt;/code&gt; (split out of the CSS highlight API).
1084 features tracked, 88% BCD coverage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v310--sep-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.1.0&quot;&gt;v3.1.0&lt;/a&gt; — Sep 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New features: &lt;code&gt;input-color-alpha&lt;/code&gt; (alpha/colorspace on &lt;code&gt;input type=color&lt;/code&gt;)
and &lt;code&gt;Map.prototype.getOrInsert&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v300--sep-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v3.0.0&quot;&gt;v3.0.0&lt;/a&gt; — Sep 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Feature IDs can now redirect&lt;/strong&gt; (moves and splits) — looking up an ID may
return redirect data instead of regular feature data.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;caniuse&lt;/code&gt;, &lt;code&gt;group&lt;/code&gt;, &lt;code&gt;snapshot&lt;/code&gt;, and &lt;code&gt;spec&lt;/code&gt; values are now always arrays of
strings (previously &lt;code&gt;string | string[]&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2490--sep-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.49.0&quot;&gt;v2.49.0&lt;/a&gt; — Sep 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New feature: &lt;strong&gt;&lt;code&gt;corner-shape&lt;/code&gt;&lt;/strong&gt;. &lt;code&gt;target-within&lt;/code&gt; marked as discouraged.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2470--sep-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.47.0&quot;&gt;v2.47.0&lt;/a&gt; — Sep 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New features: &lt;code&gt;heading-selectors&lt;/code&gt;, &lt;code&gt;periodic-background-sync&lt;/code&gt;,
&lt;code&gt;viewport-segments&lt;/code&gt;, &lt;code&gt;webauthn-signals&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v719--sep-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.9&quot;&gt;v7.1.9&lt;/a&gt; — Sep 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Element.scrollIntoView&lt;/code&gt; options gain compat data for the new &lt;code&gt;container&lt;/code&gt;
option; Chrome 144 release data added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v718--sep-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.8&quot;&gt;v7.1.8&lt;/a&gt; — Sep 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Safari 26.1 release data; &lt;code&gt;position-area&lt;/code&gt; gains &lt;code&gt;span-left&lt;/code&gt; / &lt;code&gt;span-right&lt;/code&gt;
values.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v715--sep-12-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.5&quot;&gt;v7.1.5&lt;/a&gt; — Sep 12, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Document.ariaNotify&lt;/code&gt; / &lt;code&gt;Element.ariaNotify&lt;/code&gt; tracked (screen-reader
notifications without live regions).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v713--sep-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.3&quot;&gt;v7.1.3&lt;/a&gt; — Sep 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;IndexedDB &lt;code&gt;getAllRecords&lt;/code&gt; (&lt;code&gt;IDBIndex&lt;/code&gt;, &lt;code&gt;IDBObjectStore&lt;/code&gt;, new &lt;code&gt;IDBRecord&lt;/code&gt;)
and CSS &lt;code&gt;@scope&lt;/code&gt; support in selector nesting tracked.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v915--sep-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.1.5&quot;&gt;v9.1.5&lt;/a&gt; — Sep 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CSF: support &lt;code&gt;satisfies x as y&lt;/code&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v914--sep-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.1.4&quot;&gt;v9.1.4&lt;/a&gt; — Sep 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Svelte: &lt;code&gt;@sveltejs/vite-plugin-svelte&lt;/code&gt; v6 support; Svelte &amp;#x26; Vue get a
framework-specific &lt;code&gt;docgen&lt;/code&gt; option to disable docgen processing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v732--sep-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.3.2&quot;&gt;v7.3.2&lt;/a&gt; — Sep 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Drawer: &lt;code&gt;temporary&lt;/code&gt; variant now renders with &lt;code&gt;dialog&lt;/code&gt; role and &lt;code&gt;aria-modal&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;New codemod converts top-level imports to path imports.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;jotai&quot;&gt;Jotai&lt;/h2&gt;
&lt;h3 id=&quot;v2150--sep-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.15.0&quot;&gt;v2.15.0&lt;/a&gt; — Sep 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;External building blocks surface&lt;/strong&gt; for library authors.&lt;/li&gt;
&lt;li&gt;⚠ Drops &lt;code&gt;atom.unstable_is&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2140--sep-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.14.0&quot;&gt;v2.14.0&lt;/a&gt; — Sep 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Atoms with a default update function can now return reset.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1120--sep-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.12.0&quot;&gt;v1.12.0&lt;/a&gt; — Sep 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Adapter surfaces &lt;strong&gt;low-level network error details&lt;/strong&gt;, attaching the original
error via &lt;code&gt;cause&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Fetch adapter: &lt;code&gt;fetch&lt;/code&gt;, &lt;code&gt;Request&lt;/code&gt;, &lt;code&gt;Response&lt;/code&gt; env config variables.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;JSON.parse&lt;/code&gt; reviver support; &lt;code&gt;AxiosResponse&lt;/code&gt; allows custom headers types.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;10170--sep-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.17.0&quot;&gt;10.17.0&lt;/a&gt; — Sep 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Nuxt: server middleware instrumentation.&lt;/li&gt;
&lt;li&gt;Node: http integration split into composable parts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10150--sep-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.15.0&quot;&gt;10.15.0&lt;/a&gt; — Sep 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hono instrumentation&lt;/strong&gt; (Node handler + Cloudflare &lt;code&gt;honoIntegration&lt;/code&gt; with
error filtering).&lt;/li&gt;
&lt;li&gt;AWS: Lambda extension enabled by default when using the Lambda layer.&lt;/li&gt;
&lt;li&gt;Browser: &lt;code&gt;setActiveSpanInBrowser&lt;/code&gt; to set an active span.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10130--sep-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.13.0&quot;&gt;10.13.0&lt;/a&gt; — Sep 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Browser: &lt;strong&gt;explicitly end the pageload span&lt;/strong&gt; via &lt;code&gt;reportPageLoaded&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GoogleGenerativeAI&lt;/code&gt; instrumentation (core + node).&lt;/li&gt;
&lt;li&gt;⚠ Node no longer drops 300 and 304 status codes by default.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10100--sep-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.10.0&quot;&gt;10.10.0&lt;/a&gt; — Sep 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Browser: &lt;code&gt;propagateTraceparent&lt;/code&gt; SDK option.&lt;/li&gt;
&lt;li&gt;Next.js: Turbopack source maps auto-generated and uploaded via compiler hook.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1551--sep-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.55.1&quot;&gt;v1.55.1&lt;/a&gt; — Sep 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Browser roll: Chromium 140, Firefox 141, WebKit 26.0.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;turborepo-v257--sep-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.5.7&quot;&gt;Turborepo v2.5.7&lt;/a&gt; — Sep 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;$TURBO_EXTENDS$&lt;/code&gt;&lt;/strong&gt; — extend config from non-root &lt;code&gt;turbo.json&lt;/code&gt; files.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;create-turbo&lt;/code&gt;: &lt;code&gt;--no-git&lt;/code&gt; flag; TUI shortcut for clearing task logs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-cli&quot;&gt;TanStack CLI&lt;/h2&gt;
&lt;h3 id=&quot;v0240--sep-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.24.0&quot;&gt;v0.24.0&lt;/a&gt; — Sep 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;create-tsrouter-app&lt;/code&gt; adds &lt;strong&gt;Storybook support&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-form&quot;&gt;TanStack Form&lt;/h2&gt;
&lt;h3 id=&quot;v1210--sep-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.21.0&quot;&gt;v1.21.0&lt;/a&gt; — Sep 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Form Devtools&lt;/strong&gt; land in core.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1200--sep-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.20.0&quot;&gt;v1.20.0&lt;/a&gt; — Sep 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;React: &lt;code&gt;onChangeListenTo&lt;/code&gt; / &lt;code&gt;onBlurListenTo&lt;/code&gt; in &lt;code&gt;withFieldGroup&lt;/code&gt; fields.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v5900--sep-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.90.0&quot;&gt;v5.90.0&lt;/a&gt; — Sep 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Angular: integrates with Angular v19+ &lt;code&gt;PendingTasks&lt;/code&gt; for &lt;code&gt;whenStable&lt;/code&gt;
support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5890--sep-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.89.0&quot;&gt;v5.89.0&lt;/a&gt; — Sep 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;context&lt;/code&gt; passed to &lt;code&gt;mutationFn&lt;/code&gt; and mutation callbacks.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5870--sep-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.87.0&quot;&gt;v5.87.0&lt;/a&gt; — Sep 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;timeoutManager&lt;/code&gt; allows swapping &lt;code&gt;setTimeout&lt;/code&gt; / &lt;code&gt;setInterval&lt;/code&gt;
implementations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5860--sep-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.86.0&quot;&gt;v5.86.0&lt;/a&gt; — Sep 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;streamedQuery&lt;/code&gt;: custom reducer support; ⚠ its &lt;code&gt;queryFn&lt;/code&gt; option renamed to
&lt;code&gt;streamFn&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11320--sep-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.132.0&quot;&gt;v1.132.0&lt;/a&gt; — Sep 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TanStack Start reaches RC.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11321--sep-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.132.1&quot;&gt;v1.132.1&lt;/a&gt; — Sep 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Start overhaul: middleware reworked, &lt;code&gt;registerGlobalMiddleware&lt;/code&gt; removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v113221--sep-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.132.21&quot;&gt;v1.132.21&lt;/a&gt; — Sep 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;React Router: &lt;strong&gt;API middlewares&lt;/strong&gt; added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v113133--sep-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.131.33&quot;&gt;v1.131.33&lt;/a&gt; — Sep 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Start: environment functions for &lt;code&gt;createIsomorphicFn&lt;/code&gt; and &lt;code&gt;envOnly&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): React, TypeScript, JavaScript / TC39,
     Vite, Tailwind CSS (4.1.13 patch), Astro, React Hook Form, Zod (locale
     patches), i18next, Konva (10.0.0 shipped with no feature notes), Lodash,
     Notistack, Convex, PostHog JS, video.js, Vitest, TanStack Store, and the
     remaining TanStack packages --&gt;</content:encoded></item><item><title>Radar — August 2025</title><link>https://devpebe.com/radar/2025-08/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-08/</guid><description>Radar digest for 2025-08 — what changed in the working stack, distilled from release notes.</description><pubDate>Sun, 31 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-08-01 → 2025-09-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-2470-current--aug-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.7.0&quot;&gt;Version 24.7.0 (Current)&lt;/a&gt; — Aug 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Post-quantum crypto lands&lt;/strong&gt;: ML-KEM (FIPS 203) via new
&lt;code&gt;crypto.encapsulate&lt;/code&gt;/&lt;code&gt;crypto.decapsulate&lt;/code&gt;, ML-DSA (FIPS 204) in
&lt;code&gt;crypto.sign&lt;/code&gt;/&lt;code&gt;verify&lt;/code&gt;, plus ChaCha20-Poly1305, &lt;code&gt;subtle.getPublicKey&lt;/code&gt;, and
&lt;code&gt;SubtleCrypto.supports&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;execArgv&lt;/code&gt; policies for embedders: &lt;code&gt;&quot;none&quot;&lt;/code&gt;, &lt;code&gt;&quot;cli&quot;&lt;/code&gt;
(&lt;code&gt;--node-options=&quot;…&quot;&lt;/code&gt;), or &lt;code&gt;&quot;env&quot;&lt;/code&gt; (default, &lt;code&gt;NODE_OPTIONS&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-2460-current--aug-14-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.6.0&quot;&gt;Version 24.6.0 (Current)&lt;/a&gt; — Aug 14, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;NODE_USE_SYSTEM_CA=1&lt;/code&gt;&lt;/strong&gt; — use the system CA store.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zlib&lt;/code&gt;: dictionary support in &lt;code&gt;zstdCompress&lt;/code&gt;/&lt;code&gt;zstdDecompress&lt;/code&gt;; &lt;code&gt;fs&lt;/code&gt; gains
&lt;code&gt;Utf8Stream&lt;/code&gt; (SonicBoom ported into core).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http&lt;/code&gt;: new &lt;code&gt;server.keepAliveTimeoutBuffer&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-22190-jod-lts--aug-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.19.0&quot;&gt;Version 22.19.0 ‘Jod’ (LTS)&lt;/a&gt; — Aug 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--experimental-wasm-modules&lt;/code&gt; unflagged&lt;/strong&gt;; &lt;code&gt;tls.setDefaultCACertificates&lt;/code&gt;
and &lt;code&gt;process.threadCpuUsage&lt;/code&gt; added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v2450--aug-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.45.0&quot;&gt;v2.45.0&lt;/a&gt; — Aug 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;strong&gt;Explicit resource management&lt;/strong&gt;,
&lt;code&gt;navigator.scheduling.isInputPending&lt;/code&gt;, and &lt;code&gt;Object.hasOwn&lt;/code&gt; features.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2440--aug-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.44.0&quot;&gt;v2.44.0&lt;/a&gt; — Aug 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Local Network Access replaces Private Network Access&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v710--aug-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.1.0&quot;&gt;v7.1.0&lt;/a&gt; — Aug 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bun joins the browser data&lt;/strong&gt; (all releases since 1.0.0), plus
&lt;code&gt;Document.adoptedStyleSheets&lt;/code&gt; mutability data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v700--aug-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v7.0.0&quot;&gt;v7.0.0&lt;/a&gt; — Aug 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;BCD v7&lt;/strong&gt;: &lt;code&gt;VersionValue&lt;/code&gt; is now &lt;code&gt;string | false&lt;/code&gt;;
&lt;code&gt;version_removed&lt;/code&gt;/&lt;code&gt;version_last&lt;/code&gt; are plain strings — breaking for data
consumers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v613--aug-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.1.3&quot;&gt;v6.1.3&lt;/a&gt; — Aug 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: CSS &lt;strong&gt;&lt;code&gt;@function&lt;/code&gt; at-rule&lt;/strong&gt; and dashed functions, the
&lt;strong&gt;&lt;code&gt;Integrity-Policy&lt;/code&gt;&lt;/strong&gt; headers, and &lt;code&gt;DigitalCredential.toJSON&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v612--aug-12-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.1.2&quot;&gt;v6.1.2&lt;/a&gt; — Aug 12, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;&lt;code&gt;caret-animation&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;scroll-target-group&lt;/code&gt;&lt;/strong&gt;, and
&lt;strong&gt;&lt;code&gt;view-transition-group&lt;/code&gt;&lt;/strong&gt; CSS properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v611--aug-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.1.1&quot;&gt;v6.1.1&lt;/a&gt; — Aug 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: CSS &lt;strong&gt;&lt;code&gt;:heading&lt;/code&gt; selectors&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;corner-shape&lt;/code&gt;&lt;/strong&gt; values
(bevel, notch, round, scoop, square); Edge 142 added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v730--aug-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.3.0&quot;&gt;v7.3.0&lt;/a&gt; — Aug 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;nativeColor&lt;/code&gt; feature&lt;/strong&gt; — uses CSS instead of JavaScript for color
manipulation, with support for modern color spaces.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Accordion&lt;/code&gt; gains a &lt;code&gt;region&lt;/code&gt; slot; &lt;code&gt;Switch&lt;/code&gt; gets &lt;code&gt;role=&quot;switch&quot;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;zod&quot;&gt;Zod&lt;/h2&gt;
&lt;h3 id=&quot;v410--aug-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v4.1.0&quot;&gt;v4.1.0&lt;/a&gt; — Aug 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Codecs&lt;/strong&gt; — bidirectional schemas: &lt;code&gt;encode&lt;/code&gt; runs transforms &lt;code&gt;B-&gt;A&lt;/code&gt;, pipes
execute in reverse; defaults/prefaults and catch apply forward-only.&lt;/li&gt;
&lt;li&gt;Ships ready-made codecs: &lt;code&gt;stringToNumber&lt;/code&gt;, &lt;code&gt;stringToInt&lt;/code&gt;,
&lt;code&gt;isoDatetimeToDate&lt;/code&gt;, &lt;code&gt;epochSecondsToDate&lt;/code&gt;, and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;jotai&quot;&gt;Jotai&lt;/h2&gt;
&lt;h3 id=&quot;v2130--aug-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.13.0&quot;&gt;v2.13.0&lt;/a&gt; — Aug 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Deprecated dev store dropped&lt;/strong&gt;; &lt;code&gt;@babel/{core,template}&lt;/code&gt; become optional
peer dependencies.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2540--aug-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.4.0&quot;&gt;v25.4.0&lt;/a&gt; — Aug 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New selector API&lt;/strong&gt; (&lt;code&gt;enableSelector: true&lt;/code&gt;) for TypeScript IDE
performance; &lt;code&gt;&quot;optimize&quot;&lt;/code&gt; mode handles dictionaries of any size.&lt;/li&gt;
&lt;li&gt;Companion &lt;code&gt;@i18next-selector/codemod&lt;/code&gt; and &lt;code&gt;@i18next-selector/vite-plugin&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;konva&quot;&gt;Konva&lt;/h2&gt;
&lt;h3 id=&quot;1000-0--aug-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/konvajs/konva/releases/tag/10.0.0-0&quot;&gt;10.0.0-0&lt;/a&gt; — Aug 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Konva 10 preview&lt;/strong&gt;: &lt;code&gt;miter-limit&lt;/code&gt; support and corner radius for regular
polygons.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;1070--aug-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.7.0&quot;&gt;10.7.0&lt;/a&gt; — Aug 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cloudflare: &lt;code&gt;instrumentPrototypeMethods&lt;/code&gt; for &lt;strong&gt;Durable Object RPC methods&lt;/strong&gt;;
AWS streaming handlers; streamed Anthropic AI responses.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;1060--aug-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.6.0&quot;&gt;10.6.0&lt;/a&gt; — Aug 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Node: &lt;strong&gt;Anthropic AI integration&lt;/strong&gt; and a &lt;strong&gt;Hono&lt;/strong&gt; instrumentation
interface; automatic ESM wrapping on AWS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;1040--aug-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.4.0&quot;&gt;10.4.0&lt;/a&gt; — Aug 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Node: new &lt;strong&gt;&lt;code&gt;ignoreStaticAssets&lt;/code&gt;&lt;/strong&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;1020--aug-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.2.0&quot;&gt;10.2.0&lt;/a&gt; — Aug 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;ignoreSpans&lt;/code&gt;&lt;/strong&gt; option; OpenAI instrumentation on Cloudflare and
Vercel Edge; token accumulation for &lt;code&gt;gen_ai.invoke_agent&lt;/code&gt; spans.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1550--aug-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.55.0&quot;&gt;v1.55.0&lt;/a&gt; — Aug 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;testStepInfo.titlePath&lt;/code&gt;&lt;/strong&gt; — full title path from test file through steps.&lt;/li&gt;
&lt;li&gt;Codegen can generate &lt;strong&gt;automatic &lt;code&gt;toBeVisible&lt;/code&gt; assertions&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;⚠ Dropped support for Chromium extension manifest v2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;turborepo-v256--aug-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.5.6&quot;&gt;Turborepo v2.5.6&lt;/a&gt; — Aug 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Watch Mode now works with &lt;code&gt;--root-turbo-json&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-cli&quot;&gt;TanStack CLI&lt;/h2&gt;
&lt;h3 id=&quot;v0190--aug-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.19.0&quot;&gt;v0.19.0&lt;/a&gt; — Aug 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Scaffolded apps move to the &lt;strong&gt;new TanStack Devtools&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0180--aug-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.18.0&quot;&gt;v0.18.0&lt;/a&gt; — Aug 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;@tanstack/create-start&lt;/code&gt;&lt;/strong&gt; package.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-form&quot;&gt;TanStack Form&lt;/h2&gt;
&lt;h3 id=&quot;v1190--aug-7-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.19.0&quot;&gt;v1.19.0&lt;/a&gt; — Aug 7, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core: &lt;strong&gt;form identifiers&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1170--aug-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.17.0&quot;&gt;v1.17.0&lt;/a&gt; — Aug 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alternative validation methods&lt;/strong&gt; added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1160--aug-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.16.0&quot;&gt;v1.16.0&lt;/a&gt; — Aug 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;onSubmitMeta&lt;/code&gt; now passed to &lt;code&gt;onSubmitInvalid&lt;/code&gt; and &lt;code&gt;listeners.onSubmit&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v5850--aug-12-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.85.0&quot;&gt;v5.85.0&lt;/a&gt; — Aug 12, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Solid devtools gain a &lt;strong&gt;panel export&lt;/strong&gt;; devtools browser extension now
documented for Firefox and Edge.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11310--aug-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.131.0&quot;&gt;v1.131.0&lt;/a&gt; — Aug 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Query integration restructured&lt;/strong&gt; — new &lt;code&gt;@tanstack/react-router-ssr-query&lt;/code&gt;
package.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v113130--aug-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.131.30&quot;&gt;v1.131.30&lt;/a&gt; — Aug 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Faster &lt;code&gt;replaceEqualDeep&lt;/code&gt; and &lt;code&gt;deepEqual&lt;/code&gt; in router-core.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window: React, TypeScript, JavaScript / TC39, Vite, Tailwind CSS, Astro, Storybook, React Hook Form, Axios, Lodash, Notistack, Convex, PostHog JS, video.js, Vitest, TanStack AI, TanStack Charts, TanStack Config, TanStack DB, TanStack Devtools, TanStack Highlight, TanStack Hotkeys, TanStack Intent, TanStack Markdown, TanStack Pacer, TanStack Persist, TanStack Ranger, TanStack Redact, TanStack Store, TanStack Table, TanStack Template, TanStack Time, TanStack Virtual, TanStack Workflow --&gt;</content:encoded></item><item><title>Radar — July 2025</title><link>https://devpebe.com/radar/2025-07/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-07/</guid><description>Radar digest for 2025-07 — what changed in the working stack, distilled from release notes.</description><pubDate>Thu, 31 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-07-01 → 2025-08-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-2450-current--jul-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.5.0&quot;&gt;Version 24.5.0 (Current)&lt;/a&gt; — Jul 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;worker&lt;/code&gt;: &lt;strong&gt;Web Locks API&lt;/strong&gt; added.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dns&lt;/code&gt;: support max timeout; &lt;code&gt;--cpu-prof-name&lt;/code&gt; accepts a &lt;code&gt;${pid}&lt;/code&gt; placeholder.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;net.blocklist&lt;/code&gt; gains file save and file management.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-22180-jod-lts--jul-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.18.0&quot;&gt;Version 22.18.0 ‘Jod’ (LTS)&lt;/a&gt; — Jul 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;import.meta.main&lt;/code&gt;&lt;/strong&gt; implemented.&lt;/li&gt;
&lt;li&gt;Permission model flags propagate on spawn, plus &lt;code&gt;permission.has(addon)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sqlite&lt;/code&gt;: &lt;code&gt;readBigInts&lt;/code&gt; option at connection level; new &lt;code&gt;--watch-kill-signal&lt;/code&gt;
flag.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-2440-current--jul-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.4.0&quot;&gt;Version 24.4.0 (Current)&lt;/a&gt; — Jul 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fs&lt;/code&gt;: &lt;strong&gt;disposable &lt;code&gt;mkdtempSync&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;crypto.hash&lt;/code&gt; supports &lt;code&gt;outputLength&lt;/code&gt; for XOF functions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v2430--jul-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.43.0&quot;&gt;v2.43.0&lt;/a&gt; — Jul 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;strong&gt;Sanitizer API&lt;/strong&gt; feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2420--jul-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.42.0&quot;&gt;v2.42.0&lt;/a&gt; — Jul 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add compat key for &lt;strong&gt;CSS &lt;code&gt;if()&lt;/code&gt;&lt;/strong&gt;; &lt;code&gt;ImageBitmapRenderingContext&lt;/code&gt; split into
its own feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2410--jul-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.41.0&quot;&gt;v2.41.0&lt;/a&gt; — Jul 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;strong&gt;&lt;code&gt;sibling-count()&lt;/code&gt; and &lt;code&gt;sibling-index()&lt;/code&gt;&lt;/strong&gt; feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v6035--jul-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.35&quot;&gt;v6.0.35&lt;/a&gt; — Jul 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;&lt;code&gt;ToggleEvent.source&lt;/code&gt;&lt;/strong&gt; and a batch of WebRTC
&lt;code&gt;inbound-rtp&lt;/code&gt; stats (freeze/pause counts, assembly time); Firefox 144 added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v6030--jul-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.30&quot;&gt;v6.0.30&lt;/a&gt; — Jul 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Trusted Types enforcement&lt;/strong&gt; keys across the injection sinks
(&lt;code&gt;innerHTML&lt;/code&gt;, &lt;code&gt;Document.write&lt;/code&gt;, &lt;code&gt;insertAdjacentHTML&lt;/code&gt;, &lt;code&gt;DOMParser&lt;/code&gt;, …).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v6028--jul-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.28&quot;&gt;v6.0.28&lt;/a&gt; — Jul 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;CSS custom functions&lt;/strong&gt; (&lt;code&gt;CSSFunctionRule&lt;/code&gt;,
&lt;code&gt;CSSFunctionDeclarations&lt;/code&gt;) and the &lt;code&gt;Link&lt;/code&gt; header &lt;code&gt;blocking&lt;/code&gt; parameter;
popover &lt;code&gt;source&lt;/code&gt; option parameters renamed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v910--jul-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.1.0&quot;&gt;v9.1.0&lt;/a&gt; — Jul 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved toolbar and object-control &lt;strong&gt;accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Play functions abort on HMR; animations no longer pause outside Vitest
Playwright environments.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v720--jul-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.2.0&quot;&gt;v7.2.0&lt;/a&gt; — Jul 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;modularCssLayers&lt;/code&gt; theme option&lt;/strong&gt; — split styles into multiple CSS
layers.&lt;/li&gt;
&lt;li&gt;Emotion cache no longer reused across SSR requests; example added for
&lt;strong&gt;React Router v7&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;react-hook-form&quot;&gt;React Hook Form&lt;/h2&gt;
&lt;h3 id=&quot;version-7610--jul-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/react-hook-form/react-hook-form/releases/tag/v7.61.0&quot;&gt;Version 7.61.0&lt;/a&gt; — Jul 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;subscribe&lt;/code&gt;&lt;/strong&gt;: to the entire form with a condition on updated values, or to
a specific form value state.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;zod&quot;&gt;Zod&lt;/h2&gt;
&lt;h3 id=&quot;v4014--jul-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v4.0.14&quot;&gt;v4.0.14&lt;/a&gt; — Jul 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JSON Schema draft-04 output&lt;/strong&gt;; improved recursive tuple inference.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v405--jul-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v4.0.5&quot;&gt;v4.0.5&lt;/a&gt; — Jul 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support &lt;strong&gt;pipes in discriminated unions&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v32568--jul-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v3.25.68&quot;&gt;v3.25.68&lt;/a&gt; — Jul 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;strong&gt;&lt;code&gt;z.stringFormat&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2531--jul-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.3.1&quot;&gt;v25.3.1&lt;/a&gt; — Jul 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Warn if the legacy &lt;code&gt;interpolation.format&lt;/code&gt; function is still used.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;12571--jul-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.257.1&quot;&gt;1.257.1&lt;/a&gt; — Jul 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;captureException&lt;/code&gt; now &lt;strong&gt;returns capture results&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;1000--jul-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/10.0.0&quot;&gt;10.0.0&lt;/a&gt; — Jul 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Sentry 10&lt;/strong&gt;: bumps to &lt;strong&gt;OpenTelemetry v2&lt;/strong&gt;, removes FID web vital
collection, &lt;code&gt;BaseClient&lt;/code&gt;, the deprecated logger, and the experimental
&lt;code&gt;enableLogs&lt;/code&gt;/&lt;code&gt;beforeSendLog&lt;/code&gt; options.&lt;/li&gt;
&lt;li&gt;Replay: &lt;code&gt;autoFlushOnFeedback&lt;/code&gt; promoted to default.&lt;/li&gt;
&lt;li&gt;Astro 5: request route parametrization, server- and client-side.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9430--jul-29-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.43.0&quot;&gt;9.43.0&lt;/a&gt; — Jul 29, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MCP server instrumentation&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9400--jul-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.40.0&quot;&gt;9.40.0&lt;/a&gt; — Jul 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Node: &lt;strong&gt;OpenAI integration&lt;/strong&gt; (chat completions and responses APIs).&lt;/li&gt;
&lt;li&gt;Browser: &lt;code&gt;webWorkerIntegration&lt;/code&gt; / &lt;code&gt;registerWebWorker&lt;/code&gt; sync debugIds between
worker and main thread; ⚠ &lt;code&gt;logger&lt;/code&gt; deprecated in favor of &lt;code&gt;debug&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9390--jul-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.39.0&quot;&gt;9.39.0&lt;/a&gt; — Jul 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Node: &lt;strong&gt;drop 401–404 and 3xx status code spans by default&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Next.js: client-side parameterized routes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9360--jul-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.36.0&quot;&gt;9.36.0&lt;/a&gt; — Jul 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;node-core&lt;/code&gt; SDK&lt;/strong&gt; for setups that bring their own OpenTelemetry;
⚠ ANR integration deprecated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1540--jul-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.54.0&quot;&gt;v1.54.0&lt;/a&gt; — Jul 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Cookies gain &lt;strong&gt;&lt;code&gt;partitionKey&lt;/code&gt;&lt;/strong&gt; (CHIPS partitioned cookies) in
&lt;code&gt;browserContext.cookies&lt;/code&gt;/&lt;code&gt;addCookies&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--user-data-dir&lt;/code&gt; in multiple commands — reuse auth/browsing state between
sessions; &lt;code&gt;location&lt;/code&gt; property in test annotations.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;-gv&lt;/code&gt; removed (use &lt;code&gt;--grep-invert&lt;/code&gt;); &lt;code&gt;npx playwright open&lt;/code&gt; no longer opens
the recorder (use &lt;code&gt;codegen&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;turborepo-v255--jul-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.5.5&quot;&gt;Turborepo v2.5.5&lt;/a&gt; — Jul 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Opt into breaking changes and pre-stable features early&lt;/strong&gt; via &lt;code&gt;turbo.json&lt;/code&gt;
configuration.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;turbo.json&lt;/code&gt; allows trailing commas; Windows user profile variables in env
pass-through.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-cli&quot;&gt;TanStack CLI&lt;/h2&gt;
&lt;h3 id=&quot;v0170--jul-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.17.0&quot;&gt;v0.17.0&lt;/a&gt; — Jul 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MCP support&lt;/strong&gt; added to the create-tanstack scaffolding CLI.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-form&quot;&gt;TanStack Form&lt;/h2&gt;
&lt;h3 id=&quot;v1150--jul-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.15.0&quot;&gt;v1.15.0&lt;/a&gt; — Jul 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;React: new &lt;strong&gt;&lt;code&gt;withFieldGroup&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1140--jul-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.14.0&quot;&gt;v1.14.0&lt;/a&gt; — Jul 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Solid: &lt;strong&gt;&lt;code&gt;createFormHook&lt;/code&gt;&lt;/strong&gt; added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v5840--jul-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.84.0&quot;&gt;v5.84.0&lt;/a&gt; — Jul 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Devtools: setting to &lt;strong&gt;hide disabled queries&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5830--jul-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.83.0&quot;&gt;v5.83.0&lt;/a&gt; — Jul 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core: &lt;code&gt;QueryObserver&lt;/code&gt; returns an &lt;strong&gt;&lt;code&gt;isEnabled&lt;/code&gt; flag&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5820--jul-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.82.0&quot;&gt;v5.82.0&lt;/a&gt; — Jul 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;React: &lt;strong&gt;&lt;code&gt;mutationOptions&lt;/code&gt;&lt;/strong&gt; helper.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11300--jul-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.130.0&quot;&gt;v1.130.0&lt;/a&gt; — Jul 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;React Router: &lt;strong&gt;&lt;code&gt;disableGlobalCatchBoundary&lt;/code&gt; option&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11298--jul-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.129.8&quot;&gt;v1.129.8&lt;/a&gt; — Jul 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;LRU cache in front of &lt;code&gt;parsePathname&lt;/code&gt;; square brackets for character
escaping in paths.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11283--jul-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.128.3&quot;&gt;v1.128.3&lt;/a&gt; — Jul 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prefixes and suffixes for path params&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11280--jul-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.128.0&quot;&gt;v1.128.0&lt;/a&gt; — Jul 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Optional path params&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11270--jul-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.127.0&quot;&gt;v1.127.0&lt;/a&gt; — Jul 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;seroval used for SSR&lt;/strong&gt; serialization.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11250--jul-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.125.0&quot;&gt;v1.125.0&lt;/a&gt; — Jul 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Per-route &lt;code&gt;ssr&lt;/code&gt; setting&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window: React, TypeScript, JavaScript / TC39, Vite, Tailwind CSS, Astro, Jotai, Axios, Konva, Lodash, Notistack, Convex, video.js, Vitest, TanStack AI, TanStack Charts, TanStack Config, TanStack DB, TanStack Devtools, TanStack Highlight, TanStack Hotkeys, TanStack Intent, TanStack Markdown, TanStack Pacer, TanStack Persist, TanStack Ranger, TanStack Redact, TanStack Store, TanStack Table, TanStack Template, TanStack Time, TanStack Virtual, TanStack Workflow --&gt;</content:encoded></item><item><title>Radar — June 2025</title><link>https://devpebe.com/radar/2025-06/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-06/</guid><description>Radar digest for 2025-06 — what changed in the working stack, distilled from release notes.</description><pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-06-01 → 2025-07-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;javascript--tc39&quot;&gt;JavaScript / TC39&lt;/h2&gt;
&lt;h3 id=&quot;es2025--jun-29-2025&quot;&gt;&lt;a href=&quot;https://github.com/tc39/ecma262/releases/tag/es2025&quot;&gt;ES2025&lt;/a&gt; — Jun 29, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ECMAScript 2025 (16th edition) finalized&lt;/strong&gt; — approved by TC39 in
February 2025 and by Ecma on June 25th, 2025; the spec snapshot lives at
&lt;a href=&quot;https://tc39.es/ecma262/2025/&quot;&gt;tc39.es/ecma262/2025&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-2430-current--jun-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.3.0&quot;&gt;Version 24.3.0 (Current)&lt;/a&gt; — Jun 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Type stripping loses its experimental warning&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;test_runner&lt;/code&gt;: support object property mocking.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;url&lt;/code&gt;: new &lt;code&gt;fileURLToPathBuffer&lt;/code&gt; API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-2420-current--jun-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.2.0&quot;&gt;Version 24.2.0 (Current)&lt;/a&gt; — Jun 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;Symbol.dispose&lt;/code&gt;/&lt;code&gt;asyncDispose&lt;/code&gt; graduate&lt;/strong&gt; from experimental.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;http&lt;/code&gt;: deprecate instantiating classes without &lt;code&gt;new&lt;/code&gt;; &lt;code&gt;util.isNativeError&lt;/code&gt;
deprecated in favor of &lt;code&gt;Error.isError&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Config file gains namespace options support; &lt;code&gt;FileHandle&lt;/code&gt; readableWebStream
gets an &lt;code&gt;autoClose&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-22170-jod-lts--jun-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.17.0&quot;&gt;Version 22.17.0 ‘Jod’ (LTS)&lt;/a&gt; — Jun 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;assert.partialDeepStrictEqual&lt;/code&gt; marked &lt;strong&gt;stable&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-20193-iron-lts--jun-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v20.19.3&quot;&gt;Version 20.19.3 ‘Iron’ (LTS)&lt;/a&gt; — Jun 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;WebCrypto &lt;strong&gt;Ed25519 and X25519 graduate as stable&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v2400--jun-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.40.0&quot;&gt;v2.40.0&lt;/a&gt; — Jun 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add feature for &lt;strong&gt;Scoped custom element registries&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2390--jun-18-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.39.0&quot;&gt;v2.39.0&lt;/a&gt; — Jun 18, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;strong&gt;Summarizer API&lt;/strong&gt; and &lt;strong&gt;CSS gap decorations&lt;/strong&gt; features.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2380--jun-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.38.0&quot;&gt;v2.38.0&lt;/a&gt; — Jun 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;clip-path-animatable&lt;/code&gt; and &lt;code&gt;viewport-unit-variants&lt;/code&gt; are now Baseline
Widely Available.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;&amp;#x3C;dialog closedby&gt;&lt;/code&gt; feature, Baseline Limited Availability.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2370--jun-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.37.0&quot;&gt;v2.37.0&lt;/a&gt; — Jun 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;print-color-adjust&lt;/code&gt; is now Baseline Newly Available.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v6026--jun-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.26&quot;&gt;v6.0.26&lt;/a&gt; — Jun 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;&lt;code&gt;HTMLSelectedContentElement&lt;/code&gt;&lt;/strong&gt; and
&lt;code&gt;Intl.supportedValuesOf&lt;/code&gt; key parameters; Chrome 141 / Firefox 143 added to
browser data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v6023--jun-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.23&quot;&gt;v6.0.23&lt;/a&gt; — Jun 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: CSS &lt;strong&gt;&lt;code&gt;sibling-count()&lt;/code&gt; and &lt;code&gt;sibling-index()&lt;/code&gt;&lt;/strong&gt; types.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v6022--jun-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.22&quot;&gt;v6.0.22&lt;/a&gt; — Jun 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Safari 26&lt;/strong&gt; enters the browser data, along with CSS &lt;strong&gt;&lt;code&gt;contrast-color()&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v6020--jun-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.20&quot;&gt;v6.0.20&lt;/a&gt; — Jun 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;code&gt;view-transition-name: match-element&lt;/code&gt; and SVG &lt;code&gt;&amp;#x3C;discard&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;astro&quot;&gt;Astro&lt;/h2&gt;
&lt;h3 id=&quot;astro5100--jun-19-2025&quot;&gt;&lt;a href=&quot;https://github.com/withastro/astro/releases/tag/astro%405.10.0&quot;&gt;astro@5.10.0&lt;/a&gt; — Jun 19, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Image attributes &lt;code&gt;loading=&quot;eager&quot;&lt;/code&gt;, &lt;code&gt;decoding=&quot;sync&quot;&lt;/code&gt;,
&lt;code&gt;fetchpriority=&quot;high&quot;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v9014--jun-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.0.14&quot;&gt;v9.0.14&lt;/a&gt; — Jun 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vite 7 support&lt;/strong&gt; — &lt;code&gt;vite&lt;/code&gt; peerDependencies range extended to &lt;code&gt;7.0.0&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v9013--jun-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.0.13&quot;&gt;v9.0.13&lt;/a&gt; — Jun 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Next.js-Vite: &lt;strong&gt;support Next.js v15.4&lt;/strong&gt;; array-based catch-all route segments
in AppRouterProvider.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v9012--jun-18-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.0.12&quot;&gt;v9.0.12&lt;/a&gt; — Jun 18, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Addon Vitest: support init in &lt;strong&gt;Vitest ≥ 3.2&lt;/strong&gt;; better monorepo upgrades.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v711--jun-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.1.1&quot;&gt;v7.1.1&lt;/a&gt; — Jun 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Chip&lt;/code&gt; gains slots and &lt;code&gt;slotProps&lt;/code&gt;; &lt;code&gt;TablePaginationActions&lt;/code&gt; exported as a
new component.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;zod&quot;&gt;Zod&lt;/h2&gt;
&lt;h3 id=&quot;v32566--jun-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v3.25.66&quot;&gt;v3.25.66&lt;/a&gt; — Jun 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ (v4 work) &lt;code&gt;ZodObject&lt;/code&gt; default changed to &lt;code&gt;$strip&lt;/code&gt;; &lt;code&gt;inst.shape&lt;/code&gt; set in
Zod Mini.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v32558--jun-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v3.25.58&quot;&gt;v3.25.58&lt;/a&gt; — Jun 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(v4 work) &lt;strong&gt;Preserve function types in &lt;code&gt;.meta&lt;/code&gt;&lt;/strong&gt;; Pashto locale added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v1100--jun-14-2025&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.10.0&quot;&gt;v1.10.0&lt;/a&gt; — Jun 14, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Types: improved &lt;code&gt;fetchOptions&lt;/code&gt; interface.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2530--jun-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.3.0&quot;&gt;v25.3.0&lt;/a&gt; — Jun 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Formatting functions now work with plural and interpolation&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;12560--jun-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.256.0&quot;&gt;1.256.0&lt;/a&gt; — Jun 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Push replay and person data to Intercom and Crisp chat&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12510--jun-12-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.251.0&quot;&gt;1.251.0&lt;/a&gt; — Jun 12, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved &lt;strong&gt;surveys accessibility&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12495--jun-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.249.5&quot;&gt;1.249.5&lt;/a&gt; — Jun 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Exception rate limiter by type.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;9330--jun-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.33.0&quot;&gt;9.33.0&lt;/a&gt; — Jun 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Node: &lt;strong&gt;postgres.js instrumentation&lt;/strong&gt;; opt-in &lt;code&gt;vercelAiIntegration&lt;/code&gt; on
Cloudflare and Vercel Edge.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9320--jun-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.32.0&quot;&gt;9.32.0&lt;/a&gt; — Jun 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;@sentry/pino-transport&lt;/code&gt;&lt;/strong&gt; — send pino logs to Sentry.&lt;/li&gt;
&lt;li&gt;Cloudflare: &lt;code&gt;instrumentWorkflowWithSentry&lt;/code&gt; for Workflows; browser CLS
sources land as span attributes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9310--jun-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.31.0&quot;&gt;9.31.0&lt;/a&gt; — Jun 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Next.js: option for an &lt;strong&gt;auto-generated random tunnel route&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Feature flags: capture flag evaluations on spans.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9270--jun-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.27.0&quot;&gt;9.27.0&lt;/a&gt; — Jun 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;React Router: component annotation plugin, plus wrappers for server loaders
and actions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1530--jun-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.53.0&quot;&gt;v1.53.0&lt;/a&gt; — Jun 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Browser lineup: Chromium 138, Firefox 139, WebKit 18.5.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v320--jun-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v3.2.0&quot;&gt;v3.2.0&lt;/a&gt; — Jun 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;vi.mockObject&lt;/code&gt;&lt;/strong&gt; to automock any object; &lt;code&gt;ctx.signal&lt;/code&gt; provided to tests.&lt;/li&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;workspace&lt;/code&gt; deprecated in favor of &lt;code&gt;projects&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;watchTriggerPatterns&lt;/code&gt; and &lt;code&gt;sequence.groupOrder&lt;/code&gt; options.&lt;/li&gt;
&lt;li&gt;Explicit Resource Management support in mocked functions; initial
&lt;strong&gt;Temporal equality&lt;/strong&gt; support; &lt;strong&gt;Vite 7 support&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v322--jun-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v3.2.2&quot;&gt;v3.2.2&lt;/a&gt; — Jun 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support &lt;strong&gt;rolldown-vite&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v5814--jun-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.81.4&quot;&gt;v5.81.4&lt;/a&gt; — Jun 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;createSyncStoragePersister&lt;/code&gt; deprecated&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v4400--jun-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v4.40.0&quot;&gt;v4.40.0&lt;/a&gt; — Jun 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;v5 types backported; ⚠ &lt;code&gt;isLoading&lt;/code&gt; deprecated in favor of &lt;code&gt;isPending&lt;/code&gt; in
mutation observer results.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11230--jun-29-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.123.0&quot;&gt;v1.123.0&lt;/a&gt; — Jun 29, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;forcePending&lt;/code&gt; added to &lt;code&gt;router.invalidate&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11220--jun-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.122.0&quot;&gt;v1.122.0&lt;/a&gt; — Jun 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Optional &lt;strong&gt;&lt;code&gt;shellComponent&lt;/code&gt; on the root route&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window: React, TypeScript, Vite, Tailwind CSS, React Hook Form, Jotai, Konva, Lodash, Notistack, Convex, video.js, Turborepo, TanStack AI, TanStack Charts, TanStack CLI, TanStack Config, TanStack DB, TanStack Devtools, TanStack Form, TanStack Highlight, TanStack Hotkeys, TanStack Intent, TanStack Markdown, TanStack Pacer, TanStack Persist, TanStack Ranger, TanStack Redact, TanStack Store, TanStack Table, TanStack Template, TanStack Time, TanStack Virtual, TanStack Workflow --&gt;</content:encoded></item><item><title>Radar — May 2025</title><link>https://devpebe.com/radar/2025-05/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-05/</guid><description>Radar digest for 2025-05 — what changed in the working stack, distilled from release notes.</description><pubDate>Sat, 31 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-05-01 → 2025-06-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-2400-current--may-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.0.0&quot;&gt;Version 24.0.0 (Current)&lt;/a&gt; — May 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Node 24&lt;/strong&gt; lands: &lt;code&gt;Float16Array&lt;/code&gt;, explicit resource management, &lt;code&gt;RegExp.escape&lt;/code&gt;,
WebAssembly Memory64, and &lt;code&gt;Error.isError&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;⚠ Runtime deprecation of &lt;code&gt;url.parse&lt;/code&gt; — use the WHATWG URL API instead.&lt;/li&gt;
&lt;li&gt;⚠ Removal of deprecated &lt;code&gt;tls.createSecurePair&lt;/code&gt;; runtime deprecations of
&lt;code&gt;SlowBuffer&lt;/code&gt; and instantiating REPL without &lt;code&gt;new&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-22160-jod-lts--may-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.16.0&quot;&gt;Version 22.16.0 ‘Jod’ (LTS)&lt;/a&gt; — May 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;import.meta&lt;/code&gt; properties graduate&lt;/strong&gt; from experimental, along with multiple
other APIs.&lt;/li&gt;
&lt;li&gt;Top-level Wasm support without package type.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sqlite&lt;/code&gt;: &lt;code&gt;StatementSync.prototype.columns&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Config file support&lt;/strong&gt; — default config as &lt;code&gt;node.config.json&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-2410-current--may-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v24.1.0&quot;&gt;Version 24.1.0 (Current)&lt;/a&gt; — May 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fs&lt;/code&gt;: &lt;code&gt;Dir&lt;/code&gt; gains support for explicit resource management.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v2360--may-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.36.0&quot;&gt;v2.36.0&lt;/a&gt; — May 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;strong&gt;auto-sized lazy images&lt;/strong&gt; feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2350--may-12-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.35.0&quot;&gt;v2.35.0&lt;/a&gt; — May 12, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;strong&gt;Observable API&lt;/strong&gt; feature.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;Math.sumPrecise&lt;/code&gt; feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v6019--may-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.19&quot;&gt;v6.0.19&lt;/a&gt; — May 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;&lt;code&gt;Viewport&lt;/code&gt; API&lt;/strong&gt; (&lt;code&gt;window.viewport&lt;/code&gt;, &lt;code&gt;viewport.segments&lt;/code&gt;
for foldables), &lt;code&gt;VideoFrame.rotation&lt;/code&gt;/&lt;code&gt;flip&lt;/code&gt;, and the WebAuthn &lt;strong&gt;PRF
extension&lt;/strong&gt; in &lt;code&gt;CredentialsContainer&lt;/code&gt; create/get.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v6017--may-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.17&quot;&gt;v6.0.17&lt;/a&gt; — May 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: built-in AI &lt;strong&gt;&lt;code&gt;LanguageDetector&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;Translator&lt;/code&gt;&lt;/strong&gt; APIs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v6014--may-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.14&quot;&gt;v6.0.14&lt;/a&gt; — May 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: the &lt;strong&gt;Sanitizer API&lt;/strong&gt; (&lt;code&gt;Element.setHTML&lt;/code&gt;,
&lt;code&gt;Document.parseHTML_static&lt;/code&gt;, &lt;code&gt;Sanitizer&lt;/code&gt; with allow/remove rules).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v6012--may-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.12&quot;&gt;v6.0.12&lt;/a&gt; — May 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: built-in AI &lt;strong&gt;&lt;code&gt;Summarizer&lt;/code&gt; API&lt;/strong&gt; and &lt;code&gt;ImageData.pixelFormat&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h2&gt;
&lt;h3 id=&quot;v416--may-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.1.6&quot;&gt;v4.1.6&lt;/a&gt; — May 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade tool now &lt;strong&gt;converts arbitrary values to named values&lt;/strong&gt; where possible
(e.g. &lt;code&gt;h-[1lh]&lt;/code&gt; to &lt;code&gt;h-lh&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Source maps in development&lt;/strong&gt;, and detailed &lt;code&gt;@source&lt;/code&gt; logging under &lt;code&gt;DEBUG=*&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v900--may-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.0.0&quot;&gt;v9.0.0&lt;/a&gt; — May 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Storybook 9&lt;/strong&gt;: component testing — interactions, accessibility, visual
changes, and coverage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;48% lighter bundle&lt;/strong&gt;, tags-based organization, and story globals.&lt;/li&gt;
&lt;li&gt;⚠ Major upgrades to the Svelte, Next.js, React Native, and Angular frameworks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v903--may-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.0.3&quot;&gt;v9.0.3&lt;/a&gt; — May 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Angular: support v20.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v710--may-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.1.0&quot;&gt;v7.1.0&lt;/a&gt; — May 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Material UI now works with Tailwind CSS v4&lt;/strong&gt; — setup guide published.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BottomNavigationAction&lt;/code&gt; and &lt;code&gt;CardActionArea&lt;/code&gt; gain slots and &lt;code&gt;slotProps&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;zod&quot;&gt;Zod&lt;/h2&gt;
&lt;h3 id=&quot;v32540--may-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v3.25.40&quot;&gt;v3.25.40&lt;/a&gt; — May 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(v4 work) Flatten simple intersections; &lt;strong&gt;OpenAPI-friendly JSON Schema&lt;/strong&gt; for
File schemas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v32525--may-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v3.25.25&quot;&gt;v3.25.25&lt;/a&gt; — May 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(v4 work) JSON Schema: &lt;code&gt;additionalProperties: false&lt;/code&gt; by default for objects
in &lt;code&gt;io:output&lt;/code&gt; mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3244--may-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v3.24.4&quot;&gt;v3.24.4&lt;/a&gt; — May 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Allow &lt;code&gt;HH:MM&lt;/code&gt; format in &lt;code&gt;z.string.datetime&lt;/code&gt; and &lt;code&gt;z.string.time&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;jotai&quot;&gt;Jotai&lt;/h2&gt;
&lt;h3 id=&quot;v2124--may-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.12.4&quot;&gt;v2.12.4&lt;/a&gt; — May 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Deprecate dev store.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2520--may-19-2025&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.2.0&quot;&gt;v25.2.0&lt;/a&gt; — May 19, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;cacheInBuiltFormats&lt;/code&gt;&lt;/strong&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2510--may-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.1.0&quot;&gt;v25.1.0&lt;/a&gt; — May 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;parseMissingKeyHandler&lt;/code&gt; now takes options as parameter, like
&lt;code&gt;missingKeyHandler&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;12480--may-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.248.0&quot;&gt;1.248.0&lt;/a&gt; — May 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“defaults” added to config&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12400--may-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.240.0&quot;&gt;1.240.0&lt;/a&gt; — May 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Surveys: &lt;strong&gt;submit partial responses&lt;/strong&gt; for survey answers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12380--may-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.238.0&quot;&gt;1.238.0&lt;/a&gt; — May 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Allow &lt;strong&gt;ANY or ALL matches&lt;/strong&gt; for triggers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;9160--may-7-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.16.0&quot;&gt;9.16.0&lt;/a&gt; — May 7, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;Vite plugin&lt;/strong&gt; that injects &lt;code&gt;sentryConfig&lt;/code&gt; into the global config.&lt;/li&gt;
&lt;li&gt;Cloudflare: &lt;strong&gt;durable objects support&lt;/strong&gt; and logs exports.&lt;/li&gt;
&lt;li&gt;Node: &lt;strong&gt;Prisma integration by default&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;⚠ Node: drop &lt;code&gt;http.server&lt;/code&gt; spans with 404 status by default.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9180--may-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.18.0&quot;&gt;9.18.0&lt;/a&gt; — May 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Node 24 support&lt;/strong&gt;; OpenTelemetry peer dependencies widened for &lt;strong&gt;Otel v2&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Cloudflare: email, queue, and tail handler support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9200--may-19-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.20.0&quot;&gt;9.20.0&lt;/a&gt; — May 19, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Node: new &lt;code&gt;maxIncomingRequestBodySize&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;React Router: server action instrumentation.&lt;/li&gt;
&lt;li&gt;Replay: default masking list extended with &lt;code&gt;aria-label&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9240--may-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.24.0&quot;&gt;9.24.0&lt;/a&gt; — May 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Angular: peer dependencies bumped for &lt;strong&gt;Angular 20 support&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;turborepo-v254--may-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.5.4&quot;&gt;Turborepo v2.5.4&lt;/a&gt; — May 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;pnpm catalogs support&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Hot-reloading for the &lt;code&gt;no-undeclared-env-vars&lt;/code&gt; ESLint rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;turborepo-v253--may-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.5.3&quot;&gt;Turborepo v2.5.3&lt;/a&gt; — May 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;noUpdateNotifier&lt;/code&gt; option in &lt;code&gt;turbo.json&lt;/code&gt;; momentum-based scrolling in the TUI.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-form&quot;&gt;TanStack Form&lt;/h2&gt;
&lt;h3 id=&quot;v1120--may-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.12.0&quot;&gt;v1.12.0&lt;/a&gt; — May 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New array methods &lt;strong&gt;&lt;code&gt;field.clearValues&lt;/code&gt; and &lt;code&gt;form.clearFieldValues&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1110--may-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.11.0&quot;&gt;v1.11.0&lt;/a&gt; — May 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;form.setErrorMap&lt;/code&gt; extended to &lt;strong&gt;spread errors into fields&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1100--may-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.10.0&quot;&gt;v1.10.0&lt;/a&gt; — May 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Field meta gains &lt;strong&gt;&lt;code&gt;isDefaultValue&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v5790--may-29-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.79.0&quot;&gt;v5.79.0&lt;/a&gt; — May 29, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core: &lt;strong&gt;&lt;code&gt;staleTime: &apos;static&apos;&lt;/code&gt;&lt;/strong&gt; — data that never goes stale.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5760--may-12-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.76.0&quot;&gt;v5.76.0&lt;/a&gt; — May 12, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TanStack Query DevTools for Expo/React Native&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5750--may-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.75.0&quot;&gt;v5.75.0&lt;/a&gt; — May 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core: &lt;strong&gt;&lt;code&gt;refetchMode: &apos;replace&apos;&lt;/code&gt;&lt;/strong&gt; for &lt;code&gt;streamedQuery&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v4390--may-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v4.39.0&quot;&gt;v4.39.0&lt;/a&gt; — May 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;v5 APIs backported to v4&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11200--may-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.120.0&quot;&gt;v1.120.0&lt;/a&gt; — May 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bindings for &lt;code&gt;Route.Link&lt;/code&gt; and &lt;code&gt;routeApi.Link&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11203--may-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.120.3&quot;&gt;v1.120.3&lt;/a&gt; — May 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved type-checking performance of &lt;code&gt;Route.Link&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window: React, TypeScript, JavaScript / TC39, Vite, Astro, React Hook Form, Axios, Konva, Lodash, Notistack, Convex, video.js, Playwright, Vitest, TanStack AI, TanStack Charts, TanStack CLI, TanStack Config, TanStack DB, TanStack Devtools, TanStack Highlight, TanStack Hotkeys, TanStack Intent, TanStack Markdown, TanStack Pacer, TanStack Persist, TanStack Ranger, TanStack Redact, TanStack Store, TanStack Table, TanStack Template, TanStack Time, TanStack Virtual, TanStack Workflow --&gt;</content:encoded></item><item><title>Radar — April 2025</title><link>https://devpebe.com/radar/2025-04/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-04/</guid><description>Radar digest for 2025-04 — what changed in the working stack, distilled from release notes.</description><pubDate>Wed, 30 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-04-01 → 2025-05-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-22150-jod-lts--apr-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.15.0&quot;&gt;Version 22.15.0 ‘Jod’ (LTS)&lt;/a&gt; — Apr 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;System certificate stores&lt;/strong&gt;: &lt;code&gt;--use-system-ca&lt;/code&gt; on Windows, plus reading
certificates from the macOS system store.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assert&lt;/code&gt; implements partial error comparison; DNS gains TLSA record query
and parsing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-23110-current--apr-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v23.11.0&quot;&gt;Version 23.11.0 (Current)&lt;/a&gt; — Apr 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;process.execve&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;StatementSync.prototype.columns&lt;/code&gt; in &lt;code&gt;node:sqlite&lt;/code&gt;; optional callback on
&lt;code&gt;crypto.diffieHellman&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The diff function behind assertion errors is exposed in &lt;code&gt;util&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v2340--apr-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.34.0&quot;&gt;v2.34.0&lt;/a&gt; — Apr 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Baseline Newly Available: iterator methods, single color-stop
gradients, and &lt;code&gt;inert&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2330--apr-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.33.0&quot;&gt;v2.33.0&lt;/a&gt; — Apr 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Baseline Newly Available: &lt;code&gt;@starting-style&lt;/code&gt;, &lt;code&gt;Float16Array&lt;/code&gt;, and
&lt;code&gt;Atomics.pause&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2320--apr-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.32.0&quot;&gt;v2.32.0&lt;/a&gt; — Apr 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Baseline Newly Available: async clipboard &lt;code&gt;supports()&lt;/code&gt; and the Screen
Wake Lock API.&lt;/li&gt;
&lt;li&gt;Added Compression Dictionary Transport and &lt;code&gt;fetchLater&lt;/code&gt; as tracked
features.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v605--apr-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.5&quot;&gt;v6.0.5&lt;/a&gt; — Apr 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: speculation rules &lt;code&gt;tag&lt;/code&gt; and the &lt;code&gt;Sec-Speculation-Tags&lt;/code&gt;
header.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v603--apr-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.3&quot;&gt;v6.0.3&lt;/a&gt; — Apr 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: CSS &lt;code&gt;dynamic-range-limit&lt;/code&gt; and the &lt;code&gt;CaptureController&lt;/code&gt;
zoom APIs (&lt;code&gt;zoomLevel&lt;/code&gt;, &lt;code&gt;forwardWheel&lt;/code&gt;, …).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h2&gt;
&lt;h3 id=&quot;v415--apr-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.1.5&quot;&gt;v4.1.5&lt;/a&gt; — Apr 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;h-lh&lt;/code&gt; / &lt;code&gt;min-h-lh&lt;/code&gt; / &lt;code&gt;max-h-lh&lt;/code&gt; utilities (line-height sizing).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;transition&lt;/code&gt; now covers &lt;code&gt;display&lt;/code&gt;, &lt;code&gt;visibility&lt;/code&gt;, &lt;code&gt;content-visibility&lt;/code&gt;,
&lt;code&gt;overlay&lt;/code&gt;, and &lt;code&gt;pointer-events&lt;/code&gt; — simplifying &lt;code&gt;@starting-style&lt;/code&gt; usage.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@tailwindcss/upgrade&lt;/code&gt; can upgrade between v4.x versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v414--apr-14-2025&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.1.4&quot;&gt;v4.1.4&lt;/a&gt; — Apr 14, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Experimental &lt;code&gt;@tailwindcss/oxide-wasm32-wasi&lt;/code&gt; target — Tailwind in
browser environments like StackBlitz.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v410--apr-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.1.0&quot;&gt;v4.1.0&lt;/a&gt; — Apr 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New variants: &lt;strong&gt;&lt;code&gt;details-content&lt;/code&gt;&lt;/strong&gt;, &lt;code&gt;inverted-colors&lt;/code&gt;, &lt;code&gt;noscript&lt;/code&gt;,
&lt;code&gt;user-valid&lt;/code&gt; / &lt;code&gt;user-invalid&lt;/code&gt;, and &lt;code&gt;pointer-*&lt;/code&gt; / &lt;code&gt;any-pointer-*&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;New utilities: &lt;code&gt;wrap-anywhere&lt;/code&gt; / &lt;code&gt;wrap-break-word&lt;/code&gt; / &lt;code&gt;wrap-normal&lt;/code&gt;, safe
alignment, and &lt;code&gt;items-baseline-last&lt;/code&gt; / &lt;code&gt;self-baseline-last&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@source inline(…)&lt;/code&gt; and &lt;code&gt;@source not inline(…)&lt;/code&gt; for explicit content
candidates.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;astro&quot;&gt;Astro&lt;/h2&gt;
&lt;h3 id=&quot;astro570--apr-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/withastro/astro/releases/tag/astro%405.7.0&quot;&gt;astro@5.7.0&lt;/a&gt; — Apr 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;astro:config/client&lt;/code&gt; and &lt;code&gt;astro:config/server&lt;/code&gt; virtual modules expose
environment-safe config information.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v702--apr-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.0.2&quot;&gt;v7.0.2&lt;/a&gt; — Apr 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Autocomplete can render a custom single value.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;StyledEngineProvider&lt;/code&gt; caching speeds up Jest test runs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v190--apr-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.9.0&quot;&gt;v1.9.0&lt;/a&gt; — Apr 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AxiosHeaders.getSetCookie&lt;/code&gt; retrieves &lt;code&gt;Set-Cookie&lt;/code&gt; header values.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;i18next&quot;&gt;i18next&lt;/h2&gt;
&lt;h3 id=&quot;v2500--apr-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/i18next/i18next/releases/tag/v25.0.0&quot;&gt;v25.0.0&lt;/a&gt; — Apr 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Major: &lt;code&gt;changeLanguage&lt;/code&gt; always resolves via
&lt;code&gt;getBestMatchFromCodes&lt;/code&gt;&lt;/strong&gt; (string or array).&lt;/li&gt;
&lt;li&gt;Best-match fallback now tries a language code with the same script.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;12368--apr-29-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.236.8&quot;&gt;1.236.8&lt;/a&gt; — Apr 29, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reduced bundle size&lt;/strong&gt; through property mangling.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12360--apr-14-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.236.0&quot;&gt;1.236.0&lt;/a&gt; — Apr 14, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Pinterest, Snapchat, and Quora click IDs captured as campaign params.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12356--apr-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.235.6&quot;&gt;1.235.6&lt;/a&gt; — Apr 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PostHogProvider&lt;/code&gt; works better with SSR; new React error boundary for
error tracking.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;9140--apr-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.14.0&quot;&gt;9.14.0&lt;/a&gt; — Apr 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Supabase integration&lt;/strong&gt;; trace propagation for React Router.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9130--apr-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.13.0&quot;&gt;9.13.0&lt;/a&gt; — Apr 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;wrapMcpServerWithSentry&lt;/code&gt;&lt;/strong&gt; — instrument MCP servers from
&lt;code&gt;@modelcontextprotocol/sdk&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Winston logger support in Node; new &lt;code&gt;Bun.serve&lt;/code&gt; APIs supported.&lt;/li&gt;
&lt;li&gt;Offline transport can delay sending.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9120--apr-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.12.0&quot;&gt;9.12.0&lt;/a&gt; — Apr 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Feedback screenshots gain highlighting and hiding controls.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;httpIntegration&lt;/code&gt; gets &lt;code&gt;ignoreIncomingRequestBody&lt;/code&gt;; browser tracing gets
an &lt;code&gt;onRequestSpanStart&lt;/code&gt; hook.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9110--apr-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.11.0&quot;&gt;9.11.0&lt;/a&gt; — Apr 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;consoleLoggingIntegration&lt;/code&gt; for logs; error messages are no longer
truncated.&lt;/li&gt;
&lt;li&gt;Next.js: release injection under Turbopack.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1520--apr-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.52.0&quot;&gt;v1.52.0&lt;/a&gt; — Apr 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;expect(locator).toContainClass&lt;/code&gt; assertion.&lt;/li&gt;
&lt;li&gt;Aria snapshots: &lt;code&gt;/children&lt;/code&gt; for strict matching and &lt;code&gt;/url&lt;/code&gt; for links.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;testProject.workers&lt;/code&gt; for per-project concurrency;
&lt;code&gt;testConfig.failOnFlakyTests&lt;/code&gt; fails the run on flaky tests.&lt;/li&gt;
&lt;li&gt;⚠ Glob patterns: &lt;code&gt;?&lt;/code&gt; wildcard and &lt;code&gt;[]&lt;/code&gt; ranges no longer supported — use
regular expressions.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;route.continue&lt;/code&gt; no longer allows overriding the &lt;code&gt;Cookie&lt;/code&gt; header.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v312--apr-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v3.1.2&quot;&gt;v3.1.2&lt;/a&gt; — Apr 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Improved browser-mode parallelisation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v251--apr-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.5.1&quot;&gt;v2.5.1&lt;/a&gt; — Apr 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Concurrency configurable via config file or environment; &lt;code&gt;turbo ls&lt;/code&gt; JSON
output includes dependents.&lt;/li&gt;
&lt;li&gt;TUI: configurable scrollback length and more scrolling keybinds.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v250--apr-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.5.0&quot;&gt;v2.5.0&lt;/a&gt; — Apr 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;turbo clone&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JSONC support&lt;/strong&gt; in turbo.json; &lt;code&gt;with&lt;/code&gt; is now public.&lt;/li&gt;
&lt;li&gt;Boundaries: tsconfig path aliases and package-name-as-tag punning.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-cli&quot;&gt;TanStack CLI&lt;/h2&gt;
&lt;h3 id=&quot;v0120--apr-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.12.0&quot;&gt;v0.12.0&lt;/a&gt; — Apr 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;T3 Env add-on in &lt;code&gt;create-tanstack&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-form&quot;&gt;TanStack Form&lt;/h2&gt;
&lt;h3 id=&quot;v190--apr-29-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.9.0&quot;&gt;v1.9.0&lt;/a&gt; — Apr 29, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FieldMeta.isValid&lt;/code&gt; added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v180--apr-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.8.0&quot;&gt;v1.8.0&lt;/a&gt; — Apr 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Debounced form listeners&lt;/strong&gt; (building on the form listeners added in
v1.7.0).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v160--apr-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.6.0&quot;&gt;v1.6.0&lt;/a&gt; — Apr 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Svelte adapter&lt;/strong&gt; (&lt;code&gt;svelte-form&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v130--apr-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.3.0&quot;&gt;v1.3.0&lt;/a&gt; — Apr 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;canSubmitWhenInvalid&lt;/code&gt; form option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v5749--apr-29-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.74.9&quot;&gt;v5.74.9&lt;/a&gt; — Apr 29, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core switched from &lt;code&gt;Object.defineProperty&lt;/code&gt; to Proxies.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5740--apr-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.74.0&quot;&gt;v5.74.0&lt;/a&gt; — Apr 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;angular-persist-query-client&lt;/code&gt; for Angular.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11180--apr-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.118.0&quot;&gt;v1.118.0&lt;/a&gt; — Apr 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Nitro zero-config support in Start.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11170--apr-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.117.0&quot;&gt;v1.117.0&lt;/a&gt; — Apr 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Dynamic &lt;code&gt;ViewTransition&lt;/code&gt; types in router-core.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11160--apr-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.116.0&quot;&gt;v1.116.0&lt;/a&gt; — Apr 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ClientOnly&lt;/code&gt; exported from react-router.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window: React, TypeScript, JavaScript / TC39, Vite,
     Storybook, React Hook Form, Zod, Jotai, Konva, Lodash, Notistack,
     Convex, video.js, TanStack Table, and the remaining TanStack packages --&gt;</content:encoded></item><item><title>Radar — March 2025</title><link>https://devpebe.com/radar/2025-03/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-03/</guid><description>Radar digest for 2025-03 — what changed in the working stack, distilled from release notes.</description><pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-03-01 → 2025-04-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;react&quot;&gt;React&lt;/h2&gt;
&lt;h3 id=&quot;1910--mar-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/react/react/releases/tag/v19.1.0&quot;&gt;19.1.0&lt;/a&gt; — Mar 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Owner Stacks&lt;/strong&gt;: a development-only stack trace showing which components
rendered a component, via the new &lt;code&gt;captureOwnerStack&lt;/code&gt; API.&lt;/li&gt;
&lt;li&gt;Suspense boundaries usable anywhere — client, server, and during
hydration — with improved hydration scheduling and boundary-retry GC
pressure.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;useId&lt;/code&gt; format changed from &lt;code&gt;:r123:&lt;/code&gt; to &lt;code&gt;«r123»&lt;/code&gt; (now valid CSS
selectors).&lt;/li&gt;
&lt;li&gt;Dev-only warning for null/undefined returned to &lt;code&gt;useEffect&lt;/code&gt;,
&lt;code&gt;useInsertionEffect&lt;/code&gt;, and &lt;code&gt;useLayoutEffect&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-23100-current--mar-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v23.10.0&quot;&gt;Version 23.10.0 (Current)&lt;/a&gt; — Mar 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;tls.getCACertificates&lt;/code&gt;&lt;/strong&gt; and &lt;code&gt;v8.getCppHeapStatistics&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--use-system-ca&lt;/code&gt; supports intermediate certs; test_runner’s TypeScript
default glob changed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-20190-iron-lts--mar-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v20.19.0&quot;&gt;Version 20.19.0 ‘Iron’ (LTS)&lt;/a&gt; — Mar 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;require(esm)&lt;/code&gt; lands on the 20.x line&lt;/strong&gt;: the &lt;code&gt;module-sync&lt;/code&gt; exports
condition, &lt;code&gt;__esModule&lt;/code&gt; on require’d ESM, and
&lt;code&gt;process.features.require_module&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;worker.postMessageToThread&lt;/code&gt; backported.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v2310--mar-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.31.0&quot;&gt;v2.31.0&lt;/a&gt; — Mar 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;strong&gt;CSS &lt;code&gt;if()&lt;/code&gt;&lt;/strong&gt; and &lt;code&gt;dialog.requestClose&lt;/code&gt; as tracked features.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2300--mar-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.30.0&quot;&gt;v2.30.0&lt;/a&gt; — Mar 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;strong&gt;scroll markers&lt;/strong&gt;, &lt;strong&gt;CSS &lt;code&gt;@function&lt;/code&gt;&lt;/strong&gt;, and single color-stop
gradients.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2290--mar-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.29.0&quot;&gt;v2.29.0&lt;/a&gt; — Mar 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;::scroll-button&lt;/code&gt; and &lt;code&gt;::column&lt;/code&gt; pseudo-elements — CSS-only
controls for navigating scrollable containers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2280--mar-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.28.0&quot;&gt;v2.28.0&lt;/a&gt; — Mar 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;modal&lt;/code&gt; is now Baseline Widely Available&lt;/strong&gt;;
&lt;code&gt;contenteditable=plaintext-only&lt;/code&gt; and &lt;code&gt;Intl.DurationFormat&lt;/code&gt; reach Baseline
Newly Available.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2270--mar-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.27.0&quot;&gt;v2.27.0&lt;/a&gt; — Mar 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;code&gt;beforeunload&lt;/code&gt; &lt;strong&gt;regressed from Baseline&lt;/strong&gt; to Limited Availability —
it doesn’t work in Safari for iOS.&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;moveBefore&lt;/code&gt; DOM methods and &lt;code&gt;scroll-initial-target&lt;/code&gt; features.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v601--mar-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.1&quot;&gt;v6.0.1&lt;/a&gt; — Mar 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;compression dictionary transport&lt;/strong&gt; —
&lt;code&gt;link rel=&quot;compression-dictionary&quot;&lt;/code&gt;, &lt;code&gt;dcb&lt;/code&gt;/&lt;code&gt;dcz&lt;/code&gt;/&lt;code&gt;zstd&lt;/code&gt; content
encodings, and the &lt;code&gt;Available-Dictionary&lt;/code&gt; header.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v600--mar-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v6.0.0&quot;&gt;v6.0.0&lt;/a&gt; — Mar 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ BCD 6.0: &lt;code&gt;html.manifest.*&lt;/code&gt; data moved to &lt;code&gt;manifest.webapp.*&lt;/code&gt; — a
breaking path change for consumers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v572--mar-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v5.7.2&quot;&gt;v5.7.2&lt;/a&gt; — Mar 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data for &lt;strong&gt;customizable &lt;code&gt;&amp;#x3C;select&gt;&lt;/code&gt;&lt;/strong&gt;: the &lt;code&gt;&amp;#x3C;selectedcontent&gt;&lt;/code&gt;
element, &lt;code&gt;::picker&lt;/code&gt; / &lt;code&gt;::picker-icon&lt;/code&gt; / &lt;code&gt;::checkmark&lt;/code&gt; selectors, and
&lt;code&gt;appearance: base&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h2&gt;
&lt;h3 id=&quot;v4015--mar-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.0.15&quot;&gt;v4.0.15&lt;/a&gt; — Mar 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--theme(…)&lt;/code&gt; now returns CSS variables from theme variables wherever CSS
variables are valid.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v4010--mar-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.0.10&quot;&gt;v4.0.10&lt;/a&gt; — Mar 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;col-&amp;#x3C;number&gt;&lt;/code&gt; and &lt;code&gt;row-&amp;#x3C;number&gt;&lt;/code&gt; utilities for &lt;code&gt;grid-column&lt;/code&gt; /
&lt;code&gt;grid-row&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;⚠ Removed &lt;code&gt;max-w-auto&lt;/code&gt; and &lt;code&gt;max-h-auto&lt;/code&gt; (they generated invalid CSS).&lt;/li&gt;
&lt;li&gt;Brand-new candidate extractor for correctness and performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v868--mar-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v8.6.8&quot;&gt;v8.6.8&lt;/a&gt; — Mar 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Portable stories can be used in SSR (React); Svelte typings include
Svelte 5 function components.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v700--mar-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.0.0&quot;&gt;v7.0.0&lt;/a&gt; — Mar 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Material UI v7 stable&lt;/strong&gt; — see the upgrade guide.&lt;/li&gt;
&lt;li&gt;⚠ Minimum TypeScript raised to 4.9; the lab package drops its
&lt;code&gt;@mui/base&lt;/code&gt; dependency.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v648--mar-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v6.4.8&quot;&gt;v6.4.8&lt;/a&gt; — Mar 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;enableCssLayer&lt;/code&gt; prop on &lt;code&gt;StyledEngineProvider&lt;/code&gt;; Tooltip supports
auto placement.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v647--mar-5-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v6.4.7&quot;&gt;v6.4.7&lt;/a&gt; — Mar 5, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ThemeProvider&lt;/code&gt; gets a &lt;code&gt;storageManager&lt;/code&gt; prop.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;react-hook-form&quot;&gt;React Hook Form&lt;/h2&gt;
&lt;h3 id=&quot;v7550--mar-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/react-hook-form/react-hook-form/releases/tag/v7.55.0&quot;&gt;v7.55.0&lt;/a&gt; — Mar 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;subscribe&lt;/code&gt; API&lt;/strong&gt; — subscribe to form state updates without
re-renders, even outside a React component.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;konva&quot;&gt;Konva&lt;/h2&gt;
&lt;h3 id=&quot;9320--mar-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/konvajs/konva/releases/tag/9.3.20&quot;&gt;9.3.20&lt;/a&gt; — Mar 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Better text calculations for the &lt;code&gt;ellipsis&lt;/code&gt; config.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;12330--mar-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.233.0&quot;&gt;1.233.0&lt;/a&gt; — Mar 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Console error capturing&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12310--mar-14-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.231.0&quot;&gt;1.231.0&lt;/a&gt; — Mar 14, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Remote image masking in session replay; blob URLs are no longer
recorded.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12260--mar-4-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.226.0&quot;&gt;1.226.0&lt;/a&gt; — Mar 4, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Web analytics: &lt;code&gt;$session&lt;/code&gt; property object tied to the &lt;code&gt;session_id&lt;/code&gt;
lifecycle.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;9100--mar-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.10.0&quot;&gt;9.10.0&lt;/a&gt; — Mar 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Logs support&lt;/strong&gt; across the SDKs, with &lt;code&gt;beforeSendLog&lt;/code&gt; and parameterized
logs.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;diagnoseSdkConnectivity&lt;/code&gt; — programmatically detect ad blockers and
connectivity issues.&lt;/li&gt;
&lt;li&gt;Tracing performance improvements for the Node SDKs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;990--mar-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.9.0&quot;&gt;9.9.0&lt;/a&gt; — Mar 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Next.js: &lt;code&gt;instrumentation-client.ts&lt;/code&gt; support.&lt;/li&gt;
&lt;li&gt;Browser: &lt;code&gt;previous_trace&lt;/code&gt; span links and &lt;code&gt;logger.X&lt;/code&gt; methods.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;980--mar-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.8.0&quot;&gt;9.8.0&lt;/a&gt; — Mar 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New continuous profiling API for Node; &lt;code&gt;captureReactException&lt;/code&gt; exported.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;960--mar-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.6.0&quot;&gt;9.6.0&lt;/a&gt; — Mar 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;@sentry/tanstackstart-react&lt;/code&gt;&lt;/strong&gt; package added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1510--mar-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.51.0&quot;&gt;v1.51.0&lt;/a&gt; — Mar 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;browserContext.storageState&lt;/code&gt; gets an &lt;strong&gt;&lt;code&gt;indexedDB&lt;/code&gt; option&lt;/strong&gt; — save and
restore IndexedDB contents (e.g. Firebase Authentication tokens).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v310--mar-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v3.1.0&quot;&gt;v3.1.0&lt;/a&gt; — Mar 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;and&lt;/code&gt;, &lt;code&gt;or&lt;/code&gt;, and &lt;code&gt;filter&lt;/code&gt; &lt;strong&gt;locators&lt;/strong&gt; in browser mode.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;configureVitest&lt;/code&gt; plugin hook and &lt;code&gt;--configLoader&lt;/code&gt; CLI option.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;%$&lt;/code&gt; title option injects the test number; &lt;code&gt;--silent=passed-only&lt;/code&gt; logs
failed tasks only.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;diff.maxDepth&lt;/code&gt; option with a finite default to reduce crashes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-cli&quot;&gt;TanStack CLI&lt;/h2&gt;
&lt;h3 id=&quot;v0110--mar-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.11.0&quot;&gt;v0.11.0&lt;/a&gt; — Mar 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;create-start-app&lt;/code&gt;&lt;/strong&gt; for scaffolding Start applications, with
add-ons and overlays.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0100--mar-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.10.0&quot;&gt;v0.10.0&lt;/a&gt; — Mar 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;tRPC support in &lt;code&gt;create-tsrouter-app&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-form&quot;&gt;TanStack Form&lt;/h2&gt;
&lt;h3 id=&quot;v120--mar-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.2.0&quot;&gt;v1.2.0&lt;/a&gt; — Mar 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;serverValidate&lt;/code&gt; now returns the parsed data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v110--mar-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.1.0&quot;&gt;v1.1.0&lt;/a&gt; — Mar 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Form &lt;code&gt;resetField&lt;/code&gt; utility; Solid’s &lt;code&gt;onChange&lt;/code&gt; listener switched to
&lt;code&gt;onInput&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v100--mar-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v1.0.0&quot;&gt;v1.0.0&lt;/a&gt; — Mar 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TanStack Form reaches 1.0&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0470--mar-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v0.47.0&quot;&gt;v0.47.0&lt;/a&gt; — Mar 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;createFormHook&lt;/code&gt; and &lt;code&gt;createFormHookContexts&lt;/code&gt;&lt;/strong&gt; for form composition in
React.&lt;/li&gt;
&lt;li&gt;⚠ TypeScript 5.4 is the new minimum.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v5690--mar-18-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.69.0&quot;&gt;v5.69.0&lt;/a&gt; — Mar 18, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;streamedQuery&lt;/code&gt;&lt;/strong&gt; in query-core.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5670--mar-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.67.0&quot;&gt;v5.67.0&lt;/a&gt; — Mar 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Typed query filters.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11140--mar-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.114.0&quot;&gt;v1.114.0&lt;/a&gt; — Mar 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Devtools consolidated into &lt;code&gt;router-devtools-core&lt;/code&gt; with framework-specific
bindings.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window: TypeScript, JavaScript / TC39, Vite, Astro, Zod,
     Jotai, Axios, i18next, Lodash, Notistack, Convex, video.js, Turborepo,
     TanStack Table, TanStack Virtual, and the remaining TanStack packages --&gt;</content:encoded></item><item><title>Radar — February 2025</title><link>https://devpebe.com/radar/2025-02/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-02/</guid><description>Radar digest for 2025-02 — what changed in the working stack, distilled from release notes.</description><pubDate>Fri, 28 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-02-01 → 2025-03-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-2390-current--feb-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v23.9.0&quot;&gt;Version 23.9.0 (Current)&lt;/a&gt; — Feb 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;dns: TLSA record query and parsing.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;process.threadCpuUsage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--cpu-prof*&lt;/code&gt; flags allowed in &lt;code&gt;NODE_OPTIONS&lt;/code&gt;; &lt;code&gt;--use-system-ca&lt;/code&gt; now works
beyond Windows/macOS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-22140-jod-lts--feb-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.14.0&quot;&gt;Version 22.14.0 ‘Jod’ (LTS)&lt;/a&gt; — Feb 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;module.findPackageJSON&lt;/code&gt;&lt;/strong&gt; util.&lt;/li&gt;
&lt;li&gt;LTS picks up the recent Current-line features: TypeScript in STDIN eval,
glob patterns in the fs &lt;code&gt;exclude&lt;/code&gt; option, &lt;code&gt;process.ref&lt;/code&gt;/&lt;code&gt;unref&lt;/code&gt;, and
TypedArray/DataView in &lt;code&gt;node:sqlite&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-20183-iron-lts--feb-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v20.18.3&quot;&gt;Version 20.18.3 ‘Iron’ (LTS)&lt;/a&gt; — Feb 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Import attributes and JSON modules marked stable&lt;/strong&gt; on the 20.x line.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v2250--feb-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.25.0&quot;&gt;v2.25.0&lt;/a&gt; — Feb 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added the &lt;strong&gt;&lt;code&gt;invoker-commands&lt;/code&gt; feature&lt;/strong&gt; (&lt;code&gt;command&lt;/code&gt;/&lt;code&gt;commandfor&lt;/code&gt;), the CSS
&lt;code&gt;interactivity&lt;/code&gt; feature, and &lt;code&gt;text-autospace&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2240--feb-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.24.0&quot;&gt;v2.24.0&lt;/a&gt; — Feb 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added the &lt;strong&gt;&lt;code&gt;contrast-color()&lt;/code&gt;&lt;/strong&gt; feature; &lt;code&gt;text-underline-offset&lt;/code&gt; split
into its own feature, distinct from &lt;code&gt;text-underline-position&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2230--feb-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.23.0&quot;&gt;v2.23.0&lt;/a&gt; — Feb 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added the &lt;code&gt;inputmode&lt;/code&gt; global HTML attribute, TLS early data (0-RTT), and
the &lt;code&gt;element-capture&lt;/code&gt; feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v5642--feb-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v5.6.42&quot;&gt;v5.6.42&lt;/a&gt; — Feb 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: CSS &lt;strong&gt;&lt;code&gt;font-width&lt;/code&gt; property&lt;/strong&gt; (the modern &lt;code&gt;font-stretch&lt;/code&gt;)
and &lt;code&gt;MediaSession.setScreenshareActive&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5640--feb-18-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v5.6.40&quot;&gt;v5.6.40&lt;/a&gt; — Feb 18, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;&lt;code&gt;AsyncDisposableStack&lt;/code&gt;&lt;/strong&gt; (explicit resource
management), container scroll-state queries (&lt;code&gt;scrollable&lt;/code&gt; / &lt;code&gt;snapped&lt;/code&gt; /
&lt;code&gt;stuck&lt;/code&gt;), and the &lt;code&gt;Sec-CH-UA-Form-Factors&lt;/code&gt; client hint.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5637--feb-7-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v5.6.37&quot;&gt;v5.6.37&lt;/a&gt; — Feb 7, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;code&gt;HTMLDialogElement.closedBy&lt;/code&gt; and &lt;code&gt;requestClose&lt;/code&gt;, plus
the popover &lt;code&gt;hint&lt;/code&gt; value.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h2&gt;
&lt;h3 id=&quot;v408--feb-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.0.8&quot;&gt;v4.0.8&lt;/a&gt; — Feb 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@import&lt;/code&gt; accepts &lt;code&gt;theme(…)&lt;/code&gt; options for stylesheets with more than just
&lt;code&gt;@theme&lt;/code&gt; rules; unused theme variables are no longer emitted.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v405--feb-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.0.5&quot;&gt;v4.0.5&lt;/a&gt; — Feb 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@theme static&lt;/code&gt; — always include theme variables in compiled CSS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;astro&quot;&gt;Astro&lt;/h2&gt;
&lt;h3 id=&quot;astro540--feb-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/withastro/astro/releases/tag/astro%405.4.0&quot;&gt;astro@5.4.0&lt;/a&gt; — Feb 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mergeConfig&lt;/code&gt; and &lt;code&gt;validateConfig&lt;/code&gt; for programmatic Astro configuration.&lt;/li&gt;
&lt;li&gt;New build options: &lt;code&gt;devOutput&lt;/code&gt; (development-style build) and
&lt;code&gt;teardownCompiler&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v860--feb-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v8.6.0&quot;&gt;v8.6.0&lt;/a&gt; — Feb 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Storybook Test installer&lt;/strong&gt; for out-of-the-box tests in new projects.&lt;/li&gt;
&lt;li&gt;Accessibility “todo” workflow (&lt;code&gt;parameters.a11y.test&lt;/code&gt;) to systematically
fix violations.&lt;/li&gt;
&lt;li&gt;80% smaller &lt;code&gt;create-storybook&lt;/code&gt; package; key security fixes for Vite and
esbuild.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v646--feb-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v6.4.6&quot;&gt;v6.4.6&lt;/a&gt; — Feb 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nested theme creation with &lt;code&gt;vars&lt;/code&gt;&lt;/strong&gt; (CSS variables).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;slots&lt;/code&gt;/&lt;code&gt;slotProps&lt;/code&gt; completion wave: Checkbox, Radio, Snackbar, Popover,
Drawer, SpeedDialAction.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;zod&quot;&gt;Zod&lt;/h2&gt;
&lt;h3 id=&quot;v3242--feb-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/colinhacks/zod/releases/tag/v3.24.2&quot;&gt;v3.24.2&lt;/a&gt; — Feb 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;z.custom&lt;/code&gt; now supports async validation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;jotai&quot;&gt;Jotai&lt;/h2&gt;
&lt;h3 id=&quot;v2120--feb-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.12.0&quot;&gt;v2.12.0&lt;/a&gt; — Feb 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core internals exposed, replacing &lt;code&gt;unstable_derive&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;axios&quot;&gt;Axios&lt;/h2&gt;
&lt;h3 id=&quot;v180--feb-26-2025&quot;&gt;&lt;a href=&quot;https://github.com/axios/axios/releases/tag/v1.8.0&quot;&gt;v1.8.0&lt;/a&gt; — Feb 26, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New config option for allowing/ignoring absolute URLs.&lt;/li&gt;
&lt;li&gt;⚠ Code relying on the old behavior now combines base and request URLs
instead of preferring the request URL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;12240--feb-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.224.0&quot;&gt;1.224.0&lt;/a&gt; — Feb 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Quota limiting support for feature flags.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12200--feb-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.220.0&quot;&gt;1.220.0&lt;/a&gt; — Feb 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LLM observability&lt;/strong&gt;: metric and feedback methods.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12180--feb-14-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.218.0&quot;&gt;1.218.0&lt;/a&gt; — Feb 14, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Remote-config feature flag method that bypasses cached values.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;930--feb-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.3.0&quot;&gt;9.3.0&lt;/a&gt; — Feb 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New TanStack Start SDK and React Router SDK&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Remix gains Hydrogen support; &lt;code&gt;forceTransaction&lt;/code&gt; on the tRPC middleware.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;920--feb-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.2.0&quot;&gt;9.2.0&lt;/a&gt; — Feb 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Express v5 support&lt;/strong&gt;; SvelteKit on Cloudflare.&lt;/li&gt;
&lt;li&gt;Span links: &lt;code&gt;addLink(s)&lt;/code&gt; on Sentry and OpenTelemetry spans.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;910--feb-13-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.1.0&quot;&gt;9.1.0&lt;/a&gt; — Feb 13, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;graphqlClientIntegration&lt;/code&gt; for the browser SDK; Pinia v3 support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;900--feb-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/9.0.0&quot;&gt;9.0.0&lt;/a&gt; — Feb 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Major: Node &gt;=18 and TypeScript ~5.0 minimums&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;⚠ IP addresses only collected with &lt;code&gt;sendDefaultPii: true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;⚠ Removed: &lt;code&gt;getCurrentHub&lt;/code&gt;/&lt;code&gt;Hub&lt;/code&gt;, &lt;code&gt;enableTracing&lt;/code&gt;,
&lt;code&gt;autoSessionTracking&lt;/code&gt;, and the metrics API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v305--feb-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v3.0.5&quot;&gt;v3.0.5&lt;/a&gt; — Feb 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Security: remote code execution when a malicious website is visited
while the Vitest API server listens (CVE-2025-24964) — also patched in
v2.1.9 and v1.6.1.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v244--feb-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.4.4&quot;&gt;v2.4.4&lt;/a&gt; — Feb 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;--continue=dependencies-successful&lt;/code&gt; mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v242--feb-12-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.4.2&quot;&gt;v2.4.2&lt;/a&gt; — Feb 12, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Boundaries tags&lt;/strong&gt;; pnpm &lt;code&gt;ignoredOptionalDependencies&lt;/code&gt; respected in the
lockfile.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v241--feb-10-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.4.1&quot;&gt;v2.4.1&lt;/a&gt; — Feb 10, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bun.lock&lt;/code&gt; support; &lt;code&gt;@turbo/codemod&lt;/code&gt; works with custom npm registries.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-cli&quot;&gt;TanStack CLI&lt;/h2&gt;
&lt;h3 id=&quot;v040--feb-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.4.0&quot;&gt;v0.4.0&lt;/a&gt; — Feb 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Experimental &lt;strong&gt;MCP support&lt;/strong&gt;, add-ons from the command line, module
federation, and &lt;code&gt;autoCodeSplitting&lt;/code&gt; on by default.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v010--feb-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/cli/releases/tag/v0.1.0&quot;&gt;v0.1.0&lt;/a&gt; — Feb 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New TanStack package&lt;/strong&gt;: &lt;code&gt;create-tsrouter-app&lt;/code&gt; ships its first release,
with a file-routing template.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-form&quot;&gt;TanStack Form&lt;/h2&gt;
&lt;h3 id=&quot;v0460--feb-28-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v0.46.0&quot;&gt;v0.46.0&lt;/a&gt; — Feb 28, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;TanStack Start support via the &lt;code&gt;react-start&lt;/code&gt; packages.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0440--feb-24-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v0.44.0&quot;&gt;v0.44.0&lt;/a&gt; — Feb 24, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;getAllErrors&lt;/code&gt; on the form API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v0430--feb-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/form/releases/tag/v0.43.0&quot;&gt;v0.43.0&lt;/a&gt; — Feb 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;All &lt;code&gt;validatorAdapter&lt;/code&gt;s removed&lt;/strong&gt; — Standard Schema support covers
Valibot, Zod, and ArkType; Yup is unsupported for now.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;form.errors&lt;/code&gt; is now &lt;code&gt;Record&amp;#x3C;string, StandardSchemaV1Issue[]&gt;&lt;/code&gt; and
&lt;code&gt;field.errors&lt;/code&gt; is &lt;code&gt;StandardSchemaV1Issue[]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;⚠ Vue 3.4 is the new minimum; Vue JSX usage no longer works.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v5663--feb-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.66.3&quot;&gt;v5.66.3&lt;/a&gt; — Feb 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Performance: &lt;code&gt;useQueries&lt;/code&gt; no longer has quadratic cost in the number of
queries.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v11120--feb-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.112.0&quot;&gt;v1.112.0&lt;/a&gt; — Feb 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Server functions can &lt;strong&gt;return a raw &lt;code&gt;Response&lt;/code&gt;&lt;/strong&gt;; “layout” and “pathless
layout” routes are now differentiated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v111110--feb-25-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.111.10&quot;&gt;v1.111.10&lt;/a&gt; — Feb 25, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Start packages renamed to &lt;strong&gt;&lt;code&gt;@tanstack/react-start&lt;/code&gt;&lt;/strong&gt; as Start goes
framework-agnostic.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11080--feb-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.108.0&quot;&gt;v1.108.0&lt;/a&gt; — Feb 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SolidJS driver for TanStack Router&lt;/strong&gt; (&lt;code&gt;@tanstack/solid-router&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11070--feb-19-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.107.0&quot;&gt;v1.107.0&lt;/a&gt; — Feb 19, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AbortSignal&lt;/code&gt; support for server functions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11050--feb-14-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.105.0&quot;&gt;v1.105.0&lt;/a&gt; — Feb 14, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;code&gt;&amp;#x3C;Meta /&gt;&lt;/code&gt; replaced by &lt;strong&gt;&lt;code&gt;&amp;#x3C;HeadContent /&gt;&lt;/code&gt;&lt;/strong&gt;, with dedicated
&lt;code&gt;headScripts&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11030--feb-12-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.103.0&quot;&gt;v1.103.0&lt;/a&gt; — Feb 12, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Static server functions&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v11000--feb-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.100.0&quot;&gt;v1.100.0&lt;/a&gt; — Feb 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;shouldThrow&lt;/code&gt; option for &lt;code&gt;useParams&lt;/code&gt; and &lt;code&gt;useSearch&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-virtual&quot;&gt;TanStack Virtual&lt;/h2&gt;
&lt;h3 id=&quot;v3130--feb-7-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/virtual/releases/tag/v3.13.0&quot;&gt;v3.13.0&lt;/a&gt; — Feb 7, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;useAnimationFrameWithResizeObserver&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v3120--feb-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/virtual/releases/tag/v3.12.0&quot;&gt;v3.12.0&lt;/a&gt; — Feb 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;getVirtualIndexes&lt;/code&gt; API in &lt;code&gt;virtual-core&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window: React, TypeScript, JavaScript / TC39, Vite,
     React Hook Form, i18next, Konva, Lodash, Notistack, Convex, video.js,
     Playwright, TanStack Config, TanStack Table, and the remaining
     TanStack packages --&gt;</content:encoded></item><item><title>Radar — January 2025</title><link>https://devpebe.com/radar/2025-01/</link><guid isPermaLink="true">https://devpebe.com/radar/2025-01/</guid><description>Radar digest for 2025-01 — what changed in the working stack, distilled from release notes.</description><pubDate>Fri, 31 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected release notes for 2025-01-01 → 2025-02-01.
The version links lead to the full release notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;nodejs&quot;&gt;Node.js&lt;/h2&gt;
&lt;h3 id=&quot;version-2370-current--jan-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v23.7.0&quot;&gt;Version 23.7.0 (Current)&lt;/a&gt; — Jan 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;fs: the &lt;code&gt;exclude&lt;/code&gt; option in globs now accepts glob patterns.&lt;/li&gt;
&lt;li&gt;sqlite: &lt;code&gt;StatementSync&lt;/code&gt; supports TypedArray and DataView.&lt;/li&gt;
&lt;li&gt;test_runner: new &lt;code&gt;TestContext.prototype.waitFor&lt;/code&gt;, &lt;code&gt;t.assert.fileSnapshot&lt;/code&gt;,
and &lt;code&gt;assert.register&lt;/code&gt; APIs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-2361-current--jan-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v23.6.1&quot;&gt;Version 23.6.1 (Current)&lt;/a&gt; — Jan 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Security release across all lines&lt;/strong&gt; (also 22.13.1, 20.18.2, 18.20.6):
CVE-2025-23083 — InternalWorker use now throws when the permission model is
enabled (High); CVE-2025-22150 — insufficiently random values in undici
fetch (Medium); plus a Windows &lt;code&gt;path.normalize&lt;/code&gt; traversal fix.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-2360-current--jan-7-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v23.6.0&quot;&gt;Version 23.6.0 (Current)&lt;/a&gt; — Jan 7, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TypeScript support in STDIN eval&lt;/strong&gt; and worker eval input.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;process.ref&lt;/code&gt; and &lt;code&gt;process.unref&lt;/code&gt; methods.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-22130-jod-lts--jan-7-2025&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/releases/tag/v22.13.0&quot;&gt;Version 22.13.0 ‘Jod’ (LTS)&lt;/a&gt; — Jan 7, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;node:sqlite&lt;/code&gt; unflagged&lt;/strong&gt; on the LTS line.&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;assert.partialDeepStrictEqual&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--trace-env&lt;/code&gt; and &lt;code&gt;--trace-env-[js|native]-stack&lt;/code&gt; CLI flags.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;util.styleText&lt;/code&gt; stabilized; the &lt;code&gt;require(esm)&lt;/code&gt; warning now only emits
under &lt;code&gt;--trace-require-module&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;css--web-platform&quot;&gt;CSS / Web platform&lt;/h2&gt;
&lt;h3 id=&quot;v2210--jan-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.21.0&quot;&gt;v2.21.0&lt;/a&gt; — Jan 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added the &lt;strong&gt;&lt;code&gt;&amp;#x3C;meter&gt;&lt;/code&gt; element&lt;/strong&gt; and &lt;code&gt;Atomics.pause&lt;/code&gt; proposal as tracked
features; SVG &lt;code&gt;&amp;#x3C;cursor&gt;&lt;/code&gt; and &lt;code&gt;&amp;#x3C;tref&gt;&lt;/code&gt; marked discouraged.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2200--jan-27-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.20.0&quot;&gt;v2.20.0&lt;/a&gt; — Jan 27, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;strong&gt;container scroll-state queries&lt;/strong&gt; and a discouraged marker for
import assertions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v2160--jan-9-2025&quot;&gt;&lt;a href=&quot;https://github.com/web-platform-dx/web-features/releases/tag/v2.16.0&quot;&gt;v2.16.0&lt;/a&gt; — Jan 9, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Schema addition: features can be annotated with a &lt;strong&gt;&lt;code&gt;discouraged&lt;/code&gt; object&lt;/strong&gt;
marking deprecated/obsolete/legacy features not to build on.&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;anchor-size&lt;/code&gt; rules to anchor positioning and the Barcode Detection
API as tracked features.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;browsers&quot;&gt;Browsers&lt;/h2&gt;
&lt;h3 id=&quot;v5635--jan-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v5.6.35&quot;&gt;v5.6.35&lt;/a&gt; — Jan 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;code&gt;&amp;#x3C;portal&gt;&lt;/code&gt; element / &lt;code&gt;HTMLPortalElement&lt;/code&gt;, multiple import
maps per page (&lt;code&gt;script.type.importmap.multiple_import_maps&lt;/code&gt;), and
&lt;code&gt;&amp;#x3C;meta name=&quot;application-title&quot;&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5632--jan-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v5.6.32&quot;&gt;v5.6.32&lt;/a&gt; — Jan 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;Temporal&lt;/strong&gt; (&lt;code&gt;Temporal.Now.timeZoneId&lt;/code&gt;,
&lt;code&gt;Date.toTemporalInstant&lt;/code&gt;) and the CSS &lt;code&gt;text-edge&lt;/code&gt; type values.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5631--jan-17-2025&quot;&gt;&lt;a href=&quot;https://github.com/mdn/browser-compat-data/releases/tag/v5.6.31&quot;&gt;v5.6.31&lt;/a&gt; — Jan 17, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New compat data: &lt;strong&gt;&lt;code&gt;Element.moveBefore&lt;/code&gt;&lt;/strong&gt; (state-preserving DOM moves),
&lt;code&gt;FileSystemObserver&lt;/code&gt;, &lt;code&gt;Animation.overallProgress&lt;/code&gt;, and
&lt;code&gt;GPUDevice.adapterInfo&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h2&gt;
&lt;h3 id=&quot;v400--jan-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.0.0&quot;&gt;v4.0.0&lt;/a&gt; — Jan 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New build engine&lt;/strong&gt; — the release reports full builds up to 5× faster
and incremental builds over 100× faster.&lt;/li&gt;
&lt;li&gt;Built on modern CSS: cascade layers, registered custom properties with
&lt;code&gt;@property&lt;/code&gt;, and &lt;code&gt;color-mix&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CSS-first configuration&lt;/strong&gt; — customize and extend in CSS instead of a
JavaScript config file, with all design tokens exposed as native CSS
variables.&lt;/li&gt;
&lt;li&gt;First-party Vite plugin; automatic content detection; built-in &lt;code&gt;@import&lt;/code&gt;
support.&lt;/li&gt;
&lt;li&gt;Dynamic utility values and variants; modernized P3 color palette.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;astro&quot;&gt;Astro&lt;/h2&gt;
&lt;h3 id=&quot;astro520--jan-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/withastro/astro/releases/tag/astro%405.2.0&quot;&gt;astro@5.2.0&lt;/a&gt; — Jan 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New virtual modules: &lt;code&gt;astro:config/client&lt;/code&gt; and &lt;code&gt;astro:config/server&lt;/code&gt;
expose config information safe for each environment.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;storybook&quot;&gt;Storybook&lt;/h2&gt;
&lt;h3 id=&quot;v850--jan-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v8.5.0&quot;&gt;v8.5.0&lt;/a&gt; — Jan 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Realtime accessibility tests&lt;/strong&gt; plus project code coverage and focused
tests in the testing module.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;React 19 support&lt;/strong&gt; and an experimental React Native Web Vite framework.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;material-ui&quot;&gt;Material UI&lt;/h2&gt;
&lt;h3 id=&quot;v640--jan-14-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v6.4.0&quot;&gt;v6.4.0&lt;/a&gt; — Jan 14, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;loading&lt;/code&gt; prop on &lt;code&gt;Button&lt;/code&gt; and &lt;code&gt;IconButton&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;CircularProgress indeterminate animation made symmetric and smooth.&lt;/li&gt;
&lt;li&gt;Slider &lt;code&gt;onChangeCommitted&lt;/code&gt; now receives the last argument passed to
&lt;code&gt;onChange&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v641--jan-21-2025&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v6.4.1&quot;&gt;v6.4.1&lt;/a&gt; — Jan 21, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Dialog gets &lt;code&gt;slots&lt;/code&gt; and &lt;code&gt;slotProps&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;@mui/base&lt;/code&gt; deprecation callout added — “Base UI” renamed to “MUI Base”.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;jotai&quot;&gt;Jotai&lt;/h2&gt;
&lt;h3 id=&quot;v2111--jan-20-2025&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.11.1&quot;&gt;v2.11.1&lt;/a&gt; — Jan 20, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;&lt;code&gt;atom.unstable_onInit&lt;/code&gt; hook&lt;/strong&gt; plus atom mount/unmount hooks and an
improved dev store.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;posthog-js&quot;&gt;PostHog JS&lt;/h2&gt;
&lt;h3 id=&quot;12130--jan-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.213.0&quot;&gt;1.213.0&lt;/a&gt; — Jan 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;code&gt;featureFlags.override&lt;/code&gt; deprecated in favor of
&lt;code&gt;featureFlags.overrideFeatureFlags&lt;/code&gt;, which also supports overriding flag
payloads.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12090--jan-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.209.0&quot;&gt;1.209.0&lt;/a&gt; — Jan 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PostHogProvider&lt;/code&gt; now prevents double initialization under
&lt;code&gt;React.StrictMode&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12070--jan-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.207.0&quot;&gt;1.207.0&lt;/a&gt; — Jan 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New ability to &lt;strong&gt;mask PII-containing URL parameters&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;12040--jan-6-2025&quot;&gt;&lt;a href=&quot;https://github.com/PostHog/posthog-js/releases/tag/v1.204.0&quot;&gt;1.204.0&lt;/a&gt; — Jan 6, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;code&gt;sanitize_properties&lt;/code&gt; deprecated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sentry-js&quot;&gt;Sentry JS&lt;/h2&gt;
&lt;h3 id=&quot;8510--jan-22-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/8.51.0&quot;&gt;8.51.0&lt;/a&gt; — Jan 22, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;strong&gt;Unleash integration&lt;/strong&gt; for the browser SDK.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prismaInstrumentation&lt;/code&gt; option on the Prisma integration as an escape
hatch for all Prisma versions.&lt;/li&gt;
&lt;li&gt;⚠ The Deno SDK as published on deno.land is deprecated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;8490--jan-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/getsentry/sentry-javascript/releases/tag/8.49.0&quot;&gt;8.49.0&lt;/a&gt; — Jan 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Offline queue flushes on &lt;code&gt;flush()&lt;/code&gt; and the browser &lt;code&gt;online&lt;/code&gt; event.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ErrorBoundary&lt;/code&gt; gets a &lt;code&gt;handled&lt;/code&gt; prop.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;h3 id=&quot;v1500--jan-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.50.0&quot;&gt;v1.50.0&lt;/a&gt; — Jan 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;timeout&lt;/code&gt; option for individual test steps&lt;/strong&gt;, and &lt;code&gt;test.step.skip&lt;/code&gt; to
disable a step.&lt;/li&gt;
&lt;li&gt;Aria snapshots can now live in separate YAML files
(&lt;code&gt;toMatchAriaSnapshot&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;New &lt;code&gt;expect(locator).toHaveAccessibleErrorMessage&lt;/code&gt; assertion.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;updateSnapshots&lt;/code&gt; gains a &lt;code&gt;changed&lt;/code&gt; mode (⚠ &lt;code&gt;all&lt;/code&gt; now updates every
snapshot, differences or not), with &lt;code&gt;overwrite&lt;/code&gt; and &lt;code&gt;3-way&lt;/code&gt; source update
methods.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;webServer.gracefulShutdown&lt;/code&gt; for a kill signal other than &lt;code&gt;SIGKILL&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vitest&quot;&gt;Vitest&lt;/h2&gt;
&lt;h3 id=&quot;v300--jan-16-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v3.0.0&quot;&gt;v3.0.0&lt;/a&gt; — Jan 16, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vite 6 support&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;⚠ &lt;code&gt;spy.mockReset&lt;/code&gt; behavior changes; &lt;code&gt;spyOn&lt;/code&gt; reuses the mock if a method
is already spied on.&lt;/li&gt;
&lt;li&gt;Test hooks receive the test context; &lt;code&gt;describe(..., { shuffle: boolean })&lt;/code&gt;
is inherited from the parent suite.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v304--jan-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v3.0.4&quot;&gt;v3.0.4&lt;/a&gt; — Jan 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ Security: browser mode no longer serves arbitrary files
(CVE-2025-24963).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;turborepo&quot;&gt;Turborepo&lt;/h2&gt;
&lt;h3 id=&quot;v240--jan-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.4.0&quot;&gt;v2.4.0&lt;/a&gt; — Jan 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;turbo prune&lt;/code&gt; gets a &lt;strong&gt;&lt;code&gt;--use-gitignore&lt;/code&gt; flag&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;affectedPackages&lt;/code&gt; is now lockfile-aware.&lt;/li&gt;
&lt;li&gt;Caching in watch mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v234--jan-23-2025&quot;&gt;&lt;a href=&quot;https://github.com/vercel/turborepo/releases/tag/v2.3.4&quot;&gt;v2.3.4&lt;/a&gt; — Jan 23, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;TUI: keybind popup, persistent preferences, and task-selection pinning.&lt;/li&gt;
&lt;li&gt;Microfrontends config v2 support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-query&quot;&gt;TanStack Query&lt;/h2&gt;
&lt;h3 id=&quot;v5660--jan-31-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.66.0&quot;&gt;v5.66.0&lt;/a&gt; — Jan 31, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The query &lt;code&gt;client&lt;/code&gt; is now available on &lt;code&gt;queryFunctionContext&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5640--jan-11-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.64.0&quot;&gt;v5.64.0&lt;/a&gt; — Jan 11, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Typing &lt;code&gt;QueryKey&lt;/code&gt; and &lt;code&gt;MutationKey&lt;/code&gt; via &lt;code&gt;Register&lt;/code&gt;&lt;/strong&gt; — global key types
without generics.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v5630--jan-8-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/query/releases/tag/v5.63.0&quot;&gt;v5.63.0&lt;/a&gt; — Jan 8, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;useQuery&lt;/code&gt; and &lt;code&gt;useQueries&lt;/code&gt; can opt out of query-cache subscription with
a new &lt;code&gt;subscribed&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tanstack-router&quot;&gt;TanStack Router&lt;/h2&gt;
&lt;h3 id=&quot;v1984--jan-30-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.98.4&quot;&gt;v1.98.4&lt;/a&gt; — Jan 30, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;&lt;code&gt;scrollRestoration: true&lt;/code&gt; becomes the config-driven default path&lt;/strong&gt; —
the &lt;code&gt;&amp;#x3C;ScrollRestoration&gt;&lt;/code&gt; component is deprecated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1980--jan-29-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.98.0&quot;&gt;v1.98.0&lt;/a&gt; — Jan 29, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;remountDeps&lt;/code&gt; for controlling when route components remount.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1960--jan-15-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.96.0&quot;&gt;v1.96.0&lt;/a&gt; — Jan 15, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Framework-agnostic server-function plugin&lt;/strong&gt; — &lt;code&gt;directive-functions-plugin&lt;/code&gt;
and &lt;code&gt;server-functions-plugin&lt;/code&gt; published.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1950--jan-3-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.95.0&quot;&gt;v1.95.0&lt;/a&gt; — Jan 3, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;useCanGoBack&lt;/code&gt; hook.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1940--jan-2-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.94.0&quot;&gt;v1.94.0&lt;/a&gt; — Jan 2, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;linkOptions&lt;/code&gt; accepts arrays, plus &lt;code&gt;ValidateLinkOptions&lt;/code&gt; types.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;v1930--jan-1-2025&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/router/releases/tag/v1.93.0&quot;&gt;v1.93.0&lt;/a&gt; — Jan 1, 2025&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;router.invalidate&lt;/code&gt; can be awaited for SWR-style flows.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- Quiet this window (features-wise): React, TypeScript, JavaScript / TC39,
     Vite, React Hook Form, Zod, Axios, i18next, Konva, Lodash, Notistack,
     Convex, video.js, TanStack Config, TanStack Form, TanStack Table,
     TanStack Virtual, and the remaining TanStack packages --&gt;</content:encoded></item></channel></rss>