0.41.x → 0.42
The stable 0.42 line added request-time surfaces — loaders, actions, progressive-enhancement forms, redirects and Nitro server output. Static-first sites upgraded without a breaking change to the frozen 0.41 surface. ADR-0122 records the accepted 0.42.0 contract.
From 0.40.x
The consumer graph is five packages; core/signal/router/protocol/content/ssg are retired. Author with defineElement/definePage/defineApp and build with buildApp(). defineLayout is removed; distribution is npm-first.
Alpha.17–19
Build helpers moved to element/build-utils; router types left the app root; renderIntent.streaming was removed; dynamic 500s fail builds by default; star-seam types (SafeHtml/UnsafeHtml/StyleSheetRule) left the element root; ui controls are squared (radius-1).
The 0.41.0 freeze
Adapter-vite internal subpaths (app-vite, build-context, head-injection, i18n-plugin, plugin, generated-data-resolver, plugin-mdx, route-manifest, cli/build-client, cli/build-ssg) were pruned. Use the root, nitro-mount, cli/build and sitemap.
Verify after upgrading
Reinstall frozen, rebuild, and grep for removed imports: renderIntent.streaming, open-element-render, open-element-hydration, app-vite, SafeHtml, *TagName. Re-record visual baselines after the ui geometry change.
The complete entry-by-entry guide with before/after imports lives in docs/release/v0.41.0-migration.md.