Pre-release Changes
-
BREAKING CHANGE:
remix/data-tablenow treats dotted strings passed as comparison values as scalar values. Use table column references for column-to-column comparisons. -
BREAKING CHANGE: Raw HTML rendered through
remix/uimust now be explicitly authorized withunsafeHTML(). This applies toinnerHTMLand both iframesrcDocspellings (srcDocandsrcdoc).outerHTMLis not supported because it would replace a reconciler-owned element. The helper preserves its input exactly and does not sanitize it.-import type { Handle } from 'remix/ui' +import { unsafeHTML } from 'remix/ui' +import type { Handle } from 'remix/ui' function Content(handle: Handle<{ html: string }>) { - return () => <div innerHTML={handle.props.html} /> + return () => <div innerHTML={unsafeHTML(handle.props.html)} /> }
-
BREAKING CHANGE:
Cookie.securefromremix/cookiereturnsundefinedwhen unconfigured. Usecookie.secure ?? falsewhen a boolean is required. Session middleware now defaults toSecureon HTTPS requests while preserving explicit cookie settings. -
BREAKING CHANGE:
remix/middleware/sessionnow enforces configured cookie lifetimes before loading session data. Existing cookies without expiration metadata start a new session whenmaxAgeorexpiresis configured. Sessions without a configured lifetime retain their existing behavior. -
BREAKING CHANGE:
remix/tar-parsernow defaults topathPolicy: 'relative', rejecting invalid entry names and link targets withTarParseError. Entry names must be relative without parent components; symlink and hard-link targets must stay within the archive when resolved from the link's parent and archive root, respectively. SetpathPolicy: 'preserve'to process unrestricted decoded paths while retaining archive limits and header structure validation:-await parseTar(archive, handleEntry) +await parseTar(archive, { pathPolicy: 'preserve' }, handleEntry)
See the tar-parser changelog for details.
-
BREAKING CHANGE:
remix/tar-parsernow limits entry bodies to 2 MiB, total archive input to 20 MiB, and entry counts to 5,000 by default. These limits are configurable throughmaxEntrySize,maxTotalSize, andmaxEntries, with anInfinityopt-out and named limit errors. See the tar-parser changelog for migration details. -
Expose
compileOrderByDirection()throughremix/data-table/sql-helpers. -
Ship a generated
INDEX.mdthat maps app workflows to installed guides andremix/*imports to the most specific installed README available. -
Compressed HTML from
remix/middleware/compressionnow streams incrementally by default, so initial UI and Frame fallbacks can reach the browser before deferred Frames resolve. Explicit zlib and Brotliflushoptions continue to override the streaming-safe defaults. -
Bumped
@remix-run/*dependencies:assets@0.7.1async-context-middleware@0.3.7auth@0.3.2auth-middleware@0.2.7cli@0.7.1compression-middleware@0.1.15cookie@0.7.0cop-middleware@0.1.10cors-middleware@0.2.0csrf-middleware@0.1.10data-schema@0.3.1data-table@0.6.0data-table-mysql@0.5.3data-table-postgres@0.5.3data-table-sqlite@0.6.3fetch-proxy@0.8.6fetch-router@0.22.1file-storage-s3@0.1.5form-data-middleware@0.3.7form-data-parser@0.17.6headers@0.21.2logger-middleware@0.3.7method-override-middleware@0.1.15multipart-parser@0.16.5render-middleware@0.3.1response@0.3.9route-pattern@0.24.1session-middleware@0.5.0spa@0.1.2static-middleware@0.4.16tar-parser@0.8.0test@0.6.1ui@0.10.0