ci: release#1677
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-demo-do | aa604b7 | Jul 01 2026, 03:56 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-demo-cache | aa604b7 | Jul 01 2026, 03:58 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-playground | aa604b7 | Jul 01 2026, 03:57 PM |
Scope checkThis PR touches 33 files. PRs with a broad scope are harder to review. Please confirm the scope hasn't drifted beyond the intended change. If this scope is intentional, no action needed. A maintainer will review it. If not, please consider splitting this into smaller PRs. See CONTRIBUTING.md for contribution guidelines. |
@emdash-cms/admin
@emdash-cms/auth
@emdash-cms/auth-atproto
@emdash-cms/blocks
@emdash-cms/cloudflare
@emdash-cms/contentful-to-portable-text
emdash
create-emdash
@emdash-cms/gutenberg-to-portable-text
@emdash-cms/plugin-cli
@emdash-cms/plugin-types
@emdash-cms/registry-client
@emdash-cms/registry-lexicons
@emdash-cms/sandbox-workerd
@emdash-cms/x402
@emdash-cms/plugin-ai-moderation
@emdash-cms/plugin-atproto
@emdash-cms/plugin-audit-log
@emdash-cms/plugin-color
@emdash-cms/plugin-embeds
@emdash-cms/plugin-field-kit
@emdash-cms/plugin-forms
@emdash-cms/plugin-webhook-notifier
commit: |
9d23eb8 to
72464cf
Compare
4157cac to
25580aa
Compare
3ab781e to
f55611b
Compare
f55611b to
aa604b7
Compare
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
emdash@0.26.0
Minor Changes
#1659
facdcfcThanks @ttmx! - Adds content scheduling hooks for plugins to react when entries are scheduled or unscheduled.#1695
5dea403Thanks @ascorbic! - Updates EmDashHead JSON-LD rendering for Astro CSP compatibility.Sites using
<EmDashHead />do not need to change anything. JSON-LD structured data is still rendered automatically, but EmDash now registers the generated script hashes with Astro's CSP runtime API so strict CSP can allow them.This also adds
renderPageMetadata(metadata, { includeJsonLd: false })for advanced integrations that render metadata manually and want to handle JSON-LD script tags themselves. The default remains unchanged: callingrenderPageMetadata(metadata)still includes JSON-LD script tags in the returned HTML string.Patch Changes
#1661
f44a277Thanks @greymoth-jp! - The editor footer now counts CJK (Chinese, Japanese, Korean) characters in its word count and reading-time estimate. Because these scripts have no spaces between words, the footer previously counted a whole paragraph as a single word and showed "1 min read" for long CJK drafts, even though the published page reported the correct reading time. The footer now matches the published reading time for CJK content; English and other space-delimited text is unchanged.#1561
971c627Thanks @marcusbellamyshaw-cell! - Fixes datetime fields becoming unsavable through the admin editor (#1368). Adatetime-localinput (or a seed) produces a naive value such as2026-06-04T18:30:00with noZsuffix or timezone offset, which the field validator rejected — and because the editor re-sends every field on autosave, an entry holding such a value could no longer be saved. Datetime fields now accept naive values (with or without seconds), values with aZsuffix or an explicit offset, and date-only values, while still rejecting non-dates.#1560
e5b95e1Thanks @marcusbellamyshaw-cell! - Fixes a cryptic build failure when a configured plugin has no resolvable entrypoint (#1416). Passing an inlinedefinePlugin({...})result directly toplugins: []previously failed deep in the bundler with an unhelpful "failed to resolve import" error. The build now fails fast with a clear message that names the offending plugin and explains thatplugins: []entries must resolve to a file or package entrypoint — move the plugin into its own module and reference it from there.#1603
13b87b7Thanks @Vallhalen! - Fixes silentnullentries on wide-schema collections under Cloudflare D1. The content loader's single-queryLEFT JOIN _emdash_seoadded 5 alias columns to every result set, which pushed collections with ~95+ flat user fields past D1's per-query column limit (~100). The query failed withD1_ERROR: too many columns in result set, the error was wrapped as a genericFailed to load entry, and the call site surfacednull. SEO is now folded into a single aggregated JSON column (mirroring how byline and taxonomy hydration already work), keeping the result-set width bounded regardless of how wide the collection schema gets while preserving the single round trip.#1542
8f7604dThanks @marcusbellamyshaw-cell! - Fixes a crash that returned HTTP 500 on every route on Cloudflare Workers when native plugins are registered withdefinePlugin(Cannot access 'SIMPLE_ID' before initialization). Plugin registration is now safe regardless of bundle ordering.#1554
3d80be5Thanks @marcusbellamyshaw-cell! - Fixes collectionwheretaxonomy filters matching nothing when filtering a non-default locale by its localized term slug. Term slugs now resolve in the active query locale (#1480).#1674
d1116aeThanks @khoinguyenpham04! - Adds the internal media usage index foundation for upcoming usage-aware media workflows. This creates the usage index schema during migrations but does not change Media Library behavior yet.#1399
192741fThanks @scottbuscemi! - Cut per-render D1 round trips on public pages by caching taxonomy definitions across the worker isolate, and harden the runtime/DB singletons against bundler module duplication.Every public render that hydrates entry terms read
SELECT * FROM _emdash_taxonomy_defs(viagetTaxonomyDefs→getCollectionTaxonomyNames), which only had per-request caching. On Cloudflare D1, where the worker colo is often far from the database primary, each query is a ~40ms cross-region round trip, so this fired on every warm request for no benefit — taxonomy definitions change extremely rarely (created via the admin API or a seed; there is no edit/delete-def path). They're now cached per-isolate behind aglobalThisSymbol holder (the same two-tier pattern assettings/index.tsand the byline field-defs cache), keyed by resolved locale and invalidated in-memory by every def write (handleTaxonomyCreate, seed application). Invalidation is in-memory rather than a persisted version probe on purpose: a per-request version read would merely replace the query being removed, yielding no net saving on warm isolates. Isolated databases (playground / DO preview) bypass the cache.Separately, the cached runtime instance, the DB-instance cache, and the in-flight DB-init promise (
astro/middleware.ts,emdash-runtime.ts) were plain module-scoped variables. Under Vite SSR chunk duplication those can become multiple independent copies, letting cold-start migrations and bootstrap reads re-run on requests that should have hit the warm cache. They now live onglobalThisbehind Symbol keys, matching the existingSETUP_VERIFIED_KEY/ request-context / request-cache singletons.No schema changes, no public API changes, fully backwards compatible.
#1692
737da19Thanks @MA2153! - Restores the missingidx_taxonomies_parentindex ontaxonomies(parent_id), which was silently dropped by the i18n table rebuild in an earlier version. Installs upgrade automatically; hierarchical (parent/child) taxonomy lookups are indexed again.#1696
5299d38Thanks @ascorbic! - Fixes i18n collection sitemaps so untranslated entries include self hreflang and x-default alternates.Updated dependencies [
dc32673,fe832ce]:@emdash-cms/admin@0.26.0
Patch Changes
#1570
dc32673Thanks @marcusbellamyshaw-cell! - Fixes a crash on the content list when an action that refetches (changing the sort, fast navigation) coincides with a load error. Closes #1415.#1673
fe832ceThanks @ascorbic! - Fixes the code block language picker losing focus and closing as soon as you type in it. You can now type to filter and choose a language.Updated dependencies []:
@emdash-cms/auth-atproto@0.2.24
Patch Changes
@emdash-cms/cloudflare@0.26.0
Patch Changes
facdcfc,f44a277,971c627,e5b95e1,13b87b7,8f7604d,5dea403,3d80be5,d1116ae,192741f,737da19,5299d38]:@emdash-cms/plugin-embeds@0.1.32
Patch Changes
@emdash-cms/sandbox-workerd@0.1.16
Patch Changes
facdcfc,f44a277,971c627,e5b95e1,13b87b7,8f7604d,5dea403,3d80be5,d1116ae,192741f,737da19,5299d38]:@emdash-cms/auth@0.26.0
@emdash-cms/blocks@0.26.0
create-emdash@0.26.0
@emdash-cms/gutenberg-to-portable-text@0.26.0
@emdash-cms/x402@0.26.0
@emdash-cms/fixture-perf-site@0.0.27
Patch Changes
facdcfc,f44a277,971c627,e5b95e1,13b87b7,8f7604d,5dea403,3d80be5,d1116ae,192741f,737da19,5299d38]:@emdash-cms/perf-demo-site@0.0.27
Patch Changes
facdcfc,f44a277,971c627,e5b95e1,13b87b7,8f7604d,5dea403,3d80be5,d1116ae,192741f,737da19,5299d38]:@emdash-cms/cache-demo-site@0.0.27
Patch Changes
facdcfc,f44a277,971c627,e5b95e1,13b87b7,8f7604d,5dea403,3d80be5,d1116ae,192741f,737da19,5299d38]:@emdash-cms/do-demo-site@0.0.27
Patch Changes
facdcfc,f44a277,971c627,e5b95e1,13b87b7,8f7604d,5dea403,3d80be5,d1116ae,192741f,737da19,5299d38]:@emdash-cms/do-solo-demo-site@0.0.27
Patch Changes
facdcfc,f44a277,971c627,e5b95e1,13b87b7,8f7604d,5dea403,3d80be5,d1116ae,192741f,737da19,5299d38]: