Skip to content

chore(deps): update devdependencies-non-major - #28

Open
renovate[bot] wants to merge 20 commits into
stagingfrom
renovate/devdependencies-non-major
Open

chore(deps): update devdependencies-non-major#28
renovate[bot] wants to merge 20 commits into
stagingfrom
renovate/devdependencies-non-major

Conversation

@renovate

@renovate renovate Bot commented Aug 25, 2025

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Confidence
@axe-core/playwright 4.10.1 -> 4.11.0 age confidence
@playwright/test (source) 1.51.1 -> 1.56.1 age confidence
@react-router/dev (source) 7.5.0 -> 7.9.6 age confidence
@tailwindcss/vite (source) 4.1.3 -> 4.1.17 age confidence
@​technologiestiftung/eslint-config 0.4.0 -> 0.4.1 age confidence
@types/node (source) 22.14.0 -> 22.19.1 age confidence
@types/react (source) 19.1.0 -> 19.2.6 age confidence
@types/react-dom (source) 19.1.1 -> 19.2.3 age confidence
@vitejs/plugin-react (source) 4.3.4 -> 4.7.0 age confidence
autoprefixer 10.4.21 -> 10.4.22 age confidence
eslint (source) 9.24.0 -> 9.39.1 age confidence
eslint-plugin-react-refresh 0.4.19 -> 0.4.24 age confidence
globals 16.0.0 -> 16.5.0 age confidence
postcss (source) 8.5.3 -> 8.5.6 age confidence
prettier (source) 3.5.3 -> 3.6.2 age confidence
react-router-devtools (source) 1.1.0 -> 1.1.10 age confidence
tailwindcss (source) 4.1.3 -> 4.1.17 age confidence
typescript (source) 5.8.3 -> 5.9.3 age confidence
vite (source) 6.2.5 -> 6.4.1 age confidence
vitest (source) 3.1.1 -> 3.2.4 age confidence

Release Notes

dequelabs/axe-core-npm (@​axe-core/playwright)

v4.11.0

Compare Source

Bug Fixes
Features

4.10.2 (2025-05-12)

Bug Fixes

4.10.1 (2024-10-29)

Bug Fixes

v4.10.2

Compare Source

Bug Fixes
microsoft/playwright (@​playwright/test)

v1.56.1

Compare Source

Highlights

#​37871 chore: allow local-network-access permission in chromium
#​37891 fix(agents): remove workspaceFolder ref from vscode mcp
#​37759 chore: rename agents to test agents
#​37757 chore(mcp): fallback to cwd when resolving test config

Browser Versions

  • Chromium 141.0.7390.37
  • Mozilla Firefox 142.0.1
  • WebKit 26.0

v1.56.0

Compare Source

Playwright Agents

Introducing Playwright Agents, three custom agent definitions designed to guide LLMs through the core process of building a Playwright test:

  • 🎭 planner explores the app and produces a Markdown test plan
  • 🎭 generator transforms the Markdown plan into the Playwright Test files
  • 🎭 healer executes the test suite and automatically repairs failing tests

Run npx playwright init-agents with your client of choice to generate the latest agent definitions:

### Generate agent files for each agentic loop
### Visual Studio Code
npx playwright init-agents --loop=vscode

### Claude Code
npx playwright init-agents --loop=claude

### opencode
npx playwright init-agents --loop=opencode

[!NOTE]
VS Code v1.105 (currently on the VS Code Insiders channel) is needed for the agentic experience in VS Code. It will become stable shortly, we are a bit ahead of times with this functionality!

Learn more about Playwright Agents

New APIs

UI Mode and HTML Reporter

  • Added option to 'html' reporter to disable the "Copy prompt" button
  • Added option to 'html' reporter and UI Mode to merge files, collapsing test and describe blocks into a single unified list
  • Added option to UI Mode mirroring the --update-snapshots options
  • Added option to UI Mode to run only a single worker at a time

