Skip to content

Release#11259

Open
remix-run-bot wants to merge 1 commit intomainfrom
release-pr/main
Open

Release#11259
remix-run-bot wants to merge 1 commit intomainfrom
release-pr/main

Conversation

@remix-run-bot
Copy link
Copy Markdown
Contributor

@remix-run-bot remix-run-bot commented Apr 24, 2026

This PR is managed by the release-pr workflow. Do not edit it manually. See CONTRIBUTING.md for more.

Releases

Package Version
remix 3.0.0-alpha.53.0.0-alpha.6
@remix-run/assets 0.1.00.2.0
@remix-run/auth 0.1.10.2.0
@remix-run/component 0.7.00.8.0
@remix-run/compression-middleware 0.1.50.1.6
@remix-run/data-schema 0.2.00.3.0
@remix-run/data-table-sqlite 0.3.00.4.0
@remix-run/fetch-proxy 0.7.10.8.0
@remix-run/file-storage 0.13.30.13.4
@remix-run/file-storage-s3 0.1.00.1.1
@remix-run/form-data-middleware 0.2.10.2.2
@remix-run/form-data-parser 0.16.00.17.0
@remix-run/fs 0.4.20.4.3
@remix-run/lazy-file 5.0.25.0.3
@remix-run/logger-middleware 0.1.50.2.0
@remix-run/mime 0.4.00.4.1
@remix-run/multipart-parser 0.15.00.16.0
@remix-run/response 0.3.20.3.3
@remix-run/static-middleware 0.4.60.4.7
@remix-run/tar-parser 0.7.00.7.1
@remix-run/terminal 0.0.00.1.0
@remix-run/test 0.1.00.2.0
@remix-run/ui 0.0.00.0.1

Changelogs

remix v3.0.0-alpha.6

Pre-release Changes

@remix-run/assets v0.2.0

Minor Changes

  • BREAKING CHANGE: target configuration is now configured at the top level with an object format, supporting es version targets along with browser version targets.

    Browser targets are configured with string versions such as target: { chrome: '109', safari: '16.4' }, and scripts can specify es as a year of 2015 or higher such as target: { es: '2020' }.

    To migrate existing script configuration, replace scripts.target options like scripts: { target: 'es2020' } with target: { es: '2020' }.

  • BREAKING CHANGE: Shared compiler options are now provided at the top level of createAssetServer(). Use sourceMaps, sourceMapSourcePaths, and minify directly on the asset server options instead of being nested under scripts. This allows these options to also be used for styles as well as scripts.

    To migrate existing configuration, move scripts.minify, scripts.sourceMaps, scripts.sourceMapSourcePaths to the top-level asset server options.

  • createAssetServer() now compiles and serves .css files alongside scripts, including local @import rewriting, fingerprinting, and shared compiler options for minification, source maps, and browser compatibility targeting.

Patch Changes

  • Fix matching of dot-prefixed files and directories in allow and deny globs

  • Improve asset server import errors to include the resolved file path when a resolved import is later rejected by validation for allow/deny rules, supported file types and fileMap configuration.

@remix-run/auth v0.2.0

Minor Changes

  • Added refreshExternalAuth() to @remix-run/auth so apps can exchange stored refresh tokens for fresh OAuth and OIDC token bundles.

    The built-in OIDC providers and X now implement refresh-token exchange. Refreshed token bundles preserve the existing refresh token when the provider omits a rotated value.

@remix-run/component v0.8.0

Minor Changes

  • BREAKING CHANGE: Components now receive props through a stable handle.props object using Handle<Props, Context> instead of receiving a separate setup argument and render callback props. Move initialization values that previously used <Component setup={...} /> onto regular props, and read all props from handle.props in both the component function and render callback.

    Before:

    function Counter(handle: Handle<CounterContext>, setup: { initialCount: number }) {
      let count = setup.initialCount
    
      return (props: { label: string }) => (
        <button>
          {props.label}: {count}
        </button>
      )
    }
    
    ;<Counter setup={{ initialCount: 10 }} label="Count" />

    After:

    function Counter(handle: Handle<{ initialCount: number; label: string }, CounterContext>) {
      let count = handle.props.initialCount
    
      return () => (
        <button>
          {handle.props.label}: {count}
        </button>
      )
    }
    
    ;<Counter initialCount={10} label="Count" />

    The handle.props object keeps the same identity for the component lifetime while its values are updated before each render, so destructuring let { props, update } = handle remains safe. The setup prop is no longer special and is treated like any other prop.

    This also removes the old pattern where setup-scope helpers had to read from a mutable variable that was reassigned inside the render callback:

    function Listbox(handle: Handle<ListboxContext>) {
      let props: ListboxProps
    
      function select(value: string) {
        props.onSelect(value)
      }
    
      handle.context.set({ select })
    
      return (nextProps: ListboxProps) => {
        props = nextProps
        return props.children
      }
    }

    Helpers can now read the current props directly from the stable handle:

    function Listbox(handle: Handle<ListboxProps, ListboxContext>) {
      function select(value: string) {
        handle.props.onSelect(value)
      }
    
      handle.context.set({ select })
    
      return () => handle.props.children
    }

@remix-run/compression-middleware v0.1.6

Patch Changes

@remix-run/data-schema v0.3.0

Minor Changes

  • Add Schema.transform() for mapping validated schema outputs to new values and output types.

@remix-run/data-table-sqlite v0.4.0

Minor Changes

  • Widened createSqliteDatabaseAdapter to accept synchronous SQLite clients that match the shared prepare/exec surface used by Node's node:sqlite, Bun's bun:sqlite, and compatible clients. The package no longer requires better-sqlite3 as an optional peer dependency.

@remix-run/fetch-proxy v0.8.0

Minor Changes

  • Add an X-Forwarded-Port header when xForwardedHeaders is enabled.

@remix-run/file-storage v0.13.4

Patch Changes

@remix-run/file-storage-s3 v0.1.1

Patch Changes

@remix-run/form-data-middleware v0.2.2

Patch Changes

@remix-run/form-data-parser v0.17.0

Minor Changes

  • BREAKING CHANGE: Errors thrown or rejected by a parseFormData() upload handler now propagate directly instead of being wrapped in a FormDataParseError.

Patch Changes

  • Preserve non-ASCII multipart field names and filenames when parsing multipart/form-data requests.

  • Bumped @remix-run/* dependencies:

@remix-run/fs v0.4.3

Patch Changes

@remix-run/lazy-file v5.0.3

Patch Changes

@remix-run/logger-middleware v0.2.0

Minor Changes

  • Colorize high-signal logger tokens when terminal color detection allows it by default, with a colors option to force colorized output on or off and support for CI, NO_COLOR, FORCE_COLOR, TERM=dumb, and TTY output streams when the process global is defined.

Patch Changes

@remix-run/mime v0.4.1

Patch Changes

  • Prefer video/mp4 for .mp4 files and image/x-icon for .ico files.

@remix-run/multipart-parser v0.16.0

Minor Changes

  • BREAKING CHANGE: MultipartPart.headers is now a plain decoded object keyed by lower-case header name instead of a native Headers instance. Access part headers with bracket notation like part.headers['content-type'] instead of part.headers.get('content-type').

    This lets multipart part headers preserve decoded UTF-8 field names and filenames that native Headers cannot store.

@remix-run/response v0.3.3

Patch Changes

@remix-run/static-middleware v0.4.7

Patch Changes

@remix-run/tar-parser v0.7.1

Patch Changes

  • Fix parsing tar entries whose file body ends exactly at a chunk boundary.

@remix-run/terminal v0.1.0

Minor Changes

  • Initial release of terminal output utilities for ANSI styles, color capability detection, escape sequences, and testable terminal streams. Automatic color detection disables styles for CI, NO_COLOR, TERM=dumb, and non-TTY output streams by default, and can be overridden with the colors option. Style helpers include common modifiers, foreground colors, background colors, bright variants, and preserve outer styles when nested formatted strings close inner styles.

@remix-run/test v0.2.0

Minor Changes

  • Add glob.exclude config for filtering paths during test discovery (defaults to node_modules/**)

  • Add code coverage reporting to remix-test

    • You can enable coverage with default settings vis remix-test --coverage or setting coverage:true in your remix-test.config.ts
    • Or you can specify individual coverage settings via the following config fields:
      • coverage.dir: Directory to store coverage information (default .coverage)
      • coverage.include: Array of globs for files to include in coverage
      • coverage.exclude: Array of globs for files to exclude from coverage
      • coverage.statements: Percentage threshold for statement coverage
      • coverage.lines: Percentage threshold for line coverage
      • coverage.branches: Percentage threshold for branch coverage
      • coverage.functions: Percentage threshold for function coverage

Patch Changes

  • Internal refactor to test discovery to better support test execution in bun.

    • Unlike Node, Bun's fs.promises.glob follows symbolic links and does not prune traversal via the exclude option, which can cause the test runner to enter node_modules symlink cycles in pnpm workspaces
    • Refactored the internal test discovery logic to detect and use Bun's native Glob class when running under the Bun runtime. Bun's Glob#scan does not follow symlinks by default, avoiding the cycle.
    • The Node runtime continues to use fs.promises.glob
  • Use native dynamic import() in Bun to load .ts and .tsx files in the test runner

  • Bumped @remix-run/* dependencies:

@remix-run/ui v0.0.1

Patch Changes

@github-actions
Copy link
Copy Markdown
Contributor

Preview Build Available

A preview build has been created for this PR. You can install it using:

pnpm install "remix-run/remix#preview/pr-11259&path:packages/remix"

This preview build will be updated automatically as you push new commits.

@remix-run-bot remix-run-bot force-pushed the release-pr/main branch 28 times, most recently from efb3a69 to 6d9c6d1 Compare April 27, 2026 20:16
@remix-run-bot remix-run-bot force-pushed the release-pr/main branch 9 times, most recently from 7d013ca to 63dcc98 Compare April 27, 2026 23:54
- @remix-run/assets: 0.1.0 -> 0.2.0
- @remix-run/auth: 0.1.1 -> 0.2.0
- @remix-run/component: 0.7.0 -> 0.8.0
- @remix-run/compression-middleware: 0.1.5 -> 0.1.6
- @remix-run/data-schema: 0.2.0 -> 0.3.0
- @remix-run/data-table-sqlite: 0.3.0 -> 0.4.0
- @remix-run/fetch-proxy: 0.7.1 -> 0.8.0
- @remix-run/file-storage: 0.13.3 -> 0.13.4
- @remix-run/file-storage-s3: 0.1.0 -> 0.1.1
- @remix-run/form-data-middleware: 0.2.1 -> 0.2.2
- @remix-run/form-data-parser: 0.16.0 -> 0.17.0
- @remix-run/fs: 0.4.2 -> 0.4.3
- @remix-run/lazy-file: 5.0.2 -> 5.0.3
- @remix-run/logger-middleware: 0.1.5 -> 0.2.0
- @remix-run/mime: 0.4.0 -> 0.4.1
- @remix-run/multipart-parser: 0.15.0 -> 0.16.0
- @remix-run/response: 0.3.2 -> 0.3.3
- @remix-run/static-middleware: 0.4.6 -> 0.4.7
- @remix-run/tar-parser: 0.7.0 -> 0.7.1
- @remix-run/terminal: 0.0.0 -> 0.1.0
- @remix-run/test: 0.1.0 -> 0.2.0
- @remix-run/ui: 0.0.0 -> 0.0.1
- remix: 3.0.0-alpha.5 -> 3.0.0-alpha.6
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.

1 participant