The maintained release record lives in docs/release/.
Current truth lives in:
docs/current/VERSION_PLAN.mddocs/current/PACKAGE_SURFACE.mddocs/status/STATUS.mddocs/roadmap/ROADMAP.md
Historical changelog details remain available through git history and release evidence.
- Fixes the
reflect: truestatic-prop write loop and SSR attribute overwrite; resolves the root-level<Show>/<For>CSR edge; unifies prop attribute casing; makesForbranch tokens content-sensitive; fixes client-runtime double hydration; runs router guards on history traversal; honorsprefers-color-schemein theme-init. - Shares one CEM admission plan across dev/SSR/SSG; dynamic-route render
failures now fail the build (opt-out
'warn'); failed pages never ship nor enter the ISR manifest; static non-200 outcomes are summarized. - Local releases land evidence and closure on main; anchor gates reject stale version claims; the bump maintains every currency line; the release executor resumes from failures.
- Adds WebKit smoke to CI, gates examples checks, single-sources the guide with real Chinese rendering, and covers the SPA action chain in a real browser.
- Removes dead exports, fields and scripts (breaking; see the GitHub
prerelease notes for migration), removes
renderIntent.streaming, converges fmt/lint exclusions, and retires stale files and config entries.
- Covers hydration and binding behavior in a real browser: signal text patching, event hydration, SSR/hydration mismatch fallback and form submission through shadow boundaries.
- Wires SSR error collection: a failing route render produces a defined 500
result with
RenderErrordiagnostics; the unreadhydrationHintscontract is removed. - Converges island declaration construction, single-instantiates the entry
descriptor, deduplicates the SPA/SSG phase-2 blocks and shares route
rendering helpers; deletes the unwired external-resolver, the
clientOnlyTagschain and dead build-context fields. - Counts every source file in the coverage denominator and re-baselines thresholds on measured values; the critical-path gate runs its e2e suites for real and can no longer skip them on failure output.
- Adds a Firefox smoke project to CI for the core DSD/hydration/theme specs.
- Adds a mechanical version-anchor gate across governance documents, and
the release bump now maintains
ACTIVE_EXECUTION_VERSION. - Fixes
publish-existingevidence: records the true previous package line, rewrites GitHub release notes from completed evidence, and generates the release closure record automatically. - Moves adapter build-time utilities from the
@openelement/elementroot to@openelement/element/build-utils, stops exporting internal router types from the@openelement/approot, and alignsPACKAGE_SURFACE.mdwith a machine-checked exports inventory. Breaking surface removals: element root build utilities (migrate to./build-utils), app rootRouteConfig/RouterInstance/RouterModetypes, adapter-viteExternalManifesttype andSsgPageOutput.hydrationHints. - Publishes the #390 external adopter pilot kit and launches recruitment.
- Aligns SSR and hydration event markers for custom-element hosts and
Show/Forbranches; hydration validates marker counts and branch tokens and falls back to client re-render on mismatch. - Merges static-props
observedAttributesat class-definition time so attribute-to-signal synchronization works in real browsers. - Matches island chunks via the client build manifest, fixes base64url hash
handling, names
.tsx/.jsxisland chunks, and normalizes Windows drive-letter island paths (#460). - Enforces the npm
latestdist-tag invariant for prereleases in the publish tooling and release verifier. - Clears current-truth drift across governance documents and removes dead gate triggers (ADR-0116 packages A and E).
- Modernizes the CI runtime (GitHub Actions Node 24 with reviewed immutable SHAs) and makes external review advisory.
- Enforces current-truth wording mechanically across governance documents and the website.
- Ships the #390 external-adopter pilot kit, cross-platform published-consumer runs and a five-package public-interface snapshot for the freeze rehearsal.
- Records the stable-readiness dossier; #390 and #37 remain open by design.
- Recovers the release line with an exact-version starter, verified published consumers and honest two-stage release evidence.
- Publishes all five packages under the
alphadist-tag with post-publish Deno, Node ESM, Nitro and third-party Web Component smoke evidence.
- Removes the alpha-only
defineLayoutalias; usedefineElementwith the same arguments for layout elements. - Restores declared static-prop defaults when reflected attributes are removed.
- Hardens SSR prop injection, custom-element hydration, params parsing, nested SSR depth, and adopted stylesheet composition.
- Stabilizes SPA action errors, caches same-route GET requests, bounds render data contexts, and compiles client routes into a declaration-ordered trie.
- Removes Preact bridge top-level await and public data-context mutation hooks.
- Hardens Adapter Vite i18n, head sanitization, sitemap, island manifests, npm-specifier rewriting, asynchronous manifest reads, CORS defaults, and AST-based route metadata extraction.
- Moves UI tokens to a CSS source of truth with generated-output drift checks, and makes Create template generation asynchronous, deterministic, and bound to the five-package same-version release invariant.
- Restores frozen-install and changed-path/release workflow truth.
- Fixes query decoding, SPA page-host data, dialog inert restoration, and theme propagation.
- Consolidates the Element/Adapter protocol seam and removes verified dead DSD, CEM, route-scanner, and UI escape code.
- Repairs clean Nitro Workers builds, semantic visual smoke, and package artifact allowlists.
- Enforces publishable runtime coverage at 69% lines, 81% branches, and 72% functions; tag and GitHub prerelease remain blocked until post-publish consumers pass.