Breaking Changes

Miscellaneous

  • Aria snapshots render and compare input placeholder
  • Added environment variable PLAYWRIGHT_TEST to Playwright worker processes to allow discriminating on testing status

Browser Versions

  • Chromium 141.0.7390.37
  • Mozilla Firefox 142.0.1
  • WebKit 26.0

v1.55.1

Compare Source

Highlights

#​37479 - [Bug]: Upgrade Chromium to 140.0.7339.186.
#​37147 - [Regression]: Internal error: step id not found.
#​37146 - [Regression]: HTML reporter displays a broken chip link when there are no projects.
#​37137 - Revert "fix(a11y): track inert elements as hidden".
#​37532 - chore: do not use -k option

Browser Versions

  • Chromium 140.0.7339.186
  • Mozilla Firefox 141.0
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 139
  • Microsoft Edge 139

v1.55.0

Compare Source

New APIs

  • New Property testStepInfo.titlePath Returns the full title path starting from the test file, including test and step titles.

Codegen

  • Automatic toBeVisible() assertions: Codegen can now generate automatic toBeVisible() assertions for common UI interactions. This feature can be enabled in the Codegen settings UI.

Breaking Changes

  • ⚠️ Dropped support for Chromium extension manifest v2.

Miscellaneous

  • Added support for Debian 13 "Trixie".

Browser Versions

  • Chromium 140.0.7339.16
  • Mozilla Firefox 141.0
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 139
  • Microsoft Edge 139

v1.54.2

Compare Source

Highlights

#​36714 - [Regression]: Codegen is not able to launch in Administrator Terminal on Windows (ProtocolError: Protocol error)
#​36828 - [Regression]: Playwright Codegen keeps spamming with selected option
#​36810 - [Regression]: Starting Codegen with target language doesn't work anymore

Browser Versions

  • Chromium 139.0.7258.5
  • Mozilla Firefox 140.0.2
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 140
  • Microsoft Edge 140

v1.54.1

Compare Source

Highlights

#​36650 - [Regression]: 1.54.0 breaks downloading browsers when an HTTP(S) proxy is used

Browser Versions

  • Chromium 139.0.7258.5
  • Mozilla Firefox 140.0.2
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 140
  • Microsoft Edge 140

v1.54.0

Compare Source

Highlights

  • New cookie property partitionKey in browserContext.cookies() and browserContext.addCookies(). This property allows to save and restore partitioned cookies. See CHIPS MDN article for more information. Note that browsers have different support and defaults for cookie partitioning.

  • New option noSnippets to disable code snippets in the html report.

    import { defineConfig } from '@​playwright/test';
    
    export default defineConfig({
      reporter: [['html', { noSnippets: true }]]
    });
  • New property location in test annotations, for example in testResult.annotations and testInfo.annotations. It shows where the annotation like test.skip or test.fixme was added.

Command Line

  • New option --user-data-dir in multiple commands. You can specify the same user data dir to reuse browsing state, like authentication, between sessions.

    npx playwright codegen --user-data-dir=./user-data
  • Option -gv has been removed from the npx playwright test command. Use --grep-invert instead.

  • npx playwright open does not open the test recorder anymore. Use npx playwright codegen instead.

Miscellaneous

  • Support for Node.js 16 has been removed.
  • Support for Node.js 18 has been deprecated, and will be removed in the future.

Browser Versions

  • Chromium 139.0.7258.5
  • Mozilla Firefox 140.0.2
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 140
  • Microsoft Edge 140

v1.53.2

Compare Source

Highlights

#​36317 - [Regression]: Merging pre-1.53 blob reports loses attachments
#​36357 - [Regression (Chromium)]: CDP missing trailing slash
#​36292 - [Bug (MSEdge)]: Edge fails to launch when using msRelaunchNoCompatLayer

Browser Versions

  • Chromium 138.0.7204.23
  • Mozilla Firefox 139.0
  • WebKit 18.5

