Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: remix-run/remix
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: @remix-run/css-bundle@2.16.1
Choose a base ref
...
head repository: remix-run/remix
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: @remix-run/css-bundle@2.16.2
Choose a head ref
  • 11 commits
  • 43 files changed
  • 3 contributors

Commits on Mar 11, 2025

  1. Add missing packages to custom version script (#10521)

    markdalgleish authored Mar 11, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    6b32452 View commit details

Commits on Mar 17, 2025

  1. Fix shouldRevalidate on clientLoader-only routes with single fetch en… (

    brophdawg11 authored Mar 17, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    37cbdd1 View commit details
  2. Ensure ancestor pathless/index routes are loaded via manifest requests (

    brophdawg11 authored Mar 17, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    17bdd98 View commit details
  3. Merge branch 'release-next'

    brophdawg11 committed Mar 17, 2025
    Copy the full SHA
    cd967a5 View commit details
  4. Merge branch 'release-next' into dev

    brophdawg11 committed Mar 17, 2025
    Copy the full SHA
    6df056f View commit details
  5. Copy the full SHA
    22db81b View commit details
  6. Enter prerelease mode

    brophdawg11 committed Mar 17, 2025
    Copy the full SHA
    aeef417 View commit details
  7. chore: Update version for release (pre) (#10537)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] authored Mar 17, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    3764a7c View commit details
  8. Draft release notes

    brophdawg11 committed Mar 17, 2025
    Copy the full SHA
    647a3e7 View commit details

Commits on Mar 19, 2025

  1. Exit prerelease mode

    brophdawg11 committed Mar 19, 2025
    Copy the full SHA
    f0340dd View commit details
  2. chore: Update version for release (#10541)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Matt Brophy <matt@brophy.org>
    github-actions[bot] and brophdawg11 authored Mar 19, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    b206d9b View commit details
Showing with 393 additions and 66 deletions.
  1. +49 −36 CHANGELOG.md
  2. +79 −0 integration/fog-of-war-test.ts
  3. +96 −0 integration/single-fetch-test.ts
  4. +4 −0 packages/create-remix/CHANGELOG.md
  5. +1 −1 packages/create-remix/package.json
  6. +7 −0 packages/remix-architect/CHANGELOG.md
  7. +1 −1 packages/remix-architect/package.json
  8. +7 −0 packages/remix-cloudflare-pages/CHANGELOG.md
  9. +1 −1 packages/remix-cloudflare-pages/package.json
  10. +7 −0 packages/remix-cloudflare-workers/CHANGELOG.md
  11. +1 −1 packages/remix-cloudflare-workers/package.json
  12. +7 −0 packages/remix-cloudflare/CHANGELOG.md
  13. +1 −1 packages/remix-cloudflare/package.json
  14. +4 −0 packages/remix-css-bundle/CHANGELOG.md
  15. +1 −1 packages/remix-css-bundle/package.json
  16. +7 −0 packages/remix-deno/CHANGELOG.md
  17. +1 −1 packages/remix-deno/package.json
  18. +8 −0 packages/remix-dev/CHANGELOG.md
  19. +3 −3 packages/remix-dev/package.json
  20. +4 −0 packages/remix-eslint-config/CHANGELOG.md
  21. +1 −1 packages/remix-eslint-config/package.json
  22. +7 −0 packages/remix-express/CHANGELOG.md
  23. +1 −1 packages/remix-express/package.json
  24. +4 −0 packages/remix-fs-routes/CHANGELOG.md
  25. +3 −3 packages/remix-fs-routes/package.json
  26. +7 −0 packages/remix-node/CHANGELOG.md
  27. +1 −1 packages/remix-node/package.json
  28. +8 −0 packages/remix-react/CHANGELOG.md
  29. +1 −1 packages/remix-react/package.json
  30. +7 −3 packages/remix-react/single-fetch.tsx
  31. +4 −0 packages/remix-route-config/CHANGELOG.md
  32. +2 −2 packages/remix-route-config/package.json
  33. +4 −0 packages/remix-routes-option-adapter/CHANGELOG.md
  34. +3 −3 packages/remix-routes-option-adapter/package.json
  35. +8 −0 packages/remix-serve/CHANGELOG.md
  36. +1 −1 packages/remix-serve/package.json
  37. +6 −0 packages/remix-server-runtime/CHANGELOG.md
  38. +1 −1 packages/remix-server-runtime/package.json
  39. +22 −1 packages/remix-server-runtime/server.ts
  40. +8 −0 packages/remix-testing/CHANGELOG.md
  41. +1 −1 packages/remix-testing/package.json
  42. +1 −1 packages/remix/package.json
  43. +3 −0 scripts/utils.js
85 changes: 49 additions & 36 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -13,142 +13,144 @@ We manage release notes in this file instead of the paginated Github Releases Pa
<summary>Table of Contents</summary>

- [Remix Releases](#remix-releases)
- [v2.16.1](#v2161)
- [v2.16.2](#v2162)
- [Patch Changes](#patch-changes)
- [v2.16.1](#v2161)
- [Patch Changes](#patch-changes-1)
- [v2.16.0](#v2160)
- [Minor Changes](#minor-changes)
- [Patch Changes](#patch-changes-1)
- [Patch Changes](#patch-changes-2)
- [Updated Dependencies](#updated-dependencies)
- [v2.15.3](#v2153)
- [Patch Changes](#patch-changes-2)
- [Patch Changes](#patch-changes-3)
- [Updated Dependencies](#updated-dependencies-1)
- [v2.15.2](#v2152)
- [Patch Changes](#patch-changes-3)
- [Patch Changes](#patch-changes-4)
- [Updated Dependencies](#updated-dependencies-2)
- [v2.15.1](#v2151)
- [Patch Changes](#patch-changes-4)
- [v2.15.0](#v2150)
- [Patch Changes](#patch-changes-5)
- [v2.15.0](#v2150)
- [Patch Changes](#patch-changes-6)
- [v2.14.0](#v2140)
- [Minor Changes](#minor-changes-1)
- [Patch Changes](#patch-changes-6)
- [Patch Changes](#patch-changes-7)
- [Updated Dependencies](#updated-dependencies-3)
- [Changes by Package](#changes-by-package)
- [v2.13.1](#v2131)
- [Patch Changes](#patch-changes-7)
- [Patch Changes](#patch-changes-8)
- [v2.13.0](#v2130)
- [What's Changed](#whats-changed)
- [Stabilized APIs](#stabilized-apis)
- [Minor Changes](#minor-changes-2)
- [Patch Changes](#patch-changes-8)
- [Patch Changes](#patch-changes-9)
- [Updated Dependencies](#updated-dependencies-4)
- [Changes by Package](#changes-by-package-1)
- [v2.12.1](#v2121)
- [Patch Changes](#patch-changes-9)
- [Patch Changes](#patch-changes-10)
- [Changes by Package](#changes-by-package-2)
- [v2.12.0](#v2120)
- [What's Changed](#whats-changed-1)
- [Future Flag for Automatic Dependency Optimization (unstable)](#future-flag-for-automatic-dependency-optimization-unstable)
- [Improved Single Fetch Type Safety (unstable)](#improved-single-fetch-type-safety-unstable)
- [Updates to Single Fetch Revalidation Behavior (unstable)](#updates-to-single-fetch-revalidation-behavior-unstable)
- [Minor Changes](#minor-changes-3)
- [Patch Changes](#patch-changes-10)
- [Patch Changes](#patch-changes-11)
- [Updated Dependencies](#updated-dependencies-5)
- [Changes by Package](#changes-by-package-3)
- [v2.11.2](#v2112)
- [Patch Changes](#patch-changes-11)
- [Patch Changes](#patch-changes-12)
- [Updated Dependencies](#updated-dependencies-6)
- [Changes by Package](#changes-by-package-4)
- [v2.11.1](#v2111)
- [Patch Changes](#patch-changes-12)
- [Patch Changes](#patch-changes-13)
- [Changes by Package](#changes-by-package-5)
- [v2.11.0](#v2110)
- [What's Changed](#whats-changed-2)
- [Renamed `unstable_fogOfWar` future flag to `unstable_lazyRouteDiscovery` (unstable)](#renamed-unstable_fogofwar-future-flag-to-unstable_lazyroutediscovery-unstable)
- [Removed `response` stub in Single Fetch (unstable)](#removed-response-stub-in-single-fetch-unstable)
- [Minor Changes](#minor-changes-4)
- [Patch Changes](#patch-changes-13)
- [Patch Changes](#patch-changes-14)
- [Updated Dependencies](#updated-dependencies-7)
- [Changes by Package](#changes-by-package-6)
- [v2.10.3](#v2103)
- [Patch Changes](#patch-changes-14)
- [Patch Changes](#patch-changes-15)
- [Updated Dependencies](#updated-dependencies-8)
- [Changes by Package](#changes-by-package-7)
- [v2.10.2](#v2102)
- [Patch Changes](#patch-changes-15)
- [Patch Changes](#patch-changes-16)
- [Changes by Package](#changes-by-package-8)
- [v2.10.1](#v2101)
- [Patch Changes](#patch-changes-16)
- [Patch Changes](#patch-changes-17)
- [Updated Dependencies](#updated-dependencies-9)
- [Changes by Package](#changes-by-package-9)
- [v2.10.0](#v2100)
- [What's Changed](#whats-changed-3)
- [Lazy Route Discovery (a.k.a. "Fog of War")](#lazy-route-discovery-aka-fog-of-war)
- [Minor Changes](#minor-changes-5)
- [Patch Changes](#patch-changes-17)
- [Patch Changes](#patch-changes-18)
- [Updated Dependencies](#updated-dependencies-10)
- [Changes by Package](#changes-by-package-10)
- [v2.9.2](#v292)
- [What's Changed](#whats-changed-4)
- [Updated Type-Safety for Single Fetch](#updated-type-safety-for-single-fetch)
- [Patch Changes](#patch-changes-18)
- [Patch Changes](#patch-changes-19)
- [Updated Dependencies](#updated-dependencies-11)
- [Changes by Package](#changes-by-package-11)
- [v2.9.1](#v291)
- [Patch Changes](#patch-changes-19)
- [Patch Changes](#patch-changes-20)
- [Changes by Package](#changes-by-package-12)
- [v2.9.0](#v290)
- [What's Changed](#whats-changed-5)
- [Single Fetch (unstable)](#single-fetch-unstable)
- [Undici](#undici)
- [Minor Changes](#minor-changes-6)
- [Patch Changes](#patch-changes-20)
- [Patch Changes](#patch-changes-21)
- [Updated Dependencies](#updated-dependencies-12)
- [Changes by Package](#changes-by-package-13)
- [v2.8.1](#v281)
- [Patch Changes](#patch-changes-21)
- [Patch Changes](#patch-changes-22)
- [Updated Dependencies](#updated-dependencies-13)
- [Changes by Package](#changes-by-package-14)
- [v2.8.0](#v280)
- [Minor Changes](#minor-changes-7)
- [Patch Changes](#patch-changes-22)
- [Patch Changes](#patch-changes-23)
- [Updated Dependencies](#updated-dependencies-14)
- [Changes by Package](#changes-by-package-15)
- [2.7.2](#272)
- [Patch Changes](#patch-changes-23)
- [2.7.1](#271)
- [Patch Changes](#patch-changes-24)
- [2.7.1](#271)
- [Patch Changes](#patch-changes-25)
- [v2.7.0](#v270)
- [What's Changed](#whats-changed-6)
- [Stabilized Vite Plugin](#stabilized-vite-plugin)
- [New `Layout` Export](#new-layout-export)
- [Basename support](#basename-support)
- [Cloudflare Proxy as a Vite Plugin](#cloudflare-proxy-as-a-vite-plugin)
- [Minor Changes](#minor-changes-8)
- [Patch Changes](#patch-changes-25)
- [Patch Changes](#patch-changes-26)
- [Updated Dependencies](#updated-dependencies-15)
- [Changes by Package](#changes-by-package-16)
- [v2.6.0](#v260)
- [What's Changed](#whats-changed-7)
- [Unstable Vite Plugin updates](#unstable-vite-plugin-updates)
- [Minor Changes](#minor-changes-9)
- [Patch Changes](#patch-changes-26)
- [Patch Changes](#patch-changes-27)
- [Updated Dependencies](#updated-dependencies-16)
- [Changes by Package](#changes-by-package-17)
- [v2.5.1](#v251)
- [Patch Changes](#patch-changes-27)
- [Patch Changes](#patch-changes-28)
- [Updated Dependencies](#updated-dependencies-17)
- [Changes by Package](#changes-by-package-18)
- [v2.5.0](#v250)
- [What's Changed](#whats-changed-8)
- [SPA Mode (unstable)](#spa-mode-unstable)
- [Server Bundles (unstable)](#server-bundles-unstable)
- [Minor Changes](#minor-changes-10)
- [Patch Changes](#patch-changes-28)
- [Patch Changes](#patch-changes-29)
- [Updated Dependencies](#updated-dependencies-18)
- [Changes by Package](#changes-by-package-19)
- [v2.4.1](#v241)
- [Patch Changes](#patch-changes-29)
- [Patch Changes](#patch-changes-30)
- [Updated Dependencies](#updated-dependencies-19)
- [Changes by Package](#changes-by-package-20)
- [v2.4.0](#v240)
@@ -157,19 +159,19 @@ We manage release notes in this file instead of the paginated Github Releases Pa
- [`future.v3_relativeSplatPath`](#futurev3_relativesplatpath)
- [Vite Updates (Unstable)](#vite-updates-unstable)
- [Minor Changes](#minor-changes-11)
- [Patch Changes](#patch-changes-30)
- [Patch Changes](#patch-changes-31)
- [Updated Dependencies](#updated-dependencies-20)
- [Changes by Package](#changes-by-package-21)
- [v2.3.1](#v231)
- [Patch Changes](#patch-changes-31)
- [Patch Changes](#patch-changes-32)
- [Updated Dependencies](#updated-dependencies-21)
- [Changes by Package](#changes-by-package-22)
- [v2.3.0](#v230)
- [What's Changed](#whats-changed-10)
- [Stabilized `useBlocker`](#stabilized-useblocker)
- [`unstable_flushSync` API](#unstable_flushsync-api)
- [Minor Changes](#minor-changes-12)
- [Patch Changes](#patch-changes-32)
- [Patch Changes](#patch-changes-33)
- [Updated Dependencies](#updated-dependencies-22)
- [Changes by Package](#changes-by-package-23)
- [v2.2.0](#v220)
@@ -178,19 +180,19 @@ We manage release notes in this file instead of the paginated Github Releases Pa
- [New Fetcher APIs](#new-fetcher-apis)
- [Persistence Future Flag](#persistence-future-flag)
- [Minor Changes](#minor-changes-13)
- [Patch Changes](#patch-changes-33)
- [Patch Changes](#patch-changes-34)
- [Updated Dependencies](#updated-dependencies-23)
- [Changes by Package](#changes-by-package-24)
- [v2.1.0](#v210)
- [What's Changed](#whats-changed-12)
- [View Transitions](#view-transitions)
- [Stable `createRemixStub`](#stable-createremixstub)
- [Minor Changes](#minor-changes-14)
- [Patch Changes](#patch-changes-34)
- [Patch Changes](#patch-changes-35)
- [Updated Dependencies](#updated-dependencies-24)
- [Changes by Package](#changes-by-package-25)
- [v2.0.1](#v201)
- [Patch Changes](#patch-changes-35)
- [Patch Changes](#patch-changes-36)
- [Changes by Package 🔗](#changes-by-package-)
- [v2.0.0](#v200)
- [Breaking Changes](#breaking-changes)
@@ -254,6 +256,17 @@ Date: YYYY-MM-DD
-->

## v2.16.2

Date: 2025-03-19

### Patch Changes

- `@remix-run/react` - Fix `shouldRevalidate` behavior for `clientLoader`-only routes in `ssr:true` apps ([#10527](https://github.com/remix-run/remix/pull/10527))
- `@remix-run/server-runtime` - Load ancestor pathless/index routes in lazy route discovery for upwards non-eager-discovery routing ([#10535](https://github.com/remix-run/remix/pull/10535))

**Full Changelog**: [`v2.16.1...v2.16.2`](https://github.com/remix-run/remix/compare/remix@2.16.1...remix@2.16.2)

## v2.16.1

Date: 2025-03-17
79 changes: 79 additions & 0 deletions integration/fog-of-war-test.ts
Original file line number Diff line number Diff line change
@@ -1510,4 +1510,83 @@ test.describe("Fog of War", () => {
)
).toEqual(["root", "routes/a", "routes/_index", "routes/a.b"]);
});

test("loads ancestor index routes on navigations", async ({ page }) => {
let fixture = await createFixture({
config: {
future: {
v3_lazyRouteDiscovery: true,
},
},
files: {
...getFiles(),
"app/root.tsx": js`
import * as React from "react";
import { Link, Links, Meta, Outlet, Scripts } from "@remix-run/react";
export default function Root() {
let [showLink, setShowLink] = React.useState(false);
return (
<html lang="en">
<head>
<Meta />
<Links />
</head>
<body>
<Link to="/" discover="none">Home</Link><br/>
<Link to="/a" discover="none">/a</Link><br/>
<Link to="/a/b" discover="none">/a/b</Link><br/>
<Link to="/a/b/c" discover="none">/a/b/c</Link><br/>
<Outlet />
<Scripts />
</body>
</html>
);
}
`,
"app/routes/a._index.tsx": js`
export default function Index() {
return <h3 id="a-index">A INDEX</h3>;
}
`,
"app/routes/a.b._index.tsx": js`
export default function Index() {
return <h3 id="b-index">B INDEX</h3>;
}
`,
},
});
let appFixture = await createAppFixture(fixture);
let app = new PlaywrightFixture(appFixture, page);

await app.goto("/", true);
expect(
await page.evaluate(() =>
Object.keys((window as any).__remixManifest.routes)
)
).toEqual(["root", "routes/_index"]);

await app.clickLink("/a/b/c");
await page.waitForSelector("#c");

// /a/b is not discovered yet even thought it's rendered
expect(
await page.evaluate(() =>
Object.keys((window as any).__remixManifest.routes)
)
).toEqual([
"root",
"routes/_index",
"routes/a",
"routes/a._index",
"routes/a.b",
"routes/a.b._index",
"routes/a.b.c",
]);

await app.clickLink("/a/b");
await page.waitForSelector("#b-index");

await app.clickLink("/a");
await page.waitForSelector("#a-index");
});
});
Loading