diff --git a/.release-plan.json b/.release-plan.json
index d529ceebf..e25f4fe5d 100644
--- a/.release-plan.json
+++ b/.release-plan.json
@@ -2,31 +2,85 @@
   "solution": {
     "@embroider/addon-dev": {
       "impact": "minor",
-      "oldVersion": "4.2.1",
-      "newVersion": "4.3.0",
+      "oldVersion": "4.3.0",
+      "newVersion": "4.4.0",
       "constraints": [
+        {
+          "impact": "patch",
+          "reason": "Has dependency `workspace:^` on @embroider/core"
+        },
         {
           "impact": "minor",
           "reason": "Appears in changelog section :rocket: Enhancement"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :house: Internal"
         }
       ],
       "pkgJSONPath": "./packages/addon-dev/package.json"
     },
     "@embroider/addon-shim": {
-      "oldVersion": "1.8.7"
+      "impact": "patch",
+      "oldVersion": "1.8.7",
+      "newVersion": "1.8.8",
+      "constraints": [
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :house: Internal"
+        }
+      ],
+      "pkgJSONPath": "./packages/addon-shim/package.json"
     },
     "@embroider/babel-loader-9": {
-      "oldVersion": "3.1.1"
+      "impact": "major",
+      "oldVersion": "3.1.1",
+      "newVersion": "4.0.0",
+      "constraints": [
+        {
+          "impact": "major",
+          "reason": "Has peer dependency `workspace:^` on @embroider/core"
+        }
+      ],
+      "pkgJSONPath": "./packages/babel-loader-9/package.json"
+    },
+    "@embroider/broccoli-side-watch": {
+      "impact": "minor",
+      "oldVersion": "0.0.1",
+      "newVersion": "0.1.0",
+      "constraints": [
+        {
+          "impact": "minor",
+          "reason": "Appears in changelog section :rocket: Enhancement"
+        }
+      ],
+      "pkgJSONPath": "./packages/broccoli-side-watch/package.json"
     },
     "@embroider/compat": {
-      "impact": "patch",
-      "oldVersion": "3.4.6",
-      "newVersion": "3.4.7",
+      "impact": "major",
+      "oldVersion": "3.4.7",
+      "newVersion": "4.0.0",
       "constraints": [
+        {
+          "impact": "major",
+          "reason": "Appears in changelog section :boom: Breaking Change"
+        },
+        {
+          "impact": "major",
+          "reason": "Has peer dependency `workspace:^` on @embroider/core"
+        },
         {
           "impact": "patch",
           "reason": "Has dependency `workspace:*` on @embroider/macros"
         },
+        {
+          "impact": "minor",
+          "reason": "Appears in changelog section :rocket: Enhancement"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :bug: Bug Fix"
+        },
         {
           "impact": "patch",
           "reason": "Appears in changelog section :house: Internal"
@@ -35,32 +89,77 @@
       "pkgJSONPath": "./packages/compat/package.json"
     },
     "@embroider/core": {
-      "impact": "patch",
-      "oldVersion": "3.4.6",
-      "newVersion": "3.4.7",
+      "impact": "major",
+      "oldVersion": "3.4.7",
+      "newVersion": "4.0.0",
       "constraints": [
+        {
+          "impact": "major",
+          "reason": "Appears in changelog section :boom: Breaking Change"
+        },
+        {
+          "impact": "patch",
+          "reason": "Has dependency `workspace:*` on @embroider/macros"
+        },
+        {
+          "impact": "minor",
+          "reason": "Appears in changelog section :rocket: Enhancement"
+        },
         {
           "impact": "patch",
           "reason": "Has dependency `workspace:*` on @embroider/shared-internals"
         },
         {
           "impact": "patch",
-          "reason": "Has dependency `workspace:*` on @embroider/macros"
+          "reason": "Appears in changelog section :bug: Bug Fix"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :house: Internal"
         }
       ],
       "pkgJSONPath": "./packages/core/package.json"
     },
     "@embroider/hbs-loader": {
-      "oldVersion": "3.0.3"
+      "impact": "major",
+      "oldVersion": "3.0.3",
+      "newVersion": "4.0.0",
+      "constraints": [
+        {
+          "impact": "major",
+          "reason": "Has peer dependency `workspace:^` on @embroider/core"
+        },
+        {
+          "impact": "minor",
+          "reason": "Appears in changelog section :rocket: Enhancement"
+        }
+      ],
+      "pkgJSONPath": "./packages/hbs-loader/package.json"
     },
     "@embroider/macros": {
-      "impact": "patch",
-      "oldVersion": "1.15.0",
-      "newVersion": "1.15.1",
+      "impact": "major",
+      "oldVersion": "1.15.1",
+      "newVersion": "2.0.0",
       "constraints": [
+        {
+          "impact": "major",
+          "reason": "Appears in changelog section :boom: Breaking Change"
+        },
+        {
+          "impact": "minor",
+          "reason": "Appears in changelog section :rocket: Enhancement"
+        },
         {
           "impact": "patch",
           "reason": "Has dependency `workspace:*` on @embroider/shared-internals"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :memo: Documentation"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :house: Internal"
         }
       ],
       "pkgJSONPath": "./packages/macros/package.json"
@@ -69,41 +168,149 @@
       "oldVersion": "0.1.0"
     },
     "@embroider/router": {
-      "oldVersion": "2.1.6"
+      "impact": "major",
+      "oldVersion": "2.1.6",
+      "newVersion": "3.0.0",
+      "constraints": [
+        {
+          "impact": "major",
+          "reason": "Has peer dependency `workspace:^2.0.0||^3.0.0` on @embroider/core"
+        }
+      ],
+      "pkgJSONPath": "./packages/router/package.json"
     },
     "@embroider/shared-internals": {
       "impact": "minor",
-      "oldVersion": "2.5.2",
-      "newVersion": "2.6.0",
+      "oldVersion": "2.6.0",
+      "newVersion": "2.7.0",
       "constraints": [
         {
           "impact": "minor",
           "reason": "Appears in changelog section :rocket: Enhancement"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :bug: Bug Fix"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :house: Internal"
         }
       ],
       "pkgJSONPath": "./packages/shared-internals/package.json"
     },
     "@embroider/test-setup": {
-      "oldVersion": "3.0.3"
+      "impact": "major",
+      "oldVersion": "3.0.3",
+      "newVersion": "4.0.0",
+      "constraints": [
+        {
+          "impact": "major",
+          "reason": "Has peer dependency `workspace:^` on @embroider/compat"
+        },
+        {
+          "impact": "major",
+          "reason": "Has peer dependency `workspace:^` on @embroider/core"
+        },
+        {
+          "impact": "major",
+          "reason": "Has peer dependency `workspace:^` on @embroider/webpack"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :house: Internal"
+        }
+      ],
+      "pkgJSONPath": "./packages/test-setup/package.json"
     },
     "@embroider/util": {
-      "oldVersion": "1.13.0"
+      "impact": "patch",
+      "oldVersion": "1.13.0",
+      "newVersion": "1.13.1",
+      "constraints": [
+        {
+          "impact": "patch",
+          "reason": "Has dependency `workspace:^` on @embroider/macros"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :house: Internal"
+        }
+      ],
+      "pkgJSONPath": "./packages/util/package.json"
     },
     "@embroider/vite": {
-      "oldVersion": "0.2.0"
+      "impact": "major",
+      "oldVersion": "0.2.0",
+      "newVersion": "1.0.0",
+      "constraints": [
+        {
+          "impact": "major",
+          "reason": "Has peer dependency `workspace:^` on @embroider/core"
+        },
+        {
+          "impact": "major",
+          "reason": "Appears in changelog section :boom: Breaking Change"
+        },
+        {
+          "impact": "patch",
+          "reason": "Has dependency `workspace:*` on @embroider/macros"
+        },
+        {
+          "impact": "minor",
+          "reason": "Appears in changelog section :rocket: Enhancement"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :bug: Bug Fix"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :house: Internal"
+        }
+      ],
+      "pkgJSONPath": "./packages/vite/package.json"
     },
     "@embroider/webpack": {
-      "impact": "patch",
-      "oldVersion": "3.2.2",
-      "newVersion": "3.2.3",
+      "impact": "major",
+      "oldVersion": "3.2.3",
+      "newVersion": "4.0.0",
       "constraints": [
+        {
+          "impact": "patch",
+          "reason": "Has dependency `workspace:*` on @embroider/babel-loader-9"
+        },
+        {
+          "impact": "patch",
+          "reason": "Has dependency `workspace:*` on @embroider/hbs-loader"
+        },
+        {
+          "impact": "major",
+          "reason": "Has peer dependency `workspace:^` on @embroider/core"
+        },
+        {
+          "impact": "major",
+          "reason": "Appears in changelog section :boom: Breaking Change"
+        },
         {
           "impact": "patch",
           "reason": "Has dependency `workspace:*` on @embroider/shared-internals"
+        },
+        {
+          "impact": "minor",
+          "reason": "Appears in changelog section :rocket: Enhancement"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :bug: Bug Fix"
+        },
+        {
+          "impact": "patch",
+          "reason": "Appears in changelog section :house: Internal"
         }
       ],
       "pkgJSONPath": "./packages/webpack/package.json"
     }
   },
-  "description": "## Release (2024-04-10)\n\n@embroider/addon-dev 4.3.0 (minor)\n@embroider/compat 3.4.7 (patch)\n@embroider/core 3.4.7 (patch)\n@embroider/macros 1.15.1 (patch)\n@embroider/shared-internals 2.6.0 (minor)\n@embroider/webpack 3.2.3 (patch)\n\n#### :rocket: Enhancement\n* `@embroider/addon-dev`, `@embroider/shared-internals`, `@embroider/test-scenarios`\n  * [#1856](https://github.com/embroider-build/embroider/pull/1856) Compile Hbs route templates correctly ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/addon-dev`, `@embroider/test-scenarios`\n  * [#1867](https://github.com/embroider-build/embroider/pull/1867) add a namespace option for public-assets plugin ([@mansona](https://github.com/mansona))\n\n#### :house: Internal\n* Other\n  * [#1871](https://github.com/embroider-build/embroider/pull/1871) fix release-plan unlabelled changes PR ([@mansona](https://github.com/mansona))\n  * [#1869](https://github.com/embroider-build/embroider/pull/1869) update release plan ([@mansona](https://github.com/mansona))\n* `@embroider/compat`, `@embroider/test-scenarios`\n  * [#1806](https://github.com/embroider-build/embroider/pull/1806) resolver transform to emit imports for helper and modifiers that need… ([@void-mAlex](https://github.com/void-mAlex))\n\n#### Committers: 3\n- Alex ([@void-mAlex](https://github.com/void-mAlex))\n- Chris Manson ([@mansona](https://github.com/mansona))\n- Marine Dunstetter ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n"
+  "description": "## Release (2024-04-17)\n\n@embroider/addon-dev 4.4.0 (minor)\n@embroider/addon-shim 1.8.8 (patch)\n@embroider/babel-loader-9 4.0.0 (major)\n@embroider/broccoli-side-watch 0.1.0 (minor)\n@embroider/compat 4.0.0 (major)\n@embroider/core 4.0.0 (major)\n@embroider/hbs-loader 4.0.0 (major)\n@embroider/macros 2.0.0 (major)\n@embroider/router 3.0.0 (major)\n@embroider/shared-internals 2.7.0 (minor)\n@embroider/test-setup 4.0.0 (major)\n@embroider/util 1.13.1 (patch)\n@embroider/vite 1.0.0 (major)\n@embroider/webpack 4.0.0 (major)\n\n#### :boom: Breaking Change\n* `@embroider/compat`, `@embroider/core`, `@embroider/vite`, `@embroider/webpack`\n  * [#1794](https://github.com/embroider-build/embroider/pull/1794) Refactor the resolve function to be the only public api to module-resolver ([@mansona](https://github.com/mansona))\n* `@embroider/compat`, `@embroider/core`, `@embroider/test-support`, `@embroider/test-scenarios`\n  * [#1653](https://github.com/embroider-build/embroider/pull/1653) Refactor embroider-implicit-modules export pojo ([@mansona](https://github.com/mansona))\n* `@embroider/compat`, `@embroider/macros`, `@embroider/webpack`, `@embroider/test-fixtures`, `@embroider/test-scenarios`\n  * [#1692](https://github.com/embroider-build/embroider/pull/1692) force importSync to always be eager ([@mansona](https://github.com/mansona))\n\n#### :rocket: Enhancement\n* `@embroider/compat`, `@embroider/vite`, `addon-template`, `app-template`, `@embroider/test-scenarios`, `ts-app-template`\n  * [#1836](https://github.com/embroider-build/embroider/pull/1836) Replace content-for using a Vite plugin ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/compat`, `@embroider/core`\n  * [#1811](https://github.com/embroider-build/embroider/pull/1811) Module Resolver: Virtual test-support.css ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/compat`, `@embroider/core`, `@embroider/vite`, `@embroider/test-scenarios`\n  * [#1805](https://github.com/embroider-build/embroider/pull/1805) Module resolver: virtualize vendor.css ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n  * [#1739](https://github.com/embroider-build/embroider/pull/1739) support ts, gts and gjs in vite ([@patricklx](https://github.com/patricklx))\n* `@embroider/macros`\n  * [#1845](https://github.com/embroider-build/embroider/pull/1845) support import sync with dynamic expression ([@patricklx](https://github.com/patricklx))\n* `@embroider/compat`, `@embroider/core`, `@embroider/vite`\n  * [#1807](https://github.com/embroider-build/embroider/pull/1807) Module resolver: virtualize test-support.js ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n  * [#1650](https://github.com/embroider-build/embroider/pull/1650) Add Esbuild resolver ([@mansona](https://github.com/mansona))\n* `@embroider/compat`, `@embroider/core`, `@embroider/test-scenarios`\n  * [#1863](https://github.com/embroider-build/embroider/pull/1863) add isLazy to resolver config and streamline Engine interface ([@mansona](https://github.com/mansona))\n  * [#1648](https://github.com/embroider-build/embroider/pull/1648) use package paths instead of relative paths for app tree resolving ([@mansona](https://github.com/mansona))\n* `@embroider/shared-internals`, `@embroider/vite`\n  * [#1846](https://github.com/embroider-build/embroider/pull/1846) Prevent query-params added by vite to be passed to core logic ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/vite`, `@embroider/test-scenarios`\n  * [#1736](https://github.com/embroider-build/embroider/pull/1736) vite find assets & build copy assets ([@patricklx](https://github.com/patricklx))\n  * [#1744](https://github.com/embroider-build/embroider/pull/1744) control ember build through vite ([@patricklx](https://github.com/patricklx))\n* `@embroider/vite`\n  * [#1834](https://github.com/embroider-build/embroider/pull/1834) add vite@5 to the peer deps of @embroider/vite ([@mansona](https://github.com/mansona))\n  * [#1680](https://github.com/embroider-build/embroider/pull/1680) [vite] use transform instead of load for gjs & hbs files ([@patricklx](https://github.com/patricklx))\n  * [#1704](https://github.com/embroider-build/embroider/pull/1704) add correct extensions to optimizeDeps() config ([@mansona](https://github.com/mansona))\n* `@embroider/compat`\n  * [#1819](https://github.com/embroider-build/embroider/pull/1819) Add a new prebuild function with strict defaults ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/addon-dev`, `@embroider/vite`\n  * [#1784](https://github.com/embroider-build/embroider/pull/1784) Bump content-tag and add inline_source_map option for rollup and vite ([@vstefanovic97](https://github.com/vstefanovic97))\n* `@embroider/core`, `@embroider/hbs-loader`, `@embroider/vite`, `@embroider/webpack`\n  * [#1763](https://github.com/embroider-build/embroider/pull/1763) Add new watches API ([@ef4](https://github.com/ef4))\n* `@embroider/addon-dev`, `@embroider/test-scenarios`\n  * [#1760](https://github.com/embroider-build/embroider/pull/1760) Add exclude option to appReexports and publicEntrypoints rollup plugins ([@simonihmig](https://github.com/simonihmig))\n  * [#1642](https://github.com/embroider-build/embroider/pull/1642) Allow for more flexible addon-dev appReexports ([@krasnoukhov](https://github.com/krasnoukhov))\n* `@embroider/core`, `@embroider/vite`, `@embroider/test-support`, `@embroider/test-scenarios`\n  * [#1718](https://github.com/embroider-build/embroider/pull/1718) vite test ci ([@patricklx](https://github.com/patricklx))\n* `@embroider/core`, `@embroider/vite`, `@embroider/webpack`\n  * [#1707](https://github.com/embroider-build/embroider/pull/1707) improved resolver logging ([@ef4](https://github.com/ef4))\n* `@embroider/broccoli-side-watch`\n  * [#1693](https://github.com/embroider-build/embroider/pull/1693) Add broccoli-side-watch package ([@balinterdi](https://github.com/balinterdi))\n\n#### :bug: Bug Fix\n* `@embroider/vite`, `@embroider/test-scenarios`\n  * [#1852](https://github.com/embroider-build/embroider/pull/1852) vite fix hbs loader for v1 addons ([@patricklx](https://github.com/patricklx))\n  * [#1795](https://github.com/embroider-build/embroider/pull/1795) fix vite build ([@patricklx](https://github.com/patricklx))\n* `@embroider/vite`\n  * [#1813](https://github.com/embroider-build/embroider/pull/1813) vite: fix hbs loading for virtual pair components ([@patricklx](https://github.com/patricklx))\n  * [#1827](https://github.com/embroider-build/embroider/pull/1827) fix extension resolving for esbuild ([@mansona](https://github.com/mansona))\n  * [#1816](https://github.com/embroider-build/embroider/pull/1816) Remove silent option from ember build in compatPrebuild ([@enspandi](https://github.com/enspandi))\n  * [#1729](https://github.com/embroider-build/embroider/pull/1729) remove missing import from vite index ([@mansona](https://github.com/mansona))\n  * [#1713](https://github.com/embroider-build/embroider/pull/1713) esbuild: fix babel config location ([@mansona](https://github.com/mansona))\n* `@embroider/compat`\n  * [#1837](https://github.com/embroider-build/embroider/pull/1837) merge default options and the prebuild options provided in ember-cli-build ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/shared-internals`\n  * [#1738](https://github.com/embroider-build/embroider/pull/1738) fix vite on windows ([@patricklx](https://github.com/patricklx))\n* Other\n  * [#1731](https://github.com/embroider-build/embroider/pull/1731) Vite fixes ([@mansona](https://github.com/mansona))\n* `@embroider/compat`, `@embroider/core`, `@embroider/vite`, `@embroider/webpack`, `@embroider/test-support`, `@embroider/test-scenarios`\n  * [#1686](https://github.com/embroider-build/embroider/pull/1686) Resolver bugfixes ([@mansona](https://github.com/mansona))\n\n#### :memo: Documentation\n* Other\n  * [#1735](https://github.com/embroider-build/embroider/pull/1735) docs: Update addon-author-guide.md ([@johanrd](https://github.com/johanrd))\n  * [#1791](https://github.com/embroider-build/embroider/pull/1791) docs(porting-addons-to-v2): Explain no-unpublished-required issue ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n  * [#1772](https://github.com/embroider-build/embroider/pull/1772) Docs porting addons to v2 co location ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n  * [#1775](https://github.com/embroider-build/embroider/pull/1775) Docs(peer deps resolution issues): mentions pnpm-dedupe and add links ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n  * [#1768](https://github.com/embroider-build/embroider/pull/1768) docs(porting addons to v2): change the recommended package manager to pnpm ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n  * [#1765](https://github.com/embroider-build/embroider/pull/1765) Docs(addon-author-guide)/ remove the out-of-date part about alternative to monorepos ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/macros`\n  * [#1790](https://github.com/embroider-build/embroider/pull/1790) Update @embroider/macros README.md real-world examples ([@machty](https://github.com/machty))\n\n#### :house: Internal\n* `@embroider/compat`, `@embroider/test-scenarios`\n  * [#1881](https://github.com/embroider-build/embroider/pull/1881) Cleanup stage2 emitting of synthesized styles ([@ef4](https://github.com/ef4))\n* `app-template`, `@embroider/test-scenarios`\n  * [#1879](https://github.com/embroider-build/embroider/pull/1879) Delete vite app from test scenarios ([@mansona](https://github.com/mansona))\n* `@embroider/compat`, `@embroider/vite`, `app-template`, `@embroider/test-scenarios`\n  * [#1859](https://github.com/embroider-build/embroider/pull/1859) Public assets handling/ clean up stage 2 ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/vite`, `addon-template`, `@embroider/test-scenarios`\n  * [#1877](https://github.com/embroider-build/embroider/pull/1877) Command Watcher ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/addon-dev`, `@embroider/compat`, `@embroider/core`, `@embroider/macros`, `@embroider/shared-internals`, `@embroider/util`, `@embroider/webpack`, `@embroider/test-scenarios`\n  * [#1872](https://github.com/embroider-build/embroider/pull/1872) Merge stable ([@mansona](https://github.com/mansona))\n* `addon-template`, `@embroider/test-fixtures`\n  * [#1864](https://github.com/embroider-build/embroider/pull/1864) Make the addon-template use vite ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n* `@embroider/addon-shim`, `@embroider/compat`, `@embroider/core`, `@embroider/test-setup`, `@embroider/vite`, `app-template`, `@embroider/test-fixtures`, `@embroider/test-scenarios`, `ts-app-template`\n  * [#1840](https://github.com/embroider-build/embroider/pull/1840) Use Vite for all tests ([@mansona](https://github.com/mansona))\n* `@embroider/test-scenarios`\n  * [#1847](https://github.com/embroider-build/embroider/pull/1847) Refactor watch mode tests ([@ef4](https://github.com/ef4))\n  * [#1817](https://github.com/embroider-build/embroider/pull/1817) pin ember-data to fix issue in CI ([@mansona](https://github.com/mansona))\n  * [#1771](https://github.com/embroider-build/embroider/pull/1771) Simplify vite-app template ([@ef4](https://github.com/ef4))\n  * [#1703](https://github.com/embroider-build/embroider/pull/1703) Disable chokidar polling override in tests ([@chancancode](https://github.com/chancancode))\n* `@embroider/addon-dev`, `@embroider/compat`, `@embroider/core`, `@embroider/macros`, `@embroider/shared-internals`, `@embroider/webpack`\n  * [#1825](https://github.com/embroider-build/embroider/pull/1825) Merge stable into main ([@mansona](https://github.com/mansona))\n* Other\n  * [#1778](https://github.com/embroider-build/embroider/pull/1778) Fix failing addon-dev-js test on main ([@simonihmig](https://github.com/simonihmig))\n  * [#1700](https://github.com/embroider-build/embroider/pull/1700) Merge stable into main ([@mansona](https://github.com/mansona))\n* `@embroider/compat`, `@embroider/core`, `@embroider/shared-internals`, `@embroider/test-scenarios`, `@types/ember-cli`\n  * [#1782](https://github.com/embroider-build/embroider/pull/1782) Merge stable into main ([@mansona](https://github.com/mansona))\n* `@embroider/compat`, `@embroider/macros`, `@embroider/test-scenarios`\n  * [#1714](https://github.com/embroider-build/embroider/pull/1714) update scenario-tester ([@mansona](https://github.com/mansona))\n* `@embroider/test-support`, `@embroider/test-scenarios`\n  * [#1740](https://github.com/embroider-build/embroider/pull/1740) enable vite windows tests ([@patricklx](https://github.com/patricklx))\n* `@embroider/core`, `@embroider/vite`, `@embroider/test-support`, `@embroider/test-scenarios`\n  * [#1718](https://github.com/embroider-build/embroider/pull/1718) vite test ci ([@patricklx](https://github.com/patricklx))\n* `@embroider/addon-dev`, `@embroider/compat`, `@embroider/core`, `@embroider/macros`\n  * [#1723](https://github.com/embroider-build/embroider/pull/1723) Sync stable->main ([@ef4](https://github.com/ef4))\n* `@embroider/addon-dev`, `@embroider/compat`\n  * [#1721](https://github.com/embroider-build/embroider/pull/1721) Merge stable into main ([@mansona](https://github.com/mansona))\n* `@embroider/addon-dev`\n  * [#1697](https://github.com/embroider-build/embroider/pull/1697) Hide base path from public URL of rollup-public-assets ([@simonihmig](https://github.com/simonihmig))\n* `@embroider/macros`\n  * [#1712](https://github.com/embroider-build/embroider/pull/1712) Merge stable ([@ef4](https://github.com/ef4))\n* `@embroider/compat`, `@embroider/shared-internals`\n  * [#1691](https://github.com/embroider-build/embroider/pull/1691) Move fix for @ember-data/debug into virtualPeerDeps ([@mansona](https://github.com/mansona))\n\n#### Committers: 12\n- Alex Matchneer ([@machty](https://github.com/machty))\n- Andreas Minnich ([@enspandi](https://github.com/enspandi))\n- Balint Erdi ([@balinterdi](https://github.com/balinterdi))\n- Chris Manson ([@mansona](https://github.com/mansona))\n- Dmitry Krasnoukhov ([@krasnoukhov](https://github.com/krasnoukhov))\n- Edward Faulkner ([@ef4](https://github.com/ef4))\n- Godfrey Chan ([@chancancode](https://github.com/chancancode))\n- Marine Dunstetter ([@BlueCutOfficial](https://github.com/BlueCutOfficial))\n- Patrick Pircher ([@patricklx](https://github.com/patricklx))\n- Simon Ihmig ([@simonihmig](https://github.com/simonihmig))\n- Vuk ([@vstefanovic97](https://github.com/vstefanovic97))\n- [@johanrd](https://github.com/johanrd)\n"
 }
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 768305a98..7b7f0460e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,159 @@
 # Embroider Changelog
 