This version was also tested against the following stable channels:

  • Google Chrome 137
  • Microsoft Edge 137

v1.53.1

Compare Source

Highlights

#​36339 - [Regression]: Click can fail when scrolling required
#​36307 - [Regression (Chromium)]: Under some scenarios filling a textarea doesn't fill
#​36294 - [Regression (Firefox)]: setViewportSize times out
#​36350 - [Fix]: Display HTTP method for fetch trace entries

Browser Versions

  • Chromium 138.0.7204.23
  • Mozilla Firefox 139.0
  • WebKit 18.5

This version was also tested against the following stable channels:

  • Google Chrome 137
  • Microsoft Edge 137

v1.53.0

Compare Source

Trace Viewer and HTML Reporter Updates

  • New Steps in Trace Viewer and HTML reporter: New Trace Viewer Steps

  • New option in 'html' reporter to set the title of a specific test run:

    import { defineConfig } from '@​playwright/test';
    
    export default defineConfig({
      reporter: [['html', { title: 'Custom test run #​1028' }]]
    });

Miscellaneous

  • New option kind in testInfo.snapshotPath() controls which snapshot path template is used.

  • New method locator.describe() to describe a locator. Used for trace viewer and reports.

    const button = page.getByTestId('btn-sub').describe('Subscribe button');
    await button.click();
  • npx playwright install --list will now list all installed browsers, versions and locations.

Browser Versions

  • Chromium 138.0.7204.4
  • Mozilla Firefox 139.0
  • WebKit 18.5

This version was also tested against the following stable channels:

  • Google Chrome 137
  • Microsoft Edge 137

v1.52.0

Compare Source

Highlights

  • New method expect(locator).toContainClass() to ergonomically assert individual class names on the element.

    await expect(page.getByRole('listitem', { name: 'Ship v1.52' })).toContainClass('done');
  • Aria Snapshots got two new properties: /children for strict matching and /url for links.

    await expect(locator).toMatchAriaSnapshot(`
      - list
        - /children: equal
        - listitem: Feature A
        - listitem:
          - link "Feature B":
            - /url: "https://playwright.dev"
    `);

Test Runner

  • New property testProject.workers allows to specify the number of concurrent worker processes to use for a test project. The global limit of property testConfig.workers still applies.
  • New testConfig.failOnFlakyTests option to fail the test run if any flaky tests are detected, similarly to --fail-on-flaky-tests. This is useful for CI/CD environments where you want to ensure that all tests are stable before deploying.
  • New property testResult.annotations contains annotations for each test retry.

Miscellaneous

  • New option maxRedirects in apiRequest.newContext() to control the maximum number of redirects.
  • HTML reporter now supports NOT filtering via !@​my-tag or !my-file.spec.ts or !p:my-project.

Breaking Changes

  • Changes to glob URL patterns in methods like page.route():
    • ? wildcard is not supported any more, it will always match question mark ? character.
    • Ranges/sets [] are not supported anymore. We recommend using regular expressions instead.
  • Method route.continue() does not allow to override the Cookie header anymore. If a Cookie header is provided, it will be ignored, and the cookie will be loaded from the browser's cookie store. To set custom cookies, use browserContext.addCookies().
  • macOS 13 is now deprecated and will no longer receive WebKit updates. Please upgrade to a more recent macOS version to continue benefiting from the latest WebKit improvements.

Browser Versions

  • Chromium 136.0.7103.25
  • Mozilla Firefox 137.0
  • WebKit 18.4

This version was also tested against the following stable channels:

  • Google Chrome 135
  • Microsoft Edge 135
remix-run/react-router (@​react-router/dev)

v7.9.6

Compare Source

