Repository navigation
Conversation
Preserve ordered and mutable runtime behavior while reducing remote matching and semver allocations. Add calibrated performance reports, startup profiles, and complete runtime payload budgets in CI.
🦋 Changeset detectedLatest commit: c27a72f The changes in this PR will be included in the next version bump. This PR includes changesets to release 48 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
@module-federation/devtools
@module-federation/cli
create-module-federation
@module-federation/dts-plugin
@module-federation/enhanced
@module-federation/error-codes
@module-federation/esbuild
@module-federation/managers
@module-federation/manifest
@module-federation/metro
@module-federation/metro-plugin-rnc-cli
@module-federation/metro-plugin-rnef
@module-federation/metro-plugin-rock
@module-federation/modern-js
@module-federation/modern-js-v3
@module-federation/native-federation-tests
@module-federation/native-federation-typescript
@module-federation/nextjs-mf
@module-federation/node
@module-federation/observability-plugin
@module-federation/playground
@module-federation/retry-plugin
@module-federation/rsbuild-plugin
@module-federation/rspack
@module-federation/rspress-plugin
@module-federation/rstest
@module-federation/runtime
@module-federation/runtime-core
@module-federation/runtime-tools
@module-federation/sdk
@module-federation/storybook-addon
@module-federation/third-party-dts-extractor
@module-federation/treeshake-frontend
@module-federation/treeshake-server
@module-federation/typescript
@module-federation/utilities
@module-federation/webpack-bundler-runtime
@module-federation/bridge-react
@module-federation/bridge-react-webpack-plugin
@module-federation/bridge-shared
@module-federation/bridge-vue3
@module-federation/inject-external-runtime-core-plugin
commit: |
Bundle Size Report10 package(s) changed, 33 unchanged. Package dist + ESM entry
Bundle targets
Consumer scenarios
Total dist (raw): 23.62 MB (-4520 B (-0.0%)) Bundle sizes are generated with rslib (Rspack). Package-root metrics preserve the historical report. Tracked subpath exports such as |
Remote matching allocated expose strings even for failed candidates, large compiler remote lists scanned every request, and shared version selection repeatedly created the same regular expressions. This reduces that work while preserving public APIs, live runtime remote mutations, configuration order, fallback requests and share scopes.
Runtime Core PerformanceCI: seven interleaved A/A + A/B rounds on Ubuntu 24.04 / Node 24.18.1, real runtime API startup diagnostics, shared-prefix controls, separate V8 profiles, complete browser payload measurements, job summaries and raw artifacts.CPU timings remain advisory and are reported against same-runner A/A noise. The size gate covers full-featured runtime closures in webpack and esbuild, allowing max(1%, 1,024 raw bytes) and max(1%, 128 compressed bytes) of growth. Feature opt-outs cannot satisfy that gate.
Local webpack web-runtime payload: 64,704 B raw (-71), 18,841 B gzip (+28), 16,726 B Brotli (+6). The tradeoff is reduced CPU work with essentially unchanged compressed payload. Cold-start and full-build improvements are not claimed; the Node fixture excludes network, browser rendering and application work. Shared prefix hooks are measured without changing their implementation.
Validation:
pnpm exec turbo run build --filter=@module-federation/runtime-core --filter=@module-federation/enhanced --concurrency=4— 15 tasks passed.pnpm --filter @module-federation/runtime-core run test— 140 passed.pnpm --filter @module-federation/enhanced run test— 505 passed, one existing skip; six serial tests passed.pnpm exec prettier --check .actionlint .github/workflows/runtime-performance.yml(v1.7.12).node --test tools/scripts/report-runtime-dod.test.mjs— three gate tests passed.node tools/scripts/benchmark-runtime-dod.mjs --baseline 512bef835 --rounds 1 --output /private/tmp/mf-dod-ci-pilot.json --profile-dir /private/tmp/mf-dod-ci-profiles— complete harness/profile smoke test. The subsequent seven-round local run completed four rounds before being stopped to move formal timing validation to CI.node tools/scripts/measure-runtime-footprint.mjs --baseline 512bef835 --output tmp/runtime-performance/size.json— 23 paired payload scenarios; repeated web-full hashes matched.node tools/scripts/report-runtime-dod.mjs /private/tmp/mf-dod-ci-final.json tmp/runtime-performance/size.json tmp/runtime-performance/report.md— size gate passed.git diff --check.The pre-existing skipped test is the
HoistContainerReferencesPluginfederationRuntimeOriginModule case. Browser/network E2E, unrelated package suites, Metro and release execution were not run locally: this change affects runtime CPU matching/parsing and compiler lookup; existing package integration suites and the new CPU/payload workflow cover that scope. Reproduction and interpretation details are intools/scripts/runtime-performance.md.