Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
43f2087
fix(micro-effect, runtime-core): address code review issues
ScriptedAlchemy Feb 1, 2026
7bf0b83
refactor(micro-effect, runtime-core): structural consolidation to red…
ScriptedAlchemy Feb 1, 2026
979b39b
fix(runtime-core): stabilize micro-effect tests
ScriptedAlchemy Feb 1, 2026
9f79a20
chore(module-federation): merge main into feat/effect-ts
ScriptedAlchemy Feb 1, 2026
9801180
refactor(runtime-core): phase 2 structural consolidation
ScriptedAlchemy Feb 1, 2026
55ed3ab
refactor(runtime-core): phase 3 deep structural consolidation (~20% L…
ScriptedAlchemy Feb 1, 2026
4cbb042
refactor(runtime-core): extract load entry error recovery helper
ScriptedAlchemy Feb 1, 2026
8a35444
chore: format bundle-size workflow and script
ScriptedAlchemy Feb 1, 2026
001792a
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 5, 2026
0bfdb22
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 6, 2026
5273520
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 7, 2026
3ad7611
fix(core): use direct actionlint binary install instead of raven-actions
ScriptedAlchemy Feb 7, 2026
b39f7bd
Merge remote-tracking branch 'origin/main' into HEAD
ScriptedAlchemy Feb 8, 2026
4c7556e
fix(runtime-core): restore effect init path after merge
ScriptedAlchemy Feb 8, 2026
84a95f1
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 9, 2026
bca6396
fix(runtime-core): dedupe concurrent remote initialization
ScriptedAlchemy Feb 9, 2026
b6c8e1a
fix(chrome-devtools): wait for proxy module info before asserts
ScriptedAlchemy Feb 9, 2026
f05ccdd
fix(runtime-core): satisfy promise typing in init dedupe path
ScriptedAlchemy Feb 9, 2026
8425895
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 9, 2026
8c70329
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 12, 2026
0396648
chore(core): add changeset coverage for pr #4339
ScriptedAlchemy Feb 12, 2026
b44896d
chore(runtime-core): contextualize changeset coverage for effect runt…
ScriptedAlchemy Feb 12, 2026
274ee21
chore(runtime-core): merge origin/main
ScriptedAlchemy Feb 14, 2026
f75ad4a
Merge branch 'main' into feat/effect-ts
ScriptedAlchemy Feb 14, 2026
e0f1bb4
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 16, 2026
54aa23e
Merge origin/main into feat/effect-ts
ScriptedAlchemy Feb 16, 2026
e12d1c0
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 19, 2026
11dfd3c
Merge branch 'main' into feat/effect-ts
ScriptedAlchemy Feb 19, 2026
01ef0e8
fix(module-federation): sync lockfile for effect-ts CI
ScriptedAlchemy Feb 24, 2026
3537f26
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 24, 2026
428119a
fix(dts-plugin): align workspace package entries for test compilation
ScriptedAlchemy Feb 24, 2026
964723b
fix(module-federation): align package entry fields with built outputs
ScriptedAlchemy Feb 24, 2026
1cd1894
Merge branch 'main' into feat/effect-ts
ScriptedAlchemy Feb 25, 2026
8f720bb
fix(utils): tolerate rsbuild plugin type skew in rslib config
ScriptedAlchemy Feb 25, 2026
7ba29b3
fix(managers): align package.json entrypoints with actual build outputs
ScriptedAlchemy Feb 25, 2026
506f77a
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 25, 2026
f5c915e
Merge origin/main into feat/effect-ts
ScriptedAlchemy Feb 26, 2026
22184cf
Merge branch 'main' into feat/effect-ts
ScriptedAlchemy Feb 26, 2026
7200d30
chore: merge main into feat/effect-ts
ScriptedAlchemy Feb 27, 2026
b9851f4
fix(metro-core): restore metro compatibility shim
ScriptedAlchemy Feb 27, 2026
3ea8f17
fix(module-federation): include metro-core in metro app watchFolders
ScriptedAlchemy Feb 27, 2026
4efab6a
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Feb 27, 2026
900668b
Merge branch 'main' into feat/effect-ts
ScriptedAlchemy Feb 28, 2026
5dd3d30
chore: merge main into feat/effect-ts
ScriptedAlchemy Feb 28, 2026
eb84e4f
Merge branch 'main' into feat/effect-ts
ScriptedAlchemy Mar 2, 2026
0fdf25e
Merge origin/main into feat/effect-ts
ScriptedAlchemy Mar 3, 2026
4ff3e8a
Merge remote-tracking branch 'origin/main' into feat/effect-ts
ScriptedAlchemy Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
"@module-federation/error-codes",
"@module-federation/inject-external-runtime-core-plugin",
"@module-federation/runtime-core",
"@module-federation/micro-effect",
"create-module-federation",
"@module-federation/cli",
"@module-federation/rspress-plugin",
Expand Down
27 changes: 27 additions & 0 deletions .changeset/effect-runtime-consolidation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
'@module-federation/cli': patch
'@module-federation/data-prefetch': patch
'@module-federation/devtools': patch
'@module-federation/dts-plugin': patch
'@module-federation/enhanced': patch
'@module-federation/error-codes': patch
'@module-federation/esbuild': patch
'@module-federation/inject-external-runtime-core-plugin': patch
'@module-federation/managers': patch
'@module-federation/manifest': patch
'@module-federation/metro': patch
'@module-federation/micro-effect': patch
'@module-federation/nextjs-mf': patch
'@module-federation/retry-plugin': patch
'@module-federation/rsbuild-plugin': patch
'@module-federation/rspack': patch
'@module-federation/rspress-plugin': patch
'@module-federation/runtime': patch
'@module-federation/runtime-core': patch
'@module-federation/runtime-tools': patch
'@module-federation/sdk': patch
'@module-federation/utilities': patch
'@module-federation/webpack-bundler-runtime': patch
---

Align package surfaces impacted by the Effect-based runtime-core migration, rslib structural consolidation, Metro compatibility updates, and related tooling/docs sync across this branch.
16 changes: 3 additions & 13 deletions .github/workflows/e2e-manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,22 +57,12 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=manifest-webpack-host || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=manifest-webpack-host

- name: E2E Test for Manifest Demo Development
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: node tools/scripts/run-manifest-e2e.mjs --mode=dev

- name: E2E Test for Manifest Demo Production
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: node tools/scripts/run-manifest-e2e.mjs --mode=prod
14 changes: 2 additions & 12 deletions .github/workflows/e2e-modern-ssr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,20 +56,10 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=modernjs || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=modernjs

- name: E2E Test for Modern.js SSR
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
uses: nick-fields/retry@v3
with:
max_attempts: 2
Expand Down
14 changes: 2 additions & 12 deletions .github/workflows/e2e-modern.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,20 +57,10 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=modernjs || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=modernjs

- name: E2E Test for ModernJS
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: npx kill-port --port 4001 && npx nx run-many --target=test:e2e --projects=modernjs --parallel=1 && npx kill-port --port 4001

- name: Kill ports
Expand Down
14 changes: 2 additions & 12 deletions .github/workflows/e2e-next-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,8 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=3000-home || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=3000-home

- name: E2E Test for Next.js Dev
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: node tools/scripts/run-next-e2e.mjs --mode=dev
14 changes: 2 additions & 12 deletions .github/workflows/e2e-next-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,18 +56,8 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=3000-home || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=3000-home

- name: E2E Test for Next.js Prod
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: node tools/scripts/run-next-e2e.mjs --mode=prod
14 changes: 2 additions & 12 deletions .github/workflows/e2e-node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,8 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=node-local-remote,node-remote,node-dynamic-remote-new-version,node-dynamic-remote || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=node-local-remote,node-remote,node-dynamic-remote-new-version,node-dynamic-remote

- name: E2E Node Federation
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: npx nx run-many --target=serve --projects=node-local-remote,node-remote,node-dynamic-remote-new-version,node-dynamic-remote --parallel=10 & echo "done" && sleep 25 && npx nx run-many --target=serve --projects=node-host & sleep 5 && npx wait-on tcp:3333 && npx nx run node-host-e2e:test:e2e
14 changes: 2 additions & 12 deletions .github/workflows/e2e-router.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,8 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=router-host-2000,router-host-v5-2200,router-host-vue3-2100,router-remote1-2001,router-remote2-2002,router-remote3-2003,router-remote4-2004 || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=router-host-2000,router-host-v5-2200,router-host-vue3-2100,router-remote1-2001,router-remote2-2002,router-remote3-2003,router-remote4-2004

- name: E2E Test for Runtime Demo
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: node tools/scripts/run-router-e2e.mjs --mode=dev
14 changes: 2 additions & 12 deletions .github/workflows/e2e-runtime.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,8 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=3005-runtime-host || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=3005-runtime-host

- name: E2E Test for Runtime Demo
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: npx kill-port --port 3005,3006,3007 && pnpm run app:runtime:dev & echo "done" && sleep 20 && npx nx run-many --target=test:e2e --projects=3005-runtime-host --parallel=1 && lsof -ti tcp:3005,3006,3007 | xargs kill
16 changes: 3 additions & 13 deletions .github/workflows/e2e-shared-tree-shaking.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,22 +56,12 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=shared-tree-shaking-with-server-host || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=shared-tree-shaking-with-server-host

- name: E2E Test for Shared Tree Shaking Demo - Mode runtime-infer
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: npx kill-port --port 3001,3002 && nx run shared-tree-shaking-no-server-host:test:e2e && lsof -ti tcp:3001,3002 | xargs kill

- name: E2E Test for Shared Tree Shaking Demo - Mode server-calc
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: npx kill-port --port 3001,3002,3003 && nx run shared-tree-shaking-with-server-host:test:e2e && lsof -ti tcp:3001,3002,3003 | xargs kill
16 changes: 3 additions & 13 deletions .github/workflows/e2e-treeshake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,22 +56,12 @@ jobs:

- name: Run condition check script
id: check-ci
run: |
ci_status=0
node tools/scripts/ci-is-affected.mjs --appName=treeshake-server,treeshake-frontend || ci_status=$?
if [ "$ci_status" -eq 0 ]; then
echo "run-e2e=true" >> "$GITHUB_OUTPUT"
elif [ "$ci_status" -eq 1 ]; then
echo "run-e2e=false" >> "$GITHUB_OUTPUT"
else
echo "ci-is-affected failed with unexpected exit code: $ci_status" >&2
exit "$ci_status"
fi
run: node tools/scripts/ci-is-affected.mjs --appName=treeshake-server,treeshake-frontend

- name: E2E Treeshake Server
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: npx nx run treeshake-server:test

- name: E2E Treeshake Frontend
if: steps.check-ci.outputs.run-e2e == 'true'
if: steps.check-ci.outcome == 'success'
run: npx nx run treeshake-frontend:e2e
49 changes: 26 additions & 23 deletions apps/metro-example-host/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,29 +1,31 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.9)
activesupport (7.1.6)
CFPropertyList (3.0.7)
base64
nkf
rexml
activesupport (7.2.2.1)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
mutex_m
securerandom (>= 0.3)
tzinfo (~> 2.0)
addressable (2.8.8)
public_suffix (>= 2.0.2, < 8.0)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
base64 (0.3.0)
benchmark (0.5.0)
bigdecimal (4.0.1)
base64 (0.2.0)
benchmark (0.4.0)
bigdecimal (3.1.9)
claide (1.1.0)
cocoapods (1.15.2)
addressable (~> 2.8)
Expand Down Expand Up @@ -64,33 +66,34 @@ GEM
cocoapods-try (1.2.0)
colored2 (3.1.2)
concurrent-ruby (1.3.3)
connection_pool (2.5.5)
drb (2.2.3)
connection_pool (2.5.3)
drb (2.2.1)
escape (0.0.4)
ethon (0.15.0)
ethon (0.16.0)
ffi (>= 1.15.0)
ffi (1.17.3)
ffi (1.17.2)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
httpclient (2.9.0)
mutex_m
i18n (1.14.8)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
json (2.18.1)
json (2.11.3)
logger (1.7.0)
minitest (5.26.1)
minitest (5.25.5)
molinillo (0.8.0)
mutex_m (0.3.0)
nanaimo (0.3.0)
nap (1.1.0)
netrc (0.11.0)
nkf (0.2.0)
public_suffix (4.0.7)
rexml (3.4.4)
rexml (3.4.1)
ruby-macho (2.5.1)
securerandom (0.3.2)
typhoeus (1.5.0)
ethon (>= 0.9.0, < 0.16.0)
securerandom (0.4.1)
typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
xcodeproj (1.25.1)
Expand All @@ -115,7 +118,7 @@ DEPENDENCIES
xcodeproj (< 1.26.0)

RUBY VERSION
ruby 2.7.6p219
ruby 3.1.0p0

BUNDLED WITH
2.1.4
2.6.1
10 changes: 3 additions & 7 deletions apps/metro-example-host/metro.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,11 @@ const {withModuleFederation} = require('@module-federation/metro');
*/

const config = {
resolver: {
extraNodeModules: {
'@babel/runtime': path.resolve(__dirname, 'node_modules/@babel/runtime'),
},
useWatchman: false,
},
resolver: {useWatchman: false},
watchFolders: [
path.resolve(__dirname, '../../node_modules'),
path.resolve(__dirname, '../../packages'),
path.resolve(__dirname, '../../packages/core'),
path.resolve(__dirname, '../../packages/metro-core'),
],
};

Expand Down
Loading
Loading