- Upgrade the stable EMP v4 build stack to Rspack
2.2.1, Rsbuild2.2.1, Rslib1.0.0-rc.2, and Module Federation2.9.0. - Add compatibility-oriented build presets and acceptance coverage for modern modules, Android 6, and Chrome 60 targets.
- Strengthen dependency maintenance with deterministic core-upgrade detection, lockfile security remediation, and pnpm
10.34.5release contracts. - Align all 17 core
@empjs/*packages to4.0.1on npm'slatestdist-tag while preserving CDN and legacy runtime packages as independent version lines.
- Upgrade Rspack core/dev-server, Rsdoctor, Rstest, SWC, HTML integration, type checking, and the complete Module Federation 2 runtime/DTS closure.
- Remove the deprecated Rspack
cache.maxVersionspassthrough and keep persistent cache lifetime configuration on supported options. - Migrate the Rslib v1 prerelease line to
1.0.0-rc.2with Rsbuild2.2.1and native TypeScript 7 declaration generation.
- Add explicit compatibility build presets and preserve modern-module optimization coverage.
- Extend real application acceptance for legacy Android/Chrome targets, auto pages, Module Federation runtime behavior, and package output contracts.
- Add a machine-readable core dependency upgrade policy with release age, peer/engine, prerelease, and migration-signal checks.
- Refresh vulnerable dependency chains without widening the unified release scope to CDN or legacy library packages.
- Keep CI, release checks, dry-run publishing, and trusted npm publishing aligned across Node.js 20, 22, and 24.
corepack pnpm workflow:checkcorepack pnpm test:rulescorepack pnpm release:checkcorepack pnpm ci:verifycorepack pnpm empbuildcorepack pnpm test:browser:allcorepack pnpm release:publish:dry -- --skip-build --force-all --tag latestgit diff --check
- Compare:
v4.0.0...v4.0.1.
- Publish the first stable EMP v4 line with Rspack 2, Module Federation 2.8, TypeScript 7 and Node.js 24 support.
- Promote the v4 branch to the default
mainbranch while preserving the previous v3 line asv3. - Align the root workspace and all 17 core
@empjs/*packages to4.0.0on npm'slatestdist-tag. - Preserve CDN and legacy runtime packages as independent version lines.
- feat(module-federation): support runtime registration/loading, ESM containers, async remote chunks and deterministic remote overrides.
- feat(frameworks): cover React, Vue 2, Vue 3, cross-version Vue mounting and Tailwind remote style isolation.
- feat(cli): ship the agent-first project generator and stable v4 dependency templates.
- chore(toolchain): align the stable line on Rspack 2.1.4, Module Federation 2.8.0, Rslib 0.23.2 and TypeScript 7.0.2.
- chore(release): publish the bounded 17-package core set with trusted publishing and guarded dry-run support.
- chore(release): switch public documentation and generated projects from the
rcline to stable v4.
corepack pnpm workflow:checkcorepack pnpm ci:verifycorepack pnpm empbuildcorepack pnpm apps:acceptancecorepack pnpm test:apps:browsercorepack pnpm release:publish:dry -- --skip-build --force-all --tag latestgit diff --check
- Compare:
v4.0.0-rc.5...v4.0.0.
- Make
forceRemoteshonor the documented alias-first, name-fallback contract and correct the full-entry configuration example. - Add a real Chromium Module Federation test that proves an invalid remote manifest is overridden before runtime fetch and module loading.
- Harden manual npm publishing with dry-run defaults, shell-safe inputs, exact version confirmation, and tag-to-package version validation.
- Align the root workspace, generated project templates, and 17 core
@empjs/*packages to4.0.0-rc.5.
- GitHub Release cover must use the EMP Federation Fox project IP in the 左上角 brand lockup, following the Rspack-style layout: project IP mark +
EMP v4name at the upper-left, version pill at the upper-right, and the release topic in the main visual area. - Use
docs/assets/emp-v4-readme-logo.pngas the IP source, or generate a version-specificdocs/assets/emp-v4-4.0.0-rc.5-release-hero.pngasset with imagegen. - Upload the selected cover as a GitHub Release asset and place it before the 中文 release notes.
- fix(module-federation): apply full-entry overrides by remote alias first and fall back to the remote name.
- test(module-federation): load a real exposed module through the overridden manifest URL in Chromium.
- docs(migration): promote the maintained v4 migration guide and archive the alpha-specific path.
- chore(release): default manual workflow runs to dry-run and require an exact version confirmation for production publishing.
- fix(release): pass workflow inputs through the environment before validation to prevent shell interpolation.
- fix(ci): build
@empjs/sharedeclarations before app tsconfig checks on clean runners. - chore(release): keep
apps/**,website,@empjs/cdn-*, and@empjs/lib-*outside the unified release set.
corepack pnpm workflow:checkcorepack pnpm test:rulescorepack pnpm ci:verifycorepack pnpm empbuildcorepack pnpm apps:acceptancecorepack pnpm test:browser:allcorepack pnpm release:publish:dry -- --skip-build --force-all --tag rcgit diff --check
- Pending GitHub release compare for
4.0.0-rc.5.
- Upgrade EMP's Module Federation integration to
2.8.0, including optional runtime capabilities, a slimmer dependency surface, and Node.js 24 LTS-ready upstream support. - Remove the temporary
typescript-mf@5.9.3compatibility alias and the patched Module Federation DTS plugin; declaration generation now resolves the workspace's native TypeScript 7 runtime. - Keep the unified EMP v4 release line on npm's
rcdist-tag across all 17 core@empjs/*packages.
- chore(module-federation): align
@module-federation/rspack,runtime,runtime-tools, andsdkto^2.8.0. - chore(toolchain): use Module Federation 2.8's native TypeScript 7 peer contract and remove the TS5-only compatibility dependency and patch.
- docs(release): add the EMP Federation Fox release cover for Module Federation 2.8 and native TypeScript 7.
corepack pnpm test:toolchaincorepack pnpm test:ts7:packagescorepack pnpm release:checkcorepack pnpm release:publish:dry -- --skip-build --force-all --tag rccorepack pnpm ci:verifycorepack pnpm empbuildgit diff --check
- Pending GitHub release compare for
4.0.0-rc.4.
- Prepare the EMP v4
4.0.0-rc.3release candidate as the stable-ready migration line; packages remain on thercdist-tag until stable promotion. - Update generated projects and unsupported-command guidance so new consumers do not receive obsolete alpha-era messaging.
- Carry the rc.2 follow-up work into the release contract: Rspack ecosystem alignment, the Agent-First v4 website, repository agent workflow hardening, and the CI website lockfile repair.
- chore(toolchain): update the Rspack ecosystem dependency set and retain the locked workspace resolution for release verification.
- chore(ci): synchronize the website lockfile so clean CI installs use the committed dependency graph.
- feat(website): launch the Agent-First EMP v4 landing page and publish the accompanying EMP skill entry.
- docs(migration): mark the v4 migration path stable-ready for rc.3, with explicit
@rcinstallation and stable-promotion guidance. - docs(release): prepare dynamic prerelease/stable changelog wording instead of hard-coding a beta release label.
- chore(workflow): streamline repository agent routing, context controls, and workflow checks for the v4 release branch.
- test(cli): cover unsupported commands without asserting an obsolete alpha-stage message.
- test(release): verify generated changelog entries describe prerelease and stable versions correctly.
corepack pnpm --filter @empjs/cli build && corepack pnpm --filter @empjs/cli exec rstest run test/real/cli-command-runtime.test.tscorepack pnpm test:rulescorepack pnpm release:checkgit diff --check
- Pending GitHub release compare for
4.0.0-rc.3.
- Publish EMP v4 rc packages to the npm
rcdist-tag from the root4.0.0-rc.2release line. - Adopt selected Rspack 2.1 defaults in generated configs:
module.parser.javascript.createRequireand persistent-cache cleanup. - Expose higher-risk Rspack 2.1 features as explicit opt-ins:
build.rspack.experiments.sourceImportandcircularCheckRspackPlugin. - Document the Agent-First React Compiler policy: agents may recommend it, but projects must opt in explicitly.
- Ship the Rspress v2 official site as a bilingual Agent-First documentation surface with Chinese default routes and English
/en/routes.
- feat(cli): enable
module.parser.javascript.createRequireby default while keepingbuild.rspack.parser.javascript.createRequireoverridable. - feat(cli): set default persistent cache cleanup to
maxAge: 7 * 24 * 60 * 60andmaxVersions: 3, with project cache config taking precedence. - feat(cli): expose
build.rspack.experiments.sourceImportas a manual opt-in for source phase imports. - feat(cli): add the
circularCheckRspackPluginconfig switch for Rspack's built-in circular dependency check plugin, defaulting to disabled. - feat(plugin-react): document manual React Compiler opt-in for React 19 and React 17/18 target/runtime adoption.
- chore(release): align the root workspace and 17 core
@empjs/*packages to4.0.0-rc.2. - chore(release): exclude
apps/**,website,@empjs/cdn-*, and@empjs/lib-*from the unified release set.
- docs(config): document the Rspack 2.1 default-enabled and manual opt-in behavior in the build config guide.
- docs(skill): add Agent-First React Compiler decision rules, Module Federation cautions, and validation commands.
- docs(website): rebuild the Rspress v2 site with bilingual navigation, Federation Fox homepage styling, and apps acceptance matrix coverage.
- test(cli): assert Rspack 2.1 config defaults, cache override behavior,
sourceImportpassthrough, andCircularCheckRspackPlugininjection.
corepack pnpm --filter @empjs/cli buildnode packages/cli/test/rspack2-features-shape.test.mjsnode packages/cli/test/rspack-config-shape.test.mjscorepack pnpm test:clicorepack pnpm release:checknode scripts/release.mjs publish --dry-run --skip-build --force-all --tag rcpython3 /Users/Bigo/.codex/skills/.system/skill-creator/scripts/quick_validate.py skills/empcorepack pnpm ci:verifycorepack pnpm workflow:checkcorepack pnpm empbuildcorepack pnpm --dir website buildgit diff --check
- Pending GitHub release compare for
4.0.0-rc.2.
- Publish EMP v4 rc packages to the npm
rcdist-tag from the root4.0.0-rc.1release line. - Align README badges and current-version copy with the npm
@empjs/cli@rcand@empjs/share@rcmanifests. - Switch the GitHub repository default branch to
v4so README metadata and incoming development target the v4 line by default.
- chore(release): publish the 17 internal core
@empjs/*packages selected byrelease:checkwith dist-tagrc. - chore(release): keep
apps/**,website,@empjs/cdn-*, and@empjs/lib-*outside the unified rc release set.
- docs(readme): read the current v4 version, Rspack dependency, Module Federation dependency, Node engine, and license badges from npm
rcmanifests. - docs(changelog): document the rc.1 release scope, validation commands, and repository default-branch switch.
- test(cli): reserve available local ports in the create-flow port fallback test instead of assuming port 3000 is free on developer machines.
corepack pnpm workflow:checkcorepack pnpm release:checkcorepack pnpm release:publish:dry -- --force-all --skip-build --tag rccorepack pnpm ci:verifycorepack pnpm empbuildcorepack pnpm apps:acceptancegit diff --check
- Pending GitHub release compare for
4.0.0-rc.1.
- Upgrade the EMP CLI Rspack runtime to
@rspack/core@2.1.1while keeping@rspack/dev-server@2.1.0, because2.1.0is still the latest dev-server release. - Upgrade opt-in Rsdoctor integration to
@rsdoctor/rspack-plugin@1.5.17. - Review Rspack v2.1.1 release changes against EMP defaults and keep risky optimizations behind existing explicit config.
- fix(cli): pick up the Rspack v2.1.1 CSS runtime
link.parentNodeguard and the CJS export assignment side-effect rollback.
- chore(cli): resolve the CLI direct Rspack dependency to
@rspack/core@2.1.1. - chore(cli): resolve the CLI Rsdoctor plugin dependency to
@rsdoctor/rspack-plugin@1.5.17.
- test(cli): assert the exported Rspack runtime version is
2.1.1. - test(cli): add a real
--doctorconfig smoke test that verifies Rsdoctor plugin injection.
- Rsdoctor export usage edge metadata (
dependencyIdandloc) is provided by upstream Rspack/Rsdoctor and does not require a new EMP public option. - SourceMapDevToolPlugin persistent cache is available through the existing
build.sourcemap.devToolPluginOptionspath; EMP does not enable that plugin by default. - CSS runtime and CJS side-effect changes are upstream runtime fixes; EMP keeps
pureFunctions,runtimeMode, and tree-shaking behavior opt-in through existing config surfaces.
npm view @rspack/core@2.1.1 version peerDependencies dependencies dist-tags --jsonnpm view @rspack/dev-server@2.1.0 version peerDependencies dependencies dist-tags --jsonnpm view @rsdoctor/rspack-plugin@1.5.17 version peerDependencies dependencies --jsoncorepack pnpm --filter @empjs/cli test
- Rspack upstream: https://github.com/web-infra-dev/rspack/compare/v2.1.0...v2.1.1
- Upgrade the EMP v4 toolchain to Rspack
2.1.0and@rspack/dev-server2.1.0. - Add the latest TypeScript 7 preview line used today:
typescript@7.0.1-rcfortscchecks and@typescript/native-preview@7.0.0-dev.20260624.1fortsgo. - Minimize tracked package and app tsconfigs by routing package builds through shared Rslib baselines and app projects through
@empjs/cli/tsconfig/reactor@empjs/cli/tsconfig/vue.
@rslib/core@0.23.0andrsbuild-plugin-dts@0.23.0still peer ontypescript ^5 || ^6; EMP keeps roottypescript@7.0.1-rc, but patchesrsbuild-plugin-dtsto use a dedicatedtypescript-rslib@npm:typescript@6.0.3alias for declaration generation until upstream supports TS7's package exports.@module-federation/rspack@2.6.0,@module-federation/dts-plugin@2.6.0, and@vue/tsconfig@0.8.1still warn on TS7 peer ranges during install; EMP patches@module-federation/dts-plugin@2.6.0to usetypescript-mf@npm:typescript@5.9.3for its runtime TypeScript API until upstream supports TS7's package exports.html-webpack-plugin@5.6.4still warns on@rspack/corepeer range0.x || 1.xwith Rspack 2.1.
- chore(cli): upgrade direct Rspack dependencies to
@rspack/core@^2.1.0,@rspack/dev-server@^2.1.0, and@swc/helpers@^0.5.23. - chore(ts): add TS7 and native tsgo verification scripts plus Rslib and Module Federation declaration-build compatibility patches.
- chore(tsconfig): remove TS7-incompatible
baseUrland legacymoduleResolution: node/node10from tracked tsconfigs. - chore(release): align root workspace and 19 core
@empjs/*packages to4.0.0-beta.1.
- feat(cli): expose Rspack 2.1
experiments.runtimeModethrough the build option surface. - feat(plugin-react): expose SWC React Compiler configuration through
reactCompiler.
- test(toolchain): lock Rspack 2.1, TS7 preview, tsgo, and Rslib compatibility expectations.
- test(tsconfig): enforce shared tsconfig baselines and TS7-compatible compiler options.
- test(cli): assert Rspack 2.1 build option shape.
- test(plugin-react): assert React Compiler options reach every SWC transform in the plugin fixture.
corepack pnpm ci:verifycorepack pnpm empbuildcorepack pnpm apps:acceptancecorepack pnpm release:publish:dry -- --force-all --skip-buildgit diff --checkcorepack pnpm test:toolchaincorepack pnpm test:tsconfigcorepack pnpm test:ts7corepack pnpm test:tsgocorepack pnpm --filter @empjs/cli run build && node packages/cli/test/rspack2-features-shape.test.mjscorepack pnpm --filter @empjs/plugin-react test
- Pending GitHub release compare for
4.0.0-beta.1.
- Publish EMP v4 beta packages to
默认 npm registrywith dist-tagbeta. - Align the root workspace and 19 core
@empjs/*packages to4.0.0-beta.0. - Keep CDN and legacy runtime package lines independent for framework-specific runtime delivery.
- feat(release): add unified prerelease automation for core
@empjs/*packages. - feat(release): generate guarded npm publish commands with dry-run by default.
- chore(release): publish with pnpm 10 workspace filters and dist-tag
beta. - chore(release): exclude
apps/**,website,@empjs/cdn-*, and@empjs/lib-*from the unified release set.
- Pending GitHub release compare for
4.0.0-beta.0.
- Add the agent-first
emp createflow in@empjs/cli, including intent parsing, project generation, command execution, verification, JSON reports, fixer support, dynamic ports, dev readiness probes, and atomic failed-report writes. - Add
empRuntime.version: truein@empjs/shareto isolate same-page multi-version Module Federation scopes and CSS Modules prefixes. - Ship Tailwind 4.3.1 alignment for
@empjs/plugin-tailwindcssand keep the release scope limited to the 19 core internal packages. - Add consumer migration guidance in
docs/v4-alpha-migration.md, including the alpha install path, package scope, Rspack 2 notes, Module Federation behavior, and validation commands.
- feat(cli): add agent-first project creation, verification, report, and fixer flows.
- feat(share): add opt-in
empRuntime.versionisolation for shared runtime packages. - feat(workflow): add repo-local workflow gates, PR review assets, and CI verification entrypoints.
- chore(release): align root workspace and 19 core
@empjs/*packages to4.0.0-alpha.3. - chore(ci): make
pnpm test:clibuild@empjs/chainbefore CLI tests so clean GitHub runners do not depend on stale localdist/. - chore(release): keep
apps/**,website,@empjs/cdn-*, and@empjs/lib-*out of the unified release set.
- test(cli): cover agent create planning, generation, command execution, failed reports, fixer behavior, and real CLI flows with Rstest.
- test(share): cover legacy and versioned
empRuntime.versionbehavior, including CSS Modules prefix preservation and package metadata fallback.
- Pending GitHub release compare for
4.0.0-alpha.3.
- Optimize
@empjs/clidefaults for Rspack 2 and remove the deprecatedexperiments.cssflag. - Expose Rspack build toggles for
nativeWatcher,incremental, andlazyCompilationso projects can opt out when needed. - Align Module Federation runtime dependencies in
@empjs/shareto the^2.6.0line.
- chore(cli): upgrade
sass-loaderto17.0.0andts-checker-rspack-pluginto1.4.0for Rspack 2 peer support. - chore(share): add
@module-federation/runtime-toolsand keep MF runtime packages on the same minor line.
- test(cli): assert generated Rspack config omits deprecated CSS experiment and respects build/debug overrides.
- test(share): assert Module Federation dependency versions stay aligned.
pnpm release:publish:drypnpm release:checknode --test scripts/release.test.mjs
- Publish EMP v4 alpha packages to npm with dist-tag
alpha. - Align the root workspace and 19 core
@empjs/*packages to4.0.0-alpha.1. - Keep CDN and legacy runtime package lines independent for framework-specific runtime delivery.
- feat(release): add unified alpha release automation for core
@empjs/*packages. - feat(release): generate guarded npm publish commands with dry-run by default.
- chore(release): publish with pnpm 10 workspace filters and dist-tag
alpha. - chore(release): exclude
apps/**,website,@empjs/cdn-*, and@empjs/lib-*from the unified release set.
- Pending GitHub release compare for
4.0.0-alpha.1.