+## Release (2024-04-17)
+
+@embroider/addon-dev 4.4.0 (minor)
+@embroider/addon-shim 1.8.8 (patch)
+@embroider/babel-loader-9 4.0.0 (major)
+@embroider/broccoli-side-watch 0.1.0 (minor)
+@embroider/compat 4.0.0 (major)
+@embroider/core 4.0.0 (major)
+@embroider/hbs-loader 4.0.0 (major)
+@embroider/macros 2.0.0 (major)
+@embroider/router 3.0.0 (major)
+@embroider/shared-internals 2.7.0 (minor)
+@embroider/test-setup 4.0.0 (major)
+@embroider/util 1.13.1 (patch)
+@embroider/vite 1.0.0 (major)
+@embroider/webpack 4.0.0 (major)
+
+#### :boom: Breaking Change
+* `@embroider/compat`, `@embroider/core`, `@embroider/vite`, `@embroider/webpack`
+  * [#1794](https://github.com/embroider-build/embroider/pull/1794) Refactor the resolve function to be the only public api to module-resolver ([@mansona](https://github.com/mansona))
+* `@embroider/compat`, `@embroider/core`, `@embroider/test-support`, `@embroider/test-scenarios`
+  * [#1653](https://github.com/embroider-build/embroider/pull/1653) Refactor embroider-implicit-modules export pojo ([@mansona](https://github.com/mansona))
+* `@embroider/compat`, `@embroider/macros`, `@embroider/webpack`, `@embroider/test-fixtures`, `@embroider/test-scenarios`
+  * [#1692](https://github.com/embroider-build/embroider/pull/1692) force importSync to always be eager ([@mansona](https://github.com/mansona))
+
+#### :rocket: Enhancement
+* `@embroider/compat`, `@embroider/vite`, `addon-template`, `app-template`, `@embroider/test-scenarios`, `ts-app-template`
+  * [#1836](https://github.com/embroider-build/embroider/pull/1836) Replace content-for using a Vite plugin ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+* `@embroider/compat`, `@embroider/core`
+  * [#1811](https://github.com/embroider-build/embroider/pull/1811) Module Resolver: Virtual test-support.css ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+* `@embroider/compat`, `@embroider/core`, `@embroider/vite`, `@embroider/test-scenarios`
+  * [#1805](https://github.com/embroider-build/embroider/pull/1805) Module resolver: virtualize vendor.css ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+  * [#1739](https://github.com/embroider-build/embroider/pull/1739) support ts, gts and gjs in vite ([@patricklx](https://github.com/patricklx))
+* `@embroider/macros`
+  * [#1845](https://github.com/embroider-build/embroider/pull/1845) support import sync with dynamic expression ([@patricklx](https://github.com/patricklx))
+* `@embroider/compat`, `@embroider/core`, `@embroider/vite`
+  * [#1807](https://github.com/embroider-build/embroider/pull/1807) Module resolver: virtualize test-support.js ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+  * [#1650](https://github.com/embroider-build/embroider/pull/1650) Add Esbuild resolver ([@mansona](https://github.com/mansona))
+* `@embroider/compat`, `@embroider/core`, `@embroider/test-scenarios`
+  * [#1863](https://github.com/embroider-build/embroider/pull/1863) add isLazy to resolver config and streamline Engine interface ([@mansona](https://github.com/mansona))
+  * [#1648](https://github.com/embroider-build/embroider/pull/1648) use package paths instead of relative paths for app tree resolving ([@mansona](https://github.com/mansona))
+* `@embroider/shared-internals`, `@embroider/vite`
+  * [#1846](https://github.com/embroider-build/embroider/pull/1846) Prevent query-params added by vite to be passed to core logic ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+* `@embroider/vite`, `@embroider/test-scenarios`
+  * [#1736](https://github.com/embroider-build/embroider/pull/1736) vite find assets & build copy assets ([@patricklx](https://github.com/patricklx))
+  * [#1744](https://github.com/embroider-build/embroider/pull/1744) control ember build through vite ([@patricklx](https://github.com/patricklx))
+* `@embroider/vite`
+  * [#1834](https://github.com/embroider-build/embroider/pull/1834) add vite@5 to the peer deps of @embroider/vite ([@mansona](https://github.com/mansona))
+  * [#1680](https://github.com/embroider-build/embroider/pull/1680) [vite] use transform instead of load for gjs & hbs files ([@patricklx](https://github.com/patricklx))
+  * [#1704](https://github.com/embroider-build/embroider/pull/1704) add correct extensions to optimizeDeps() config ([@mansona](https://github.com/mansona))
+* `@embroider/compat`
+  * [#1819](https://github.com/embroider-build/embroider/pull/1819) Add a new prebuild function with strict defaults ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+* `@embroider/addon-dev`, `@embroider/vite`
+  * [#1784](https://github.com/embroider-build/embroider/pull/1784) Bump content-tag and add inline_source_map option for rollup and vite ([@vstefanovic97](https://github.com/vstefanovic97))
+* `@embroider/core`, `@embroider/hbs-loader`, `@embroider/vite`, `@embroider/webpack`
+  * [#1763](https://github.com/embroider-build/embroider/pull/1763) Add new watches API ([@ef4](https://github.com/ef4))
+* `@embroider/addon-dev`, `@embroider/test-scenarios`
+  * [#1760](https://github.com/embroider-build/embroider/pull/1760) Add exclude option to appReexports and publicEntrypoints rollup plugins ([@simonihmig](https://github.com/simonihmig))
+  * [#1642](https://github.com/embroider-build/embroider/pull/1642) Allow for more flexible addon-dev appReexports ([@krasnoukhov](https://github.com/krasnoukhov))
+* `@embroider/core`, `@embroider/vite`, `@embroider/test-support`, `@embroider/test-scenarios`
+  * [#1718](https://github.com/embroider-build/embroider/pull/1718) vite test ci ([@patricklx](https://github.com/patricklx))
+* `@embroider/core`, `@embroider/vite`, `@embroider/webpack`
+  * [#1707](https://github.com/embroider-build/embroider/pull/1707) improved resolver logging ([@ef4](https://github.com/ef4))
+* `@embroider/broccoli-side-watch`
+  * [#1693](https://github.com/embroider-build/embroider/pull/1693) Add broccoli-side-watch package ([@balinterdi](https://github.com/balinterdi))
+
+#### :bug: Bug Fix
+* `@embroider/vite`, `@embroider/test-scenarios`
+  * [#1852](https://github.com/embroider-build/embroider/pull/1852) vite fix hbs loader for v1 addons ([@patricklx](https://github.com/patricklx))
+  * [#1795](https://github.com/embroider-build/embroider/pull/1795) fix vite build ([@patricklx](https://github.com/patricklx))
+* `@embroider/vite`
+  * [#1813](https://github.com/embroider-build/embroider/pull/1813) vite: fix hbs loading for virtual pair components ([@patricklx](https://github.com/patricklx))
+  * [#1827](https://github.com/embroider-build/embroider/pull/1827) fix extension resolving for esbuild ([@mansona](https://github.com/mansona))
+  * [#1816](https://github.com/embroider-build/embroider/pull/1816) Remove silent option from ember build in compatPrebuild ([@enspandi](https://github.com/enspandi))
+  * [#1729](https://github.com/embroider-build/embroider/pull/1729) remove missing import from vite index ([@mansona](https://github.com/mansona))
+  * [#1713](https://github.com/embroider-build/embroider/pull/1713) esbuild: fix babel config location ([@mansona](https://github.com/mansona))
+* `@embroider/compat`
+  * [#1837](https://github.com/embroider-build/embroider/pull/1837) merge default options and the prebuild options provided in ember-cli-build ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+* `@embroider/shared-internals`
+  * [#1738](https://github.com/embroider-build/embroider/pull/1738) fix vite on windows ([@patricklx](https://github.com/patricklx))
+* Other
+  * [#1731](https://github.com/embroider-build/embroider/pull/1731) Vite fixes ([@mansona](https://github.com/mansona))
+* `@embroider/compat`, `@embroider/core`, `@embroider/vite`, `@embroider/webpack`, `@embroider/test-support`, `@embroider/test-scenarios`
+  * [#1686](https://github.com/embroider-build/embroider/pull/1686) Resolver bugfixes ([@mansona](https://github.com/mansona))
+
+#### :memo: Documentation
+* Other
+  * [#1735](https://github.com/embroider-build/embroider/pull/1735) docs: Update addon-author-guide.md ([@johanrd](https://github.com/johanrd))
+  * [#1791](https://github.com/embroider-build/embroider/pull/1791) docs(porting-addons-to-v2): Explain no-unpublished-required issue ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+  * [#1772](https://github.com/embroider-build/embroider/pull/1772) Docs porting addons to v2 co location ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+  * [#1775](https://github.com/embroider-build/embroider/pull/1775) Docs(peer deps resolution issues): mentions pnpm-dedupe and add links ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+  * [#1768](https://github.com/embroider-build/embroider/pull/1768) docs(porting addons to v2): change the recommended package manager to pnpm ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+  * [#1765](https://github.com/embroider-build/embroider/pull/1765) Docs(addon-author-guide)/ remove the out-of-date part about alternative to monorepos ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+* `@embroider/macros`
+  * [#1790](https://github.com/embroider-build/embroider/pull/1790) Update @embroider/macros README.md real-world examples ([@machty](https://github.com/machty))
+
+#### :house: Internal
+* `@embroider/compat`, `@embroider/test-scenarios`
+  * [#1881](https://github.com/embroider-build/embroider/pull/1881) Cleanup stage2 emitting of synthesized styles ([@ef4](https://github.com/ef4))
+* `app-template`, `@embroider/test-scenarios`
+  * [#1879](https://github.com/embroider-build/embroider/pull/1879) Delete vite app from test scenarios ([@mansona](https://github.com/mansona))
+* `@embroider/compat`, `@embroider/vite`, `app-template`, `@embroider/test-scenarios`
+  * [#1859](https://github.com/embroider-build/embroider/pull/1859) Public assets handling/ clean up stage 2 ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+* `@embroider/vite`, `addon-template`, `@embroider/test-scenarios`
+  * [#1877](https://github.com/embroider-build/embroider/pull/1877) Command Watcher ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+* `@embroider/addon-dev`, `@embroider/compat`, `@embroider/core`, `@embroider/macros`, `@embroider/shared-internals`, `@embroider/util`, `@embroider/webpack`, `@embroider/test-scenarios`
+  * [#1872](https://github.com/embroider-build/embroider/pull/1872) Merge stable ([@mansona](https://github.com/mansona))
+* `addon-template`, `@embroider/test-fixtures`
+  * [#1864](https://github.com/embroider-build/embroider/pull/1864) Make the addon-template use vite ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+* `@embroider/addon-shim`, `@embroider/compat`, `@embroider/core`, `@embroider/test-setup`, `@embroider/vite`, `app-template`, `@embroider/test-fixtures`, `@embroider/test-scenarios`, `ts-app-template`
+  * [#1840](https://github.com/embroider-build/embroider/pull/1840) Use Vite for all tests ([@mansona](https://github.com/mansona))
+* `@embroider/test-scenarios`
+  * [#1847](https://github.com/embroider-build/embroider/pull/1847) Refactor watch mode tests ([@ef4](https://github.com/ef4))
+  * [#1817](https://github.com/embroider-build/embroider/pull/1817) pin ember-data to fix issue in CI ([@mansona](https://github.com/mansona))
+  * [#1771](https://github.com/embroider-build/embroider/pull/1771) Simplify vite-app template ([@ef4](https://github.com/ef4))
+  * [#1703](https://github.com/embroider-build/embroider/pull/1703) Disable chokidar polling override in tests ([@chancancode](https://github.com/chancancode))
+* `@embroider/addon-dev`, `@embroider/compat`, `@embroider/core`, `@embroider/macros`, `@embroider/shared-internals`, `@embroider/webpack`
+  * [#1825](https://github.com/embroider-build/embroider/pull/1825) Merge stable into main ([@mansona](https://github.com/mansona))
+* Other
+  * [#1778](https://github.com/embroider-build/embroider/pull/1778) Fix failing addon-dev-js test on main ([@simonihmig](https://github.com/simonihmig))
+  * [#1700](https://github.com/embroider-build/embroider/pull/1700) Merge stable into main ([@mansona](https://github.com/mansona))
+* `@embroider/compat`, `@embroider/core`, `@embroider/shared-internals`, `@embroider/test-scenarios`, `@types/ember-cli`
+  * [#1782](https://github.com/embroider-build/embroider/pull/1782) Merge stable into main ([@mansona](https://github.com/mansona))
+* `@embroider/compat`, `@embroider/macros`, `@embroider/test-scenarios`
+  * [#1714](https://github.com/embroider-build/embroider/pull/1714) update scenario-tester ([@mansona](https://github.com/mansona))
+* `@embroider/test-support`, `@embroider/test-scenarios`
+  * [#1740](https://github.com/embroider-build/embroider/pull/1740) enable vite windows tests ([@patricklx](https://github.com/patricklx))
+* `@embroider/core`, `@embroider/vite`, `@embroider/test-support`, `@embroider/test-scenarios`
+  * [#1718](https://github.com/embroider-build/embroider/pull/1718) vite test ci ([@patricklx](https://github.com/patricklx))
+* `@embroider/addon-dev`, `@embroider/compat`, `@embroider/core`, `@embroider/macros`
+  * [#1723](https://github.com/embroider-build/embroider/pull/1723) Sync stable->main ([@ef4](https://github.com/ef4))
+* `@embroider/addon-dev`, `@embroider/compat`
+  * [#1721](https://github.com/embroider-build/embroider/pull/1721) Merge stable into main ([@mansona](https://github.com/mansona))
+* `@embroider/addon-dev`
+  * [#1697](https://github.com/embroider-build/embroider/pull/1697) Hide base path from public URL of rollup-public-assets ([@simonihmig](https://github.com/simonihmig))
+* `@embroider/macros`
+  * [#1712](https://github.com/embroider-build/embroider/pull/1712) Merge stable ([@ef4](https://github.com/ef4))
+* `@embroider/compat`, `@embroider/shared-internals`
+  * [#1691](https://github.com/embroider-build/embroider/pull/1691) Move fix for @ember-data/debug into virtualPeerDeps ([@mansona](https://github.com/mansona))
+
+#### Committers: 12
+- Alex Matchneer ([@machty](https://github.com/machty))
+- Andreas Minnich ([@enspandi](https://github.com/enspandi))
+- Balint Erdi ([@balinterdi](https://github.com/balinterdi))
+- Chris Manson ([@mansona](https://github.com/mansona))
+- Dmitry Krasnoukhov ([@krasnoukhov](https://github.com/krasnoukhov))
+- Edward Faulkner ([@ef4](https://github.com/ef4))
+- Godfrey Chan ([@chancancode](https://github.com/chancancode))
+- Marine Dunstetter ([@BlueCutOfficial](https://github.com/BlueCutOfficial))
+- Patrick Pircher ([@patricklx](https://github.com/patricklx))
+- Simon Ihmig ([@simonihmig](https://github.com/simonihmig))
+- Vuk ([@vstefanovic97](https://github.com/vstefanovic97))
+- [@johanrd](https://github.com/johanrd)
+
 ## Release (2024-04-10)
 
 @embroider/addon-dev 4.3.0 (minor)
diff --git a/packages/addon-dev/package.json b/packages/addon-dev/package.json
index 6254d7221..2c5449653 100644
--- a/packages/addon-dev/package.json
+++ b/packages/addon-dev/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/addon-dev",
-  "version": "4.3.0",
+  "version": "4.4.0",
   "description": "Utilities for addon authors",
   "repository": {
     "type": "git",
diff --git a/packages/addon-shim/package.json b/packages/addon-shim/package.json
index f80863a59..10bfb8c30 100644
--- a/packages/addon-shim/package.json
+++ b/packages/addon-shim/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/addon-shim",
-  "version": "1.8.7",
+  "version": "1.8.8",
   "description": "Make v2 addons work in non-Embroider apps.",
   "keywords": [],
   "main": "./src/index.js",
diff --git a/packages/babel-loader-9/package.json b/packages/babel-loader-9/package.json
index 6293ffd3c..dc8fff09e 100644
--- a/packages/babel-loader-9/package.json
+++ b/packages/babel-loader-9/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/babel-loader-9",
-  "version": "3.1.1",
+  "version": "4.0.0",
   "repository": {
     "type": "git",
     "url": "https://github.com/embroider-build/embroider.git",
diff --git a/packages/broccoli-side-watch/package.json b/packages/broccoli-side-watch/package.json
index 7bb3fcd66..10b4e7722 100644
--- a/packages/broccoli-side-watch/package.json
+++ b/packages/broccoli-side-watch/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/broccoli-side-watch",
-  "version": "0.0.1",
+  "version": "0.1.0",
   "description": "Watch changes in other folders to rebuild Ember app",
   "main": "index.js",
   "keywords": [
diff --git a/packages/compat/package.json b/packages/compat/package.json
index d5f6d480a..3f99743c6 100644
--- a/packages/compat/package.json
+++ b/packages/compat/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/compat",
-  "version": "3.4.7",
+  "version": "4.0.0",
   "private": false,
   "description": "Backward compatibility layer for the Embroider build system.",
   "repository": {
diff --git a/packages/core/package.json b/packages/core/package.json
index 9b277e6d0..472fd069b 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/core",
-  "version": "3.4.7",
+  "version": "4.0.0",
   "private": false,
   "description": "A build system for EmberJS applications.",
   "repository": {
diff --git a/packages/hbs-loader/package.json b/packages/hbs-loader/package.json
index aa7c56cc9..db8416309 100644
--- a/packages/hbs-loader/package.json
+++ b/packages/hbs-loader/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/hbs-loader",
-  "version": "3.0.3",
+  "version": "4.0.0",
   "private": false,
   "description": "Glimmer handlebars loader for webpack",
   "repository": {
diff --git a/packages/macros/package.json b/packages/macros/package.json
index a5704b563..801b2c304 100644
--- a/packages/macros/package.json
+++ b/packages/macros/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/macros",
-  "version": "1.15.1",
+  "version": "2.0.0",
   "private": false,
   "description": "Standardized build-time macros for ember apps.",
   "keywords": [
diff --git a/packages/router/package.json b/packages/router/package.json
index b81d2d7e8..305d494bc 100644
--- a/packages/router/package.json
+++ b/packages/router/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/router",
-  "version": "2.1.6",
+  "version": "3.0.0",
   "description": "Lazy loading router",
   "keywords": [
     "ember-addon"
diff --git a/packages/shared-internals/package.json b/packages/shared-internals/package.json
index 39f52c099..b4e858026 100644
--- a/packages/shared-internals/package.json
+++ b/packages/shared-internals/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/shared-internals",
-  "version": "2.6.0",
+  "version": "2.7.0",
   "private": false,
   "description": "Utilities shared among the other embroider packages",
   "repository": {
diff --git a/packages/test-setup/package.json b/packages/test-setup/package.json
index a2f050180..90f7607a3 100644
--- a/packages/test-setup/package.json
+++ b/packages/test-setup/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/test-setup",
-  "version": "3.0.3",
+  "version": "4.0.0",
   "repository": {
     "type": "git",
     "url": "https://github.com/embroider-build/embroider.git",
diff --git a/packages/util/package.json b/packages/util/package.json
index 3cf3cfc29..6e1d1a359 100644
--- a/packages/util/package.json
+++ b/packages/util/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/util",
-  "version": "1.13.0",
+  "version": "1.13.1",
   "description": "Utilities for app and addon authors.",
   "keywords": [
     "ember-addon"
diff --git a/packages/vite/package.json b/packages/vite/package.json
index 4ea1a65e4..3046c408e 100644
--- a/packages/vite/package.json
+++ b/packages/vite/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/vite",
-  "version": "0.2.0",
+  "version": "1.0.0",
   "main": "index.mjs",
   "peerDependencies": {
     "@embroider/core": "workspace:^",
diff --git a/packages/webpack/package.json b/packages/webpack/package.json
index d8f0cdd53..aba016df4 100644
--- a/packages/webpack/package.json
+++ b/packages/webpack/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@embroider/webpack",
-  "version": "3.2.3",
+  "version": "4.0.0",
   "private": false,
   "description": "Builds EmberJS apps with Webpack",
   "repository": {