Skip to content

ci: release#1677

Merged
ascorbic merged 1 commit into
mainfrom
changeset-release/main
Jul 1, 2026
Merged

ci: release#1677
ascorbic merged 1 commit into
mainfrom
changeset-release/main

Conversation

@emdashbot

@emdashbot emdashbot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

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 facdcfc Thanks @ttmx! - Adds content scheduling hooks for plugins to react when entries are scheduled or unscheduled.

  • #1695 5dea403 Thanks @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: calling renderPageMetadata(metadata) still includes JSON-LD script tags in the returned HTML string.

Patch Changes

  • #1661 f44a277 Thanks @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 971c627 Thanks @marcusbellamyshaw-cell! - Fixes datetime fields becoming unsavable through the admin editor (#1368). A datetime-local input (or a seed) produces a naive value such as 2026-06-04T18:30:00 with no Z suffix 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 a Z suffix or an explicit offset, and date-only values, while still rejecting non-dates.

  • #1560 e5b95e1 Thanks @marcusbellamyshaw-cell! - Fixes a cryptic build failure when a configured plugin has no resolvable entrypoint (#1416). Passing an inline definePlugin({...}) result directly to plugins: [] 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 that plugins: [] entries must resolve to a file or package entrypoint — move the plugin into its own module and reference it from there.

  • #1603 13b87b7 Thanks @Vallhalen! - Fixes silent null entries on wide-schema collections under Cloudflare D1. The content loader's single-query LEFT JOIN _emdash_seo added 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 with D1_ERROR: too many columns in result set, the error was wrapped as a generic Failed to load entry, and the call site surfaced null. 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 8f7604d Thanks @marcusbellamyshaw-cell! - Fixes a crash that returned HTTP 500 on every route on Cloudflare Workers when native plugins are registered with definePlugin (Cannot access 'SIMPLE_ID' before initialization). Plugin registration is now safe regardless of bundle ordering.

  • #1554 3d80be5 Thanks @marcusbellamyshaw-cell! - Fixes collection where taxonomy 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 d1116ae Thanks @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 192741f Thanks @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 (via getTaxonomyDefsgetCollectionTaxonomyNames), 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 a globalThis Symbol holder (the same two-tier pattern as settings/index.ts and 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 on globalThis behind Symbol keys, matching the existing SETUP_VERIFIED_KEY / request-context / request-cache singletons.

    No schema changes, no public API changes, fully backwards compatible.

  • #1692 737da19 Thanks @MA2153! - Restores the missing idx_taxonomies_parent index on taxonomies(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 5299d38 Thanks @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
    • @emdash-cms/auth@0.26.0
    • @emdash-cms/gutenberg-to-portable-text@0.26.0

@emdash-cms/admin@0.26.0

Patch Changes

  • #1570 dc32673 Thanks @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 fe832ce Thanks @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/blocks@0.26.0

@emdash-cms/auth-atproto@0.2.24

Patch Changes

  • Updated dependencies []:
    • @emdash-cms/auth@0.26.0

@emdash-cms/cloudflare@0.26.0

Patch Changes

@emdash-cms/plugin-embeds@0.1.32

Patch Changes

  • Updated dependencies []:
    • @emdash-cms/blocks@0.26.0

@emdash-cms/sandbox-workerd@0.1.16

Patch Changes

@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

@emdash-cms/perf-demo-site@0.0.27

Patch Changes

@emdash-cms/cache-demo-site@0.0.27

Patch Changes

@emdash-cms/do-demo-site@0.0.27

Patch Changes

@emdash-cms/do-solo-demo-site@0.0.27

Patch Changes

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 1, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
emdash-demo-do aa604b7 Jul 01 2026, 03:56 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 1, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
emdash-demo-cache aa604b7 Jul 01 2026, 03:58 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 1, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
emdash-playground aa604b7 Jul 01 2026, 03:57 PM

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Scope check

