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
75bf05b
feat: enable asyncStartup in app configs
cursoragent Feb 9, 2026
e71796a
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 9, 2026
0e178d4
fix: resolve react-ts and storybook builds
cursoragent Feb 9, 2026
debaec7
ci: add xvfb for router e2e
cursoragent Feb 9, 2026
ab7ca6f
feat: enable asyncStartup in rsbuild router apps
cursoragent Feb 9, 2026
38127de
Merge remote-tracking branch 'origin/main' into cursor/apps-async-sta…
ScriptedAlchemy Feb 9, 2026
7721717
Branch async startup tests (#4403)
ScriptedAlchemy Feb 11, 2026
42a9104
Merge remote-tracking branch 'origin/main' into cursor/apps-async-sta…
ScriptedAlchemy Feb 12, 2026
cb8de78
chore(core): add changeset coverage for pr #4399
ScriptedAlchemy Feb 12, 2026
64b5200
Merge branch 'cursor/apps-async-startup-default-8b48' of github.com:m…
ScriptedAlchemy Feb 12, 2026
996095d
chore(core): add contextual multi-package changeset for async startup…
ScriptedAlchemy Feb 12, 2026
bc5b49c
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 14, 2026
49b012e
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 14, 2026
365e124
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 15, 2026
6704c86
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 15, 2026
7e329fe
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 16, 2026
3f8f312
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 19, 2026
b1b5e2b
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 19, 2026
16d3df5
Merge remote-tracking branch 'origin/main' into cursor/apps-async-sta…
ScriptedAlchemy Feb 24, 2026
995a4f1
Merge remote-tracking branch 'origin/main' into HEAD
ScriptedAlchemy Feb 24, 2026
3430362
Merge branch 'cursor/apps-async-startup-default-8b48' of github.com:m…
ScriptedAlchemy Feb 24, 2026
14eb943
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 25, 2026
d042654
fix(module-federation): increase node federation memory limits for ci
ScriptedAlchemy Feb 25, 2026
538ae04
fix(node-host-e2e): move node federation startup into target runner
ScriptedAlchemy Feb 25, 2026
bdea21c
test(node-host-e2e): inline e2e orchestration in nx target
ScriptedAlchemy Feb 25, 2026
f8a6b14
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 25, 2026
c6c65ff
chore(module-federation): keep app-only async startup conversion
ScriptedAlchemy Feb 25, 2026
0ae45a5
refactor: inline bootstrap entries and enable asyncStartup templates
ScriptedAlchemy Feb 25, 2026
5dbab10
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 26, 2026
55810f3
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 26, 2026
54d41a7
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 27, 2026
042c388
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 27, 2026
1ebc6df
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 28, 2026
eac15a0
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Feb 28, 2026
e392b60
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 2, 2026
1d11242
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 3, 2026
d6cf140
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 5, 2026
f05a6c7
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 9, 2026
d555922
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 10, 2026
0012575
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 11, 2026
e7f2945
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 11, 2026
6f9057a
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 11, 2026
9433e8d
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 12, 2026
14ca561
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 13, 2026
fac1f23
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 17, 2026
eca94b9
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 18, 2026
f6319a7
Merge branch 'main' into cursor/apps-async-startup-default-8b48
ScriptedAlchemy Mar 20, 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
18 changes: 0 additions & 18 deletions apps/bundle-size/src/bootstrap.tsx

This file was deleted.

18 changes: 17 additions & 1 deletion apps/bundle-size/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
import React, { StrictMode } from 'react';
import { init } from '@module-federation/enhanced/runtime';
import * as ReactDOM from 'react-dom/client';
import HelloWorld from './HelloWorld';

require('./bootstrap');
init({
name: 'bundle_size',
remotes: [], // No remote references needed
});

const rootElement = document.getElementById('root');
if (!rootElement) {
throw new Error('Failed to find the root element');
}

const root = ReactDOM.createRoot(rootElement);
root.render(
React.createElement(StrictMode, null, React.createElement(HelloWorld)),
);
10 changes: 0 additions & 10 deletions apps/esbuild/mfe1/bootstrap.tsx

This file was deleted.

3 changes: 3 additions & 0 deletions apps/esbuild/mfe1/federation.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ const {

module.exports = withFederation({
name: 'mfe1',
experiments: {
asyncStartup: true,
},
filename: './mfe1/remoteEntry.js',
exposes: {
'./component': './mfe1/app',
Expand Down
11 changes: 8 additions & 3 deletions apps/esbuild/mfe1/main.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
(async () => {
await import('./bootstrap');
})();
import React from 'react';
import ReactDOM from 'react-dom';
import { App } from './app';

ReactDOM.render(
React.createElement(React.StrictMode, null, React.createElement(App, null)),
document.getElementById('root'),
);
16 changes: 0 additions & 16 deletions apps/esbuild/shell/bootstrap.tsx

This file was deleted.

3 changes: 3 additions & 0 deletions apps/esbuild/shell/federation.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ const {

module.exports = withFederation({
name: 'host',
experiments: {
asyncStartup: true,
},
filename: './shell/remoteEntry.js',
remotes: {
mfe1: 'http://localhost:3001/remoteEntry.js',
Expand Down
15 changes: 12 additions & 3 deletions apps/esbuild/shell/main.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
//@ts-nocheck

(async () => {
import('./bootstrap');
})();
import React from 'react';
import ReactDOM from 'react-dom';
import { App } from './app';

import { of } from 'rxjs';

console.log(of);

ReactDOM.render(
React.createElement(React.StrictMode, null, React.createElement(App, null)),
document.getElementById('root'),
);
13 changes: 0 additions & 13 deletions apps/manifest-demo/3009-webpack-provider/src/bootstrap.tsx

This file was deleted.

13 changes: 12 additions & 1 deletion apps/manifest-demo/3009-webpack-provider/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
import('./bootstrap');
import React, { StrictMode } from 'react';
import * as ReactDOM from 'react-dom/client';

import App from './App';

const rootElement = document.getElementById('root');
if (!rootElement) {
throw new Error('Failed to find the root element');
}

const root = ReactDOM.createRoot(rootElement);
root.render(React.createElement(StrictMode, null, React.createElement(App)));
1 change: 1 addition & 0 deletions apps/manifest-demo/3009-webpack-provider/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ module.exports = (_env, argv = {}) => {
},
},
experiments: {
asyncStartup: true,
externalRuntime: true,
},
}),
Expand Down
1 change: 1 addition & 0 deletions apps/manifest-demo/3010-rspack-provider/rspack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ module.exports = (_env, argv = {}) => {
},
dataPrefetch: true,
experiments: {
asyncStartup: true,
externalRuntime: true,
},
}),
Expand Down
13 changes: 0 additions & 13 deletions apps/manifest-demo/3010-rspack-provider/src/bootstrap.tsx

This file was deleted.

13 changes: 12 additions & 1 deletion apps/manifest-demo/3010-rspack-provider/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
import('./bootstrap');
import React, { StrictMode } from 'react';
import * as ReactDOM from 'react-dom/client';

import App from './App';

const rootElement = document.getElementById('root');
if (!rootElement) {
throw new Error('Failed to find the root element');
}

const root = ReactDOM.createRoot(rootElement);
root.render(React.createElement(StrictMode, null, React.createElement(App)));
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ module.exports = (_env, argv = {}) => {
},
},
experiments: {
asyncStartup: true,
externalRuntime: true,
},
}),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ module.exports = (_env, argv = {}) => {
},
manifest: false,
experiments: {
asyncStartup: true,
externalRuntime: true,
},
}),
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
import('./bootstrap');
import React from 'react';
import { createRoot } from 'react-dom/client';
import App from './App';

const container = document.getElementById('root');
const root = createRoot(container);
root.render(<App />);
1 change: 0 additions & 1 deletion apps/manifest-demo/webpack-host/src/index.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// import('./bootstrap');
import React, { StrictMode, lazy } from 'react';
import { init } from '@module-federation/runtime';
import * as ReactDOM from 'react-dom/client';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
export default createModuleFederationConfig({
name: 'host',
experiments: {
asyncStartup: true,
},
remotes: {
remote: 'provider@http://localhost:5002/mf-manifest.json',
'provider-csr': 'provider_csr@http://localhost:5003/mf-manifest.json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ import { createModuleFederationConfig } from '@module-federation/rsbuild-plugin'

export default createModuleFederationConfig({
name: 'provider_csr',
experiments: {
asyncStartup: true,
},
filename: 'remoteEntry.js',
exposes: {
'.': './src/index.tsx',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
export default createModuleFederationConfig({
name: 'provider',
experiments: {
asyncStartup: true,
},
filename: 'remoteEntry.js',
exposes: {
'./BasicComponent': './src/components/BasicComponent/index.tsx',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
export default createModuleFederationConfig({
name: 'dynamic_nested_remote',
experiments: {
asyncStartup: true,
},
filename: 'remoteEntry.js',
exposes: {
'./Content': './src/components/Content.tsx',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
export default createModuleFederationConfig({
name: 'dynamic_remote',
experiments: {
asyncStartup: true,
},
exposes: {
'.': './src/components/Image.tsx',
},
Expand Down
3 changes: 3 additions & 0 deletions apps/modernjs-ssr/dynamic-remote/module-federation.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
export default createModuleFederationConfig({
name: 'dynamic_remote',
experiments: {
asyncStartup: true,
},
filename: 'remoteEntry.js',
exposes: {
'.': './src/Index.tsx',
Expand Down
3 changes: 3 additions & 0 deletions apps/modernjs-ssr/host/module-federation.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
export default createModuleFederationConfig({
name: 'host',
experiments: {
asyncStartup: true,
},
remotes: {
remote: 'remote@http://localhost:3051/static/mf-manifest.json',
nested_remote: 'nested_remote@http://localhost:3052/mf-manifest.json',
Expand Down
3 changes: 3 additions & 0 deletions apps/modernjs-ssr/nested-remote/module-federation.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
export default createModuleFederationConfig({
name: 'nested_remote',
experiments: {
asyncStartup: true,
},
filename: 'remoteEntry.js',
exposes: {
'./Content': './src/components/Content.tsx',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
export default createModuleFederationConfig({
name: 'remote',
experiments: {
asyncStartup: true,
},
exposes: {
'./Image': './src/components/Image.tsx',
},
Expand Down
3 changes: 3 additions & 0 deletions apps/modernjs-ssr/remote/module-federation.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { createModuleFederationConfig } from '@module-federation/modern-js-v3';
export default createModuleFederationConfig({
name: 'remote',
experiments: {
asyncStartup: true,
},
manifest: {
filePath: 'static',
},
Expand Down
3 changes: 3 additions & 0 deletions apps/node-dynamic-remote-new-version/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ module.exports = (_env, argv = {}) => {
axios: { singleton: true },
lodash: { singleton: true },
},
experiments: {
asyncStartup: true,
},
}),
],
watchOptions: {
Expand Down
3 changes: 3 additions & 0 deletions apps/node-dynamic-remote/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ module.exports = (_env, argv = {}) => {
axios: { singleton: true },
lodash: { singleton: true },
},
experiments: {
asyncStartup: true,
},
}),
],
watchOptions: {
Expand Down
3 changes: 3 additions & 0 deletions apps/node-local-remote/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ module.exports = (_env, argv = {}) => {
exposes: {
'./test': './src/expose.js',
},
experiments: {
asyncStartup: true,
},
}),
],
watchOptions: {
Expand Down
3 changes: 3 additions & 0 deletions apps/node-remote/module-federation.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ import { createModuleFederationConfig } from '@module-federation/rsbuild-plugin'

export default createModuleFederationConfig({
name: 'node_remote',
experiments: {
asyncStartup: true,
},
filename: 'remoteEntry.js',
exposes: {
'./test': './src/expose.js',
Expand Down
28 changes: 0 additions & 28 deletions apps/node-remote/src/bootstrap.js

This file was deleted.

Loading
Loading