R

Remix

R
Remix Web v3.0.0-rc

remix v3.0.0-rc.2

Pre-release Changes BREAKING CHANGE: Asset fingerprints from remix/assets now use hashes of the final file contents. Replace fingerprint: { buildId } with fingerprint: true. If you use a persistent files.cache, move the build identifier to files.cacheKey to keep reusing cached files across server restarts. See the asset server migration steps (see #11706). BREAKING CHANGE: Browser scripts served b…

R
Remix Web v0.1.1

spa v0.1.1

Patch Changes Bumped @remix-run/* dependencies: fetch-router@0.22.0 render-middleware@0.3.0 ui@0.9.0

R
Remix Web v0.3.0

render-middleware v0.3.0

Minor Changes BREAKING CHANGE: render({ assets }) now uses assets.getScriptEntry() to resolve client entries from source files so their import maps are included in rendered documents and frame responses. Custom asset server implementations must provide getScriptEntry() instead of getHref() and getPreloads(). It must return a Promise resolving to the following ScriptEntry shape: interface ScriptEnt…

R
Remix Web v0.9.0

ui v0.9.0

Minor Changes Client entries can now provide import maps through resolveClientEntry(). The <ImportMap> component from remix/ui/server combines your mappings with those from blocking client entries so the initial document contains one complete import map. New mappings from later frame responses are installed before their client entries load. Plain <script type="importmap"> elements remain supported…

R
Remix Web v0.2.0

node-hmr v0.2.0

Minor Changes BREAKING CHANGE: Custom browser HMR update events now carry JSON data in a data record instead of top-level timestamp and updates fields (see #11706). Apps using the standard asset server and createBrowserHmrChannel() integration need no changes to their event handling. Give each tool a separate key in the record, for example { type: 'update', data: { 'my-tool@1': { version: 1 } } }.…

R
Remix Web v0.1.0

multiple-import-maps-polyfill v0.1.0

Minor Changes Added @remix-run/multiple-import-maps-polyfill for loading JavaScript modules that depend on import maps added after the initial page load. importModule() detects browser support and uses native imports where possible. detectMultipleImportMapSupport() exposes the same support check, while importShim() and preloadShim() always use the polyfill. Modules preloaded through the polyfill a…

R
Remix Web v3.0.0-rc

remix v3.0.0-rc.1

Pre-release Changes BREAKING CHANGE: In createAssetServer() from remix/assets, replace the fileMap option with optional directory-based mounts. Mounts recursively preserve the path beneath each public and filesystem root, keeping module URLs aligned with the filesystem hierarchy used for package resolution. When mounts is omitted, the asset server uses { app: 'app', npm: 'node_modules' }. To migra…

R
Remix Web v0.1.0

spa v0.1.0

Minor Changes Added the initial @remix-run/spa package with render() middleware and a run(router, { fallback? }) browser runtime for client-rendered Remix applications. Route handlers use context.render() while the package preserves the router's Request to Response contract and hides the SPA response carrier. Patch Changes Bumped @remix-run/* dependencies: render-middleware@0.2.0 ui@0.8.0

R
Remix Web v0.2.0

render-middleware v0.2.0

Minor Changes Add render({ assets?, onError? }), the conventional request-scoped Remix UI renderer. It returns typed HTML responses through context.render(node, init), resolves nested and targeted frames through the current router with safe request headers and cancellation, preserves frame error bodies, and optionally resolves source-based client entries through an asset server (see #11607). Patch…

R
Remix Web v0.8.0

ui v0.8.0

Minor Changes BREAKING CHANGE: Remix UI framework-owned DOM attributes now consistently use the data-rmx-* namespace. Rename rmx-document, rmx-target, rmx-src, rmx-history, rmx-reset-scroll, rmx-preserve-dom, and data-key to data-rmx-document, data-rmx-target, data-rmx-src, data-rmx-history, data-rmx-reset-scroll, data-rmx-preserve-dom, and data-rmx-key. Generated style and module preload markers…

R
Remix Web v0.6.0

cli v0.6.0

Minor Changes Add remix db rollback, which reverts applied migrations by running their down.sql. Database.migrate() already accepted direction, to, step, and dryRun, but the CLI never passed them, so a migration's down.sql was unreachable from remix db — --to only bounds forward progress. rollback reverts newest first, bounded by --step <count> (default 1) or --to <migration>, which reverts back t…

R
Remix Web v0.5.0

data-table v0.5.0

Minor Changes Add a rollback command to runRemixDb(). Reverts applied migrations newest first, bounded by step (default 1) or to (inclusive), with optional dryRun. This is what backs remix db rollback, and it gives hosts embedding the data-table CLI the same command (see #11723). Patch Changes Allow and() and or() to compose object shorthand filters, matching the documented where: or({ status: 'pe…

R
Remix Web v0.3.0

auth v0.3.0

Minor Changes BREAKING CHANGE: Remove the built-in Atmosphere auth provider and the DPoP model that was coupled to it. This removes createAtmosphereAuthProvider(), the Atmosphere* and OAuthDpop* types, and OAuthStandardTokens. Use OAuthTokens in place of OAuthStandardTokens. Custom provider packages can extend OAuthTokens with protocol-specific fields and preserve that type through OAuthProvider,…

R
Remix Web v0.1.0

[Superseded] static-files-middleware v0.1.0

⚠️ Superseded: do not use this package. Use @remix-run/static-middleware directly, or import staticFiles from remix/middleware/static in Remix apps. Minor Changes Initial release of the static file-serving middleware that powers remix/middleware/static. Application code should continue importing staticFiles from remix/middleware/static.

R
Remix Web v3.0.0-beta

[Superseded] remix v3.0.0-beta.9

⚠️ Superseded: do not use this beta. Install remix@3.0.0-beta.10 or newer. Beta.10 contains the complete change notes and fixes the fresh-project middleware type error. This release includes all changes since v3.0.0-beta.6. v3.0.0-beta.7 Pre-release Changes Allow resolveClientEntry() in remix/ui to return module preload hrefs so client entries can preload their browser module graphs Bumped @remix-…

R
Remix Web v3.0.0-beta

remix v3.0.0-beta.10

Pre-release Changes BREAKING CHANGE: Beta.10 supersedes beta.6 through beta.9 and consolidates their changes into one supported prerelease. Legacy package-aligned remix/* aliases have been removed in favor of canonical entrypoints that group related APIs together. Update imports when moving from beta.5 to beta.10: - import { requireAuth } from 'remix/auth-middleware' - import { createPostgresDatab…

R
Remix Web v0.4.14

static-middleware v0.4.14

Patch Changes Fixed staticFiles() middleware types being incompatible with other router middleware by updating @remix-run/fetch-router to ^0.21.0. This keeps the established @remix-run/static-middleware package compatible with Remix 3 projects without package-manager overrides.

R
Remix Web v0.5.0

cli v0.5.0

Minor Changes Updated the default remix new app template to provide preloads for client entries

R
Remix Web v0.7.0

ui v0.7.0

Minor Changes run() now uses a default browser frame resolver when resolveFrame is omitted. Apps that supplied a resolver only to fetch frame HTML can remove it: let app = run({ loadModule, - resolveFrame(src, options) { - return fetch(src, { - headers: { Accept: 'text/html' }, - signal: options?.signal, - }) - }, }) All run() calls now enable frame reloads and same-origin link and form navigation…

R
Remix Web v0.6.0

test v0.6.0

Minor Changes BREAKING CHANGE: Removed executable remix-test.config.ts and remix-test.config.js discovery, along with the config path option from runRemixTest(). The programmatic @remix-run/test/cli API now accepts structured invocation options only. For CLI usage, move static test settings under remix.json#test; the main Remix CLI owns JSONC loading, path resolution, validation, and precedence be…

R
Remix Web v0.5.0

ui v0.5.0

Minor Changes BREAKING CHANGE: Browser resolveFrame callbacks now receive a single options object instead of positional signal and target arguments. Update resolveFrame(src, signal, target) implementations to use resolveFrame(src, options) and read options?.signal and options?.target. Added frames to the app object returned from run(), mirroring the existing handle.frames API Added @remix-run/ui/d…

R
Remix Web v0.24.0

route-pattern v0.24.0

Minor Changes BREAKING CHANGE: Route matching now uses delimiter-bounded params and a bounded state compiler (see #11651). Pathname params possessively capture through hyphens but stop at raw / or ., so UUIDs remain intact and createHref() percent-encodes dots in param values for round-tripping. Patterns such as /:year-:month must migrate to one inseparable param such as /:date, or place captures…

R
Remix Web v0.4.0

session-middleware v0.4.0

Minor Changes BREAKING CHANGE: Session cookies now default to HttpOnly when the cookie's httpOnly option is omitted. Set httpOnly: false explicitly to preserve access from client-side JavaScript; the middleware emits a warning when this protection is disabled. Patch Changes Bumped @remix-run/* dependencies: cookie@0.6.0 fetch-router@0.21.0