Patch Changes
  • Use a dynamic import() to load ESM-only p-map dependency to avoid issues on Node 20.18 and below (#​14492)
  • Short circuit HEAD document requests before calling renderToPipeableStream in the default entry.server.tsx to more closely align with the spec (#​14488)
  • Updated dependencies:
    • react-router@7.9.6
    • @react-router/node@7.9.6
    • @react-router/serve@7.9.6

v7.9.5

Compare Source

Patch Changes
  • Introduce a prerender.unstable_concurrency option, to support running the prerendering concurrently, potentially speeding up the build. (#​14380)
  • Move RSCHydratedRouter and utils to /dom export. (#​14457)
  • Ensure route navigation doesn't remove CSS link elements used by dynamic imports (#​14463)
  • Typegen: only register route module types for routes within the app directory (#​14439)
  • Updated dependencies:
    • react-router@7.9.5
    • @react-router/node@7.9.5
    • @react-router/serve@7.9.5

v7.9.4

Compare Source

Patch Changes
  • Update valibot dependency to ^1.1.0 (#​14379)

  • New (unstable) useRoute hook for accessing data from specific routes (#​14407)

    For example, let's say you have an admin route somewhere in your app and you want any child routes of admin to all have access to the loaderData and actionData from admin.

    // app/routes/admin.tsx
    import { Outlet } from "react-router";
    
    export const loader = () => ({ message: "Hello, loader!" });
    
    export const action = () => ({ count: 1 });
    
    export default function Component() {
      return (
        <div>
          {/* ... */}
          <Outlet />
          {/* ... */}
        </div>
      );
    }

    You might even want to create a reusable widget that all of the routes nested under admin could use:

    import { unstable_useRoute as useRoute } from "react-router";
    
    export function AdminWidget() {
      // How to get `message` and `count` from `admin` route?
    }

    In framework mode, useRoute knows all your app's routes and gives you TS errors when invalid route IDs are passed in:

    export function AdminWidget() {
      const admin = useRoute("routes/dmin");
      //                      ^^^^^^^^^^^
    }

    useRoute returns undefined if the route is not part of the current page:

    export function AdminWidget() {
      const admin = useRoute("routes/admin");
      if (!admin) {
        throw new Error(`AdminWidget used outside of "routes/admin"`);
      }
    }

    Note: the root route is the exception since it is guaranteed to be part of the current page.
    As a result, useRoute never returns undefined for root.

    loaderData and actionData are marked as optional since they could be accessed before the action is triggered or after the loader threw an error:

    export function AdminWidget() {
      const admin = useRoute("routes/admin");
      if (!admin) {
        throw new Error(`AdminWidget used outside of "routes/admin"`);
      }
      const { loaderData, actionData } = admin;
      console.log(loaderData);
      //          ^? { message: string } | undefined
      console.log(actionData);
      //          ^? { count: number } | undefined
    }

    If instead of a specific route, you wanted access to the current route's loaderData and actionData, you can call useRoute without arguments:

    export function AdminWidget() {
      const currentRoute = useRoute();
      currentRoute.loaderData;
      currentRoute.actionData;
    }

    This usage is equivalent to calling useLoaderData and useActionData, but consolidates all route data access into one hook: useRoute.

    Note: when calling useRoute() (without a route ID), TS has no way to know which route is the current route.
    As a result, loaderData and actionData are typed as unknown.
    If you want more type-safety, you can either narrow the type yourself with something like zod or you can refactor your app to pass down typed props to your AdminWidget:

    export function AdminWidget({
      message,
      count,
    }: {
      message: string;
      count: number;
    }) {
      /* ... */
    }
  • Updated dependencies:

    • react-router@7.9.4
    • @react-router/node@7.9.4
    • @react-router/serve@7.9.4

v7.9.3

Compare Source

Patch Changes
  • Updated dependencies:
    • react-router@7.9.3
    • @react-router/node@7.9.3
    • @react-router/serve@7.9.3

v7.9.2

Compare Source

Patch Changes
  • Fix preset future flags being ignored during config resolution (#​14369)

    Fixes a bug where future flags defined by presets were completely ignored. The config resolution was incorrectly reading from reactRouterUserConfig.future instead of the merged userAndPresetConfigs.future, causing all preset-defined future flags to be lost.

    This fix ensures presets can properly enable experimental features as intended by the preset system design.

  • Add unstable support for RSC Framework Mode (#​14336)

  • Switch internal vite plugin Response logic to use @remix-run/node-fetch-server (#​13927)

  • Updated dependencies:

    • react-router@7.9.2
    • @react-router/serve@7.9.2
    • @react-router/node@7.9.2

v7.9.1

Compare Source

Patch Changes
  • Fix internal Future interface naming from middleware -> v8_middleware (#​14327)
  • Updated dependencies:
    • react-router@7.9.1
    • @react-router/node@7.9.1
    • @react-router/serve@7.9.1

v7.9.0

Compare Source

Minor Changes
Patch Changes
  • Updated dependencies:
    • react-router@7.9.0
    • @react-router/node@7.9.0
    • @react-router/serve@7.9.0

v7.8.2

Compare Source

Patch Changes
  • fix: memory leak in default entry.server (#​14200)
  • Updated dependencies:
    • react-router@7.8.2
    • @react-router/node@7.8.2
    • @react-router/serve@7.8.2

v7.8.1

Compare Source

Patch Changes
  • Update generated Route.MetaArgs type so loaderData is only potentially undefined when an ErrorBoundary export is present (#​14173)
  • Updated dependencies:
    • react-router@7.8.1
    • @react-router/node@7.8.1
    • @react-router/serve@7.8.1

v7.8.0

Compare Source

Patch Changes
  • Fix rename without mkdir in Vite plugin (#​14105)
  • Updated dependencies:
    • react-router@7.8.0
    • @react-router/node@7.8.0
    • @react-router/serve@7.8.0

v7.7.1

Compare Source

Patch Changes
  • Update to Prettier v3 for formatting when running react-router reveal --no-typescript (#​14049)
  • Updated dependencies:
    • react-router@7.7.1
    • @react-router/node@7.7.1
    • @react-router/serve@7.7.1

v7.7.0

Compare Source

Patch Changes
  • Update vite-node to ^3.2.2 to support Vite 7 (#​13781)
  • Properly handle https protocol in dev mode (#​13746)
  • Fix missing styles when Vite's build.cssCodeSplit option is disabled (#​13943)
  • Allow .mts and .mjs extensions for route config file (#​13931)
  • Fix prerender file locations when cwd differs from project root (#​13824)
  • Improve chunk error logging when a chunk cannot be found during the build (#​13799)
  • Fix incorrectly configured externalConditions which had enabled module condition for externals and broke builds with certain packages, like Emotion. (#​13871)
  • Updated dependencies:
    • react-router@7.7.0
    • @react-router/node@7.7.0
    • @react-router/serve@7.7.0

v7.6.3

Compare Source

Patch Changes
  • Add Vite 7 support (#​13748)
  • Skip package.json resolution checks when a custom entry.server.(j|t)sx file is provided. (#​13744)
  • Add validation for a route's id not being 'root' (#​13792)
  • Updated dependencies:
    • @react-router/node@7.6.3
    • react-router@7.6.3
    • @react-router/serve@7.6.3

v7.6.2

Compare Source

Patch Changes
  • Avoid additional with-props chunk in Framework Mode by moving route module component prop logic from the Vite plugin to react-router (#​13650)

  • When future.unstable_viteEnvironmentApi is enabled and an absolute Vite base has been configured, ensure critical CSS is handled correctly during development (#​13598)

  • Update vite-node (#​13673)

  • Fix typegen for non-{.js,.jsx,.ts,.tsx} routes like .mdx (#​12453)

  • Fix href types for optional dynamic params (#​13725)

    7.6.1 introduced fixes for href when using optional static segments,
    but those fixes caused regressions with how optional dynamic params worked in 7.6.0:

    // 7.6.0
    href("/users/:id?"); // ✅
    href("/users/:id?", { id: 1 }); // ✅
    
    // 7.6.1
    href("/users/:id?"); // ❌
    href("/users/:id?", { id: 1 }); // ❌

    Now, optional static segments are expanded into different paths for href, but optional dynamic params are not.
    This way href can unambiguously refer to an exact URL path, all while keeping the number of path options to a minimum.

    // 7.6.2
    
    // path: /users/:id?/edit?
    href("
    //    ^ suggestions when cursor is here:
    //
    //    /users/:id?
    //    /users/:id?/edit

    Additionally, you can pass params from component props without needing to narrow them manually:

    declare const params: { id?: number };
    
    // 7.6.0
    href("/users/:id?", params);
    
    // 7.6.1
    href("/users/:id?", params); // ❌
    "id" in params ? href("/users/:id", params) : href("/users"); // works... but is annoying
    
    // 7.6.2
    href("/users/:id?", params); // restores behavior of 7.6.0
  • Updated dependencies:

    • react-router@7.6.2
    • @react-router/node@7.6.2
    • @react-router/serve@7.6.2

v7.6.1

Compare Source

Patch Changes
  • Prevent typegen with route files are outside the app directory (#​12996)

  • Fix typegen when same route is used at multiple paths (#​13574)

    For example, routes/route.tsx is used at 4 different paths here:

    import { type RouteConfig, route } from "@&#8203;react-router/dev/routes";
    export default [
      route("base/:base", "routes/base.tsx", [
        route("home/:home", "routes/route.tsx", { id: "home" }),
        route("changelog/:changelog", "routes/route.tsx", { id: "changelog" }),
        route("splat/*", "routes/route.tsx", { id: "splat" }),
      ]),
      route("other/:other", "routes/route.tsx", { id: "other" }),
    ] satisfies RouteConfig;

    Previously, typegen would arbitrarily pick one of these paths to be the "winner" and generate types for the route module based on that path.
    Now, typegen creates unions as necessary for alternate paths for the same route file.

  • Add additional logging to build command output when cleaning assets from server build (#​13547)

  • Better types for params (#​13543)

    For example:

    // routes.ts
    import { type RouteConfig, route } from "@&#8203;react-router/dev/routes";
    
    export default [
      route("parent/:p", "routes/parent.tsx", [
        route("layout/:l", "routes/layout.tsx", [
          route("child1/:c1a/:c1b", "routes/child1.tsx"),
          route("child2/:c2a/:c2b", "routes/child2.tsx"),
        ]),
      ]),
    ] satisfies RouteConfig;

    Previously, params for the routes/layout.tsx route were calculated as { p: string, l: string }.
    This incorrectly ignores params that could come from child routes.
    If visiting /parent/1/layout/2/child1/3/4, the actual params passed to routes/layout.tsx will have a type of { p: string, l: string, c1a: string, c1b: string }.

    Now, params are aware of child routes and autocompletion will include child params as optionals:

    params.|
    //     ^ cursor is here and you ask for autocompletion
    // p: string
    // l: string
    // c1a?: string
    // c1b?: string
    // c2a?: string
    // c2b?: string

    You can also narrow the types for params as it is implemented as a normalized union of params for each page that includes routes/layout.tsx:

    if (typeof params.c1a === 'string') {
      params.|
      //     ^ cursor is here and you ask for autocompletion
      // p: string
      // l: string
      // c1a: string
      // c1b: string
    }

    UNSTABLE: renamed internal react-router/route-module export to react-router/internal
    UNSTABLE: removed Info export from generated +types/* files

  • [UNSTABLE] Normalize dirent entry path across node versions when generating SRI manifest (#​13591)

  • Don't clean assets from server build when build.ssrEmitAssets has been enabled in Vite config (#​13547)

  • Fix href for optional segments (#​13595)

    Type generation now expands paths with optionals into their corresponding non-optional paths.
    For example, the path /user/:id? gets expanded into /user and /user/:id to more closely model visitable URLs.
    href then uses these expanded (non-optional) paths to construct type-safe paths for your app:

    // original: /user/:id?
    // expanded: /user & /user/:id
    href("/user"); // ✅
    href("/user/:id", { id: 1 }); // ✅

    This becomes even more important for static optional paths where there wasn't a good way to indicate whether the optional should be included in the resulting path:

    // original: /products/:id/detail?
    
    // before
    href("/products/:id/detail?"); // ❌ How can we tell `href` to include or omit `detail?` segment with a complex API?
    
    // now
    // expanded: /products/:id & /products/:id/detail
    href("/product/:id"); // ✅
    href("/product/:id/detail"); // ✅
  • Updated dependencies:

    • react-router@7.6.1
    • @react-router/node@7.6.1
    • @react-router/serve@7.6.1

v7.6.0

Compare Source

Minor Changes
  • Added a new react-router.config.ts routeDiscovery option to configure Lazy Route Discovery behavior. (#​13451)

    • By default, Lazy Route Discovery is enabled and makes manifest requests to the /__manifest path:
      • routeDiscovery: { mode: "lazy", manifestPath: "/__manifest" }
    • You can modify the manifest path used:
      • routeDiscovery: { mode: "lazy", manifestPath: "/custom-manifest" }
    • Or you can disable this feature entirely and include all routes in the manifest on initial document load:
      • routeDiscovery: { mode: "initial" }
  • Automatic types for future flags (#​13506)

    Some future flags alter the way types should work in React Router.
    Previously, you had to remember to manually opt-in to the new types.

    For example, for unstable_middleware:

    // react-router.config.ts
    
    // Step 1: Enable middleware
    export default {
      future: {
        unstable_middleware: true,
      },
    };
    
    // Step 2: Enable middleware types
    declare module "react-router" {
      interface Future {
        unstable_middleware: true; // 👈 Enable middleware types
      }
    }

    It was up to you to keep the runtime future flags synced with the types for those future flags.
    This was confusing and error-prone.

    Now, React Router will automatically enable types for future flags.
    That means you only need to specify the runtime future flag:

    // react-router.config.ts
    
    // Step 1: Enable middleware
    export default {
      future: {
        unstable_middleware: true,
      },
    };
    
    // No step 2! That's it!

    Behind the scenes, React Router will generate the corresponding declare module into .react-router/types.
    Currently this is done in .react-router/types/+register.ts but this is an implementation detail that may change in the future.

Patch Changes
  • Support project root directories without a package.json if it exists in a parent directory (#​13472)

  • When providing a custom Vite config path via the CLI --config/-c flag, default the project root directory to the directory containing the Vite config when not explicitly provided (#​13472)

  • In a routes.ts context, ensure the --mode flag is respected for import.meta.env.MODE (#​13485)

    Previously, import.meta.env.MODE within a routes.ts context was always "development" for the dev and typegen --watch commands, but otherwise resolved to "production". These defaults are still in place, but if a --mode flag is provided, this will now take precedence.

  • Ensure consistent project root directory resolution logic in CLI commands (#​13472)

  • When executing react-router.config.ts and routes.ts with vite-node, ensure that PostCSS config files are ignored (#​13489)

  • When extracting critical CSS during development, ensure it's loaded from the client environment to avoid issues with plugins that handle the SSR environment differently (#​13503)

  • When future.unstable_viteEnvironmentApi is enabled, ensure that build.assetsDir in Vite config is respected when environments.client.build.assetsDir is not configured (#​13491)

  • Fix "Status message is not supported by HTTP/2" error during dev when using HTTPS (#​13460)

  • Update config when react-router.config.ts is created or deleted during development. (#​12319)

  • Skip unnecessary routes.ts evaluation before Vite build is started (#​13513)

  • Fix TS2300: Duplicate identifier errors caused by generated types (#​13499)

    Previously, routes that had the same full path would cause duplicate entries in the generated types for href (.react-router/types/+register.ts), causing type checking errors.

  • Updated dependencies:

    • react-router@7.6.0
    • @react-router/node@7.6.0
    • @react-router/serve@7.6.0

v7.5.3

Compare Source

Patch Changes
  • Updated dependencies:
    • react-router@7.5.3
    • @react-router/node@7.5.3
    • @react-router/serve@7.5.3

[v7.5.2](https://redirect.github.com/remix-run/react-router/blob/HEAD/pack


Configuration

📅 Schedule: Branch creation - "every 2 weeks on Monday before 7am" in timezone Europe/Berlin, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate

renovate Bot commented Aug 25, 2025

Copy link
Copy Markdown
Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: template-vite-react@0.0.0
npm error Found: react-router@7.5.0
npm error node_modules/react-router
npm error   react-router@"7.5.0" from the root project
npm error   peer react-router@"7.5.0" from @react-router/serve@7.5.0
npm error   node_modules/@react-router/serve
npm error     @react-router/serve@"7.5.0" from the root project
npm error
npm error Could not resolve dependency:
npm error peer react-router@"^7.9.6" from @react-router/dev@7.9.6
npm error node_modules/@react-router/dev
npm error   dev @react-router/dev@"7.9.6" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2025-12-02T07_34_11_639Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2025-12-02T07_34_11_639Z-debug-0.log

@vercel

vercel Bot commented Aug 25, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
baer-gpt-help Error Error Dec 2, 2025 7:34am

@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from 4a9618e to ed90bac Compare September 1, 2025 15:33
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from ed90bac to fabed73 Compare September 6, 2025 06:51
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from fabed73 to 25ee611 Compare September 9, 2025 16:09
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from 25ee611 to 074b6fd Compare September 11, 2025 15:45
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from 074b6fd to d1a04a2 Compare September 15, 2025 04:08
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from d1a04a2 to 43794b5 Compare September 17, 2025 23:44
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from 43794b5 to 16f9e59 Compare September 19, 2025 03:15
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from 16f9e59 to cd98860 Compare September 20, 2025 07:35
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from cd98860 to 4ee404f Compare September 24, 2025 20:08
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from 4ee404f to eea6eb0 Compare September 26, 2025 07:15
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from eea6eb0 to e13bb06 Compare September 27, 2025 11:08
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from e13bb06 to ef09ffd Compare September 30, 2025 12:02
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from ef09ffd to 575e3f6 Compare October 2, 2025 03:13
@renovate
renovate Bot force-pushed the renovate/devdependencies-non-major branch from 53cf0b8 to f054111 Compare November 9, 2025 11:54
aeschi and others added 2 commits November 11, 2025 15:41
* feat: open videos and links in new tab

* feat: remove space between bear gpt

* feat: exchange hero video
* feat: add new questions and adapt old ones

* feat: add handbuch downloadlink and top FAQ

* fix: typos

* feat: minor text and order changes
* feat: add new accordions for about page

* feat: remove unused imports

* fix: typos
aeschi and others added 7 commits November 19, 2025 16:28
* fix: correct and relative links

* fix: button hover behaviour
* feat: add favicon

* feat: adapt text and fix typos

* feat: change datenschutzbeauftragter
* feat: change genderneutral

---------

Co-authored-by: aeschi <56318362+aeschi@users.noreply.github.com>
)

* Feat: changes in genderneutral language Kolleg:innnen, Bürger:innen

Kolleginnen, Bürgerinnen

---------

Co-authored-by: aeschi <56318362+aeschi@users.noreply.github.com>
@renovate

renovate Bot commented Dec 4, 2025

Copy link
Copy Markdown
Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants