# metro changelog > metro release notes. - Vendor: metro - Category: Developer Tools - Official site: https://github.com/react/metro#readme - Tracked by: What's New (https://whatsnew.fyi/product/metro) - Harvested from: GitHub (react/metro) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v0.87.0 - Date: 2026-07-13 - Version: v0.87.0 - Original notes: https://github.com/react/metro/releases/tag/v0.87.0 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.87.0 - **[Breaking]**: Widen `Resolution` union returned by resolvers to allow `type: 'virtualModule'`, pending implementation. (https://github.com/react/metro/commit/8336654cd1416a80898b220102dae89ceef892fe by @robhogan) - **[Feature]**: `allowOptionalDependencies` defaults to `true` to align with RN and Expo (https://github.com/react/metro/pull/1775 by @robhogan) - **[Fix]**: Preserve accumulated and trailing config state when `mergeConfig` encounters an async config in a config chain (https://github.com/react/metro/pull/1754 by @durvesh1992) - **[Performance]** Don't rename `require` in bundle output, improve cold build time ~5%`(TBD by @robhogan) > NOTE: Experimental features are not covered by semver and can change at any time. - **[Experimental]**: `experimentalImportSupport`: Support namespace re-exports, such as `export * as Name from "module"` (https://github.com/react/metro/pull/1768 by @robhogan and @krystofwoldrich) - **[Experimental]**: `experimentalImportSupport`: Fix exports renamed by destructuring, and support exports of rest spreads (https://github.com/react/metro/pull/1772 by @robhogan) - **[Experimental]**: `experimentalImportSupport`: Fix precedence so explicit `export default` and named exports win over `export * from` (https://github.com/react/metro/pull/1773 by @robhogan) - **[Experimental]**: `experimentalImportSupport`: Evaluate `export from` dependencies in the module prelude instead of within or after the module body (https://github.com/react/metro/pull/1774 by @robhogan) **Full Changelog**: https://github.com/react/metro/compare/v0.86.0...v0.87.0 ### v0.86.0 - Date: 2026-07-06 - Version: v0.86.0 - Original notes: https://github.com/react/metro/releases/tag/v0.86.0 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.86.0 - **[Breaking]**: Metro now always emits whole-bundle source maps as [index maps](https://tc39.es/ecma426/#sec-index-source-map), and stores each module's map internally as a `VlqMap` (https://github.com/react/metro/pull/1764, https://github.com/react/metro/pull/1765 by @robhogan). Custom serialisers/transformers must consume/provide [`VlqMap`](https://github.com/react/metro/blob/v0.86.0/packages/metro-source-map/types/source-map.d.ts#L46-L49) mappings, not tuples. - **[Breaking]**: Remove deprecated default exports from public entry points (https://github.com/react/metro/pull/1759 by @robhogan) - **[Breaking]**: Remove support for deprecated YAML and `.es6` config files (https://github.com/react/metro/pull/1752 by @robhogan) - **[Breaking]**: Remove long-deprecated `resolver.blacklistRE` config in favour of `blockList` (https://github.com/react/metro/pull/1758 by @robhogan) - **[Fix]**: Fix `HttpStore` write retries incorrectly using the read endpoint's config (https://github.com/react/metro/pull/1751 by @durvesh1992) - **[Performance]**: Source maps work makes Metro use **50% less memory** and serve source maps 2x faster, for faster RNDT loads (https://github.com/react/metro/pull/1741, https://github.com/react/metro/pull/1742, https://github.com/react/metro/pull/1743, https://github.com/react/metro/pull/1760, https://github.com/react/metro/pull/1763, https://github.com/react/metro/pull/1764, https://github.com/react/metro/pull/1765 by @robhogan) **Full Changelog**: https://github.com/react/metro/compare/v0.85.0...v0.86.0 ### v0.85.0 - Date: 2026-06-23 - Version: v0.85.0 - Original notes: https://github.com/react/metro/releases/tag/v0.85.0 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.85.0 - **[Breaking]**: Raise minimum supported Node.js version to 22 (https://github.com/react/metro/pull/1715 by @huntie) - **[Feature]**: Implement `PACKAGE_SELF_RESOLVE` for self-referencing imports in the resolver (https://github.com/react/metro/pull/1721 by @robhogan) - **[Fix]**: Add ESM unwrapping to all CommonJS `require` calls (https://github.com/react/metro/pull/1675 by @kitten) - **[Fix]**: Fix Windows cross-drive path resolution in `metro-file-map` (https://github.com/react/metro/pull/1711 by @kitten) - **[Fix]**: Fix `"browser"`-spec bare-specifier → relative path redirects for nested and first-party `package.json`s (https://github.com/react/metro/pull/1720 by @robhogan) - **[Fix]**: Gracefully reject illegal `"browser"`-spec redirects of a bare specifier to an absolute path (https://github.com/react/metro/commit/e1f4d61842a99cd3f8cde0e8cfd135210d6fec3d by @robhogan) - **[Performance]**: Avoid intermediate allocations in `matchSubpathFromMainFields`, improving overall resolver performance ~5% (https://github.com/react/metro/commit/9341463424ef7753d2d17ef0d6943f3610a4e23a by @robhogan) **Full Changelog**: https://github.com/react/metro/compare/v0.84.4...v0.85.0 ### v0.84.4 - Date: 2026-04-30 - Version: v0.84.4 - Original notes: https://github.com/react/metro/releases/tag/v0.84.4 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.84.4 - **[Feature]**: Support `/[metro-watchFolders]/n/` paths for `.bundle` and `.map` requests (https://github.com/facebook/metro/pull/1695 by @huntie) - **[Fix]**: Fix regression to allow scale assets to be resolved again for single asset requests (https://github.com/facebook/metro/pull/1694 by @kitten) - **[Fix]**: Treat `import().catch()`, etc. as optional under `transformer.allowOptionalDependencies` (https://github.com/facebook/metro/pull/1697 by @robhogan) - **[Performance]**: Interleave resolution attempts with building node_modules candidate paths (https://github.com/facebook/metro/pull/1680 by @kitten) **Full Changelog**: https://github.com/facebook/metro/compare/v0.84.3...v0.84.4 ### v0.83.7 - Date: 2026-04-29 - Version: v0.83.7 - Original notes: https://github.com/react/metro/releases/tag/v0.83.7 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.83.7 *This release is on the [`0.83.x`](https://github.com/facebook/metro/tree/0.83.x) branch* - **[Feature]**: Support `/[metro-watchFolders]/n/` paths for `.bundle` and `.map` requests (https://github.com/facebook/metro/pull/1695 by @huntie) - **[Fix]**: Fix regression to allow scale assets to be resolved again for single asset requests (https://github.com/facebook/metro/pull/1694 by @kitten) - **[Fix]**: Treat `import().catch()`, etc. as optional under `transformer.allowOptionalDependencies` (https://github.com/facebook/metro/pull/1697 by @robhogan) - **[Performance]**: Interleave resolution attempts with building node_modules candidate paths (https://github.com/facebook/metro/pull/1680 by @kitten) **Full Changelog**: https://github.com/facebook/metro/compare/v0.83.6...v0.83.7 ### v0.83.6 - Date: 2026-04-13 - Version: v0.83.6 - Original notes: https://github.com/react/metro/releases/tag/v0.83.6 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.83.6 *This release is on the [`0.83.x`](https://github.com/facebook/metro/tree/0.83.x) branch* - **[Feature]**: Add keepalive "heartbeat" message to Fast Refresh connections (https://github.com/facebook/metro/pull/1685 by @robhogan) - **[Feature]**: Add `changeId` metadata on HMRClient `update-done` messages (https://github.com/facebook/metro/commit/1585e444284f by @huntie) - **[Fix]**: Include user-defined Babel config in transformer cache key to ensure correctness (https://github.com/facebook/metro/pull/1638 by @evanbacon) - **[Fix]**: Detection of contents of directories moved or cloned into a watched location (https://github.com/facebook/metro/pull/1660 by @robhogan) - **[Fix]**: Correctly detect contents as removed when a watched directory is moved, on macOS without Watchman (https://github.com/facebook/metro/commit/c9e9fe64a77c by @robhogan) - **[Performance]**: Optimize `PackageCache`: use `Map`/`Set`, cache null results, eliminate per-hit allocations (https://github.com/facebook/metro/commit/877b64ea5967 by @robhogan) - **[Types]**: Restore type exports from `metro` that were previously TypeScript-specific (https://github.com/facebook/metro/pull/1672 by @robhogan) > NOTE: Experimental features are not covered by semver and can change at any time. - **[Experimental]**: Add `config.unstable_fileMapPlugins` (https://github.com/facebook/metro/commit/567aa8b62b95 by @robhogan) ### v0.84.3 - Date: 2026-04-13 - Version: v0.84.3 - Original notes: https://github.com/react/metro/releases/tag/v0.84.3 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.84.3 - **[Feature]**: Add keepalive "heartbeat" message to Fast Refresh connections (https://github.com/facebook/metro/pull/1685 by @robhogan) - **[Feature]**: Add `changeId` metadata on HMRClient `update-done` messages (https://github.com/facebook/metro/commit/1585e444284f by @huntie) - **[Feature]:** `config.server.tls` now sets Metro to be exposed as an https server (#1657 by @vzaidman) - **[Fix]:** sync bundling progress between Metro cli and app hints (34ca6a6f621521a0780a54eeb32384b4f9c2f8ff by @vzaidman) - **[Fix]**: Include user-defined Babel config in transformer cache key to ensure correctness (https://github.com/facebook/metro/pull/1638 by @evanbacon) - **[Fix]**: Detection of contents of directories moved or cloned into a watched location (https://github.com/facebook/metro/pull/1660 by @robhogan) - **[Fix]**: Correctly detect contents as removed when a watched directory is moved, on macOS without Watchman (https://github.com/facebook/metro/commit/c9e9fe64a77c by @robhogan) - **[Performance]**: Optimize `PackageCache`: use `Map`/`Set`, cache null results, eliminate per-hit allocations (https://github.com/facebook/metro/commit/877b64ea5967 by @robhogan) - **[Types]**: Restore type exports from `metro` that were previously TypeScript-specific (https://github.com/facebook/metro/pull/1672 by @robhogan) > NOTE: Experimental features are not covered by semver and can change at any time. - **[Experimental]**: Add `config.unstable_fileMapPlugins` (https://github.com/facebook/metro/commit/567aa8b62b95 by @robhogan) **Full Changelog**: https://github.com/facebook/metro/compare/v0.84.2...v0.84.3 ### v0.83.5 - Date: 2026-03-01 - Version: v0.83.5 - Original notes: https://github.com/react/metro/releases/tag/v0.83.5 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.83.5 *This is a hotfix on the [`0.83.x`](https://github.com/facebook/metro/tree/0.83.x) branch.* - **[Feature]:** `config.server.tls` now sets Metro to be exposed as an https server (#1657 by @vzaidman) - **[Fix]:** sync bundling progress between Metro cli and app hints (34ca6a6f621521a0780a54eeb32384b4f9c2f8ff by @vzaidman) - **[Types]**: Restore accidentally removed publication of TypeScript types (#1662 by @robhogan) **Full Changelog**: https://github.com/facebook/metro/compare/v0.83.4...v0.83.5 ### v0.84.2 - Date: 2026-02-27 - Version: v0.84.2 - Original notes: https://github.com/react/metro/releases/tag/v0.84.2 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.84.2 - **[Types]**: Restore publishing of TypeScript types to npm (https://github.com/facebook/metro/pull/1662 by @robhogan) Full changelog: https://github.com/facebook/metro/compare/v0.84.1...v0.84.2 ### v0.84.1 - Date: 2026-02-25 - Version: v0.84.1 - Original notes: https://github.com/react/metro/releases/tag/v0.84.1 - Permalink: https://whatsnew.fyi/product/metro/releases/v0.84.1 * **[Fix]** sync bundling progress between Metro cli and app hints (34ca6a6f621521a0780a54eeb32384b4f9c2f8ff by @vzaidman) * **[Feature]** `config.server.tls` now sets Metro to be exposed as an https server (35ff94bec847b3ef6ea5f9d81a368cff4df64926 by @vzaidman) **Full Changelog**: https://github.com/facebook/metro/compare/v0.84.0...v0.84.1