This PR touches 33 files. PRs with a broad scope are harder to review. Please confirm the scope hasn't drifted beyond the intended change.
This PR spans 5 different areas (area/core, area/admin, area/plugins, area/auth, area/cloudflare). Consider breaking it into smaller, focused PRs.

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.

@pkg-pr-new

pkg-pr-new Bot commented Jul 1, 2026

Copy link
Copy Markdown

Open in StackBlitz

@emdash-cms/admin

npm i https://pkg.pr.new/@emdash-cms/admin@1677

@emdash-cms/auth

npm i https://pkg.pr.new/@emdash-cms/auth@1677

@emdash-cms/auth-atproto

npm i https://pkg.pr.new/@emdash-cms/auth-atproto@1677

@emdash-cms/blocks

npm i https://pkg.pr.new/@emdash-cms/blocks@1677

@emdash-cms/cloudflare

npm i https://pkg.pr.new/@emdash-cms/cloudflare@1677

@emdash-cms/contentful-to-portable-text

npm i https://pkg.pr.new/@emdash-cms/contentful-to-portable-text@1677

emdash

npm i https://pkg.pr.new/emdash@1677

create-emdash

npm i https://pkg.pr.new/create-emdash@1677

@emdash-cms/gutenberg-to-portable-text

npm i https://pkg.pr.new/@emdash-cms/gutenberg-to-portable-text@1677

@emdash-cms/plugin-cli

npm i https://pkg.pr.new/@emdash-cms/plugin-cli@1677

@emdash-cms/plugin-types

npm i https://pkg.pr.new/@emdash-cms/plugin-types@1677

@emdash-cms/registry-client

npm i https://pkg.pr.new/@emdash-cms/registry-client@1677

@emdash-cms/registry-lexicons

npm i https://pkg.pr.new/@emdash-cms/registry-lexicons@1677

@emdash-cms/sandbox-workerd

npm i https://pkg.pr.new/@emdash-cms/sandbox-workerd@1677

@emdash-cms/x402

npm i https://pkg.pr.new/@emdash-cms/x402@1677

@emdash-cms/plugin-ai-moderation

npm i https://pkg.pr.new/@emdash-cms/plugin-ai-moderation@1677

@emdash-cms/plugin-atproto

npm i https://pkg.pr.new/@emdash-cms/plugin-atproto@1677

@emdash-cms/plugin-audit-log

npm i https://pkg.pr.new/@emdash-cms/plugin-audit-log@1677

@emdash-cms/plugin-color

npm i https://pkg.pr.new/@emdash-cms/plugin-color@1677

@emdash-cms/plugin-embeds

npm i https://pkg.pr.new/@emdash-cms/plugin-embeds@1677

@emdash-cms/plugin-field-kit

npm i https://pkg.pr.new/@emdash-cms/plugin-field-kit@1677

@emdash-cms/plugin-forms

npm i https://pkg.pr.new/@emdash-cms/plugin-forms@1677

@emdash-cms/plugin-webhook-notifier

npm i https://pkg.pr.new/@emdash-cms/plugin-webhook-notifier@1677

commit: aa604b7

@emdashbot emdashbot Bot force-pushed the changeset-release/main branch 8 times, most recently from 9d23eb8 to 72464cf Compare July 1, 2026 14:51
@github-actions github-actions Bot added size/L and removed size/M labels Jul 1, 2026
@emdashbot emdashbot Bot force-pushed the changeset-release/main branch from 4157cac to 25580aa Compare July 1, 2026 15:21
@emdashbot emdashbot Bot force-pushed the changeset-release/main branch 2 times, most recently from 3ab781e to f55611b Compare July 1, 2026 15:45
@emdashbot emdashbot Bot force-pushed the changeset-release/main branch from f55611b to aa604b7 Compare July 1, 2026 15:49
@ascorbic ascorbic merged commit 71a148d into main Jul 1, 2026
46 checks passed
@ascorbic ascorbic deleted the changeset-release/main branch July 1, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Admin: ContentListPage still throws React #300 (hook-order) — inline useCallback for onLoadMore sits below early returns

1 participant