Skip to content

ci: release#1871

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

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

Conversation

@emdashbot

@emdashbot emdashbot Bot commented Jul 8, 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-cms/admin@0.29.0

Minor Changes

  • #1524 d237e96 Thanks @swissky! - Adds bulk actions to the content list. Select multiple entries with checkboxes (or the header "select all" box) and publish, set to draft, or move them to trash in one step.

Patch Changes

  • #1865 582ea2c Thanks @khoinguyenpham04! - Fixes the admin dashboard scheduled-content summary so it counts entries with pending schedules instead of inferring the count from other statuses.

  • #1865 582ea2c Thanks @khoinguyenpham04! - Updates the admin dashboard and header with more consistent Kumo card styling, aligned loading and error states, and collection quick actions that open new entries directly.

  • #1866 d2f5ddc Thanks @khoinguyenpham04! - Updates admin UI status colors to use Kumo semantic tokens instead of hard-coded palette classes, so email settings, role and comment badges, content type indicators, the dashboard, and other status displays now theme consistently in both light and dark mode. Also fixes warning highlights in the marketplace audit badge and the plugin capability consent dialog, which previously referenced a nonexistent color token and rendered unstyled.

  • #1720 9792226 Thanks @segmentationfaulter! - Fixes OAuth provider login buttons (Google, GitHub) generating broken URLs on the admin login page. Non-admin /_emdash/ paths are no longer routed through TanStack Router, which was incorrectly prepending the admin basepath and causing 404s.

  • #1719 7c5de08 Thanks @swissky! - Adds a taxonomies:read plugin capability with read-only taxonomy access: plugins that declare it get ctx.taxonomies to list taxonomy definitions (getAll()), fetch the terms of a taxonomy (getTerms()), and read the terms assigned to a content entry (getEntryTerms()) — in-process and in both sandbox runners.

  • #1886 60811c0 Thanks @swissky! - Adds a toolbar config option for reliable editor-toolbar delivery behind shared caches. toolbar: "client" keeps public HTML identical for every visitor and shows a client-side "Edit" pill for logged-in editors that opens a fresh, uncached editor render via an _edit query param; toolbar: false disables the toolbar entirely. The toolbar can now also be dismissed in the browser via its × button. The default ("server") is unchanged.

  • Updated dependencies [7c5de08]:

    • @emdash-cms/plugin-types@0.2.0
    • @emdash-cms/registry-lexicons@0.2.0
    • @emdash-cms/registry-client@0.3.3
    • @emdash-cms/blocks@0.29.0

@emdash-cms/cloudflare@0.29.0

Minor Changes

  • #1719 7c5de08 Thanks @swissky! - Adds a taxonomies:read plugin capability with read-only taxonomy access: plugins that declare it get ctx.taxonomies to list taxonomy definitions (getAll()), fetch the terms of a taxonomy (getTerms()), and read the terms assigned to a content entry (getEntryTerms()) — in-process and in both sandbox runners.

Patch Changes

emdash@0.29.0

Minor Changes

  • #1535 0360900 Thanks @MA2153! - Adds an HTTP API for content references: relation-definition CRUD under /_emdash/api/relations (editor-readable, admin-writable) and directed reference edges on content entries under /_emdash/api/content/:collection/:id/references/:relation/{children,parents} (ownership-aware). References are stored only in the references table — no collection column. The edge reads are cursor-paginated (?cursor/?limit, default 50, max 100) and return nextCursor; each resolved entry carries the locale of the variant returned.

  • #1874 1526f96 Thanks @Vallhalen! - MCP content_create and content_update now accept a taxonomies field
    ({ [taxonomyName]: [termSlug, ...] }) that assigns taxonomy terms in the
    same transaction as the content write. Term slugs are resolved in the entry's
    locale via the same code path as the /terms/{taxonomy} REST route, so the
    two entry points can't drift. Also exposed on the REST POST and PUT
    content endpoints for parity. Fixes #953.

  • #1719 7c5de08 Thanks @swissky! - Adds a taxonomies:read plugin capability with read-only taxonomy access: plugins that declare it get ctx.taxonomies to list taxonomy definitions (getAll()), fetch the terms of a taxonomy (getTerms()), and read the terms assigned to a content entry (getEntryTerms()) — in-process and in both sandbox runners.

  • #1578 58f594b Thanks @marcusbellamyshaw-cell! - Implements pagination for search() and searchCollection()

    search() advertised keyset pagination through its types (options.cursor, SearchResponse.nextCursor) but never read the cursor or returned one, so results were silently capped at limit with no way to load a second page.

    Both search() and searchCollection() now honour cursor and return a nextCursor whenever more matches exist. Pass the previous nextCursor back as cursor to walk subsequent pages; it becomes undefined on the last page. The /_emdash/api/search endpoint accepts a cursor query parameter and returns nextCursor in its response (a malformed cursor returns a 400 INVALID_CURSOR).

    let cursor: string | undefined;
    do {
    	const { items, nextCursor } = await search("quarterly report", {
    		limit: 20,
    		cursor,
    	});
    	render(items);
    	cursor = nextCursor;
    } while (cursor);
  • #1867 c57b12b Thanks @khoinguyenpham04! - Adds an admin REST endpoint and EmDashClient.mediaRepairUsage() client method for repairing content media usage indexes by collection or across all collections.

  • #1886 60811c0 Thanks @swissky! - Adds a toolbar config option for reliable editor-toolbar delivery behind shared caches. toolbar: "client" keeps public HTML identical for every visitor and shows a client-side "Edit" pill for logged-in editors that opens a fresh, uncached editor render via an _edit query param; toolbar: false disables the toolbar entirely. The toolbar can now also be dismissed in the browser via its × button. The default ("server") is unchanged.

Patch Changes

  • #1865 582ea2c Thanks @khoinguyenpham04! - Fixes the admin dashboard scheduled-content summary so it counts entries with pending schedules instead of inferring the count from other statuses.

  • #1857 77e8968 Thanks @swissky! - Speeds up the admin content-list search on collections with full-text search enabled: the filter is now served from the FTS5 index (token-prefix matching plus slug-prefix lookup) instead of scanning every row. Collections without search enabled, and PostgreSQL databases, keep the previous substring matching.

  • #1905 e12f393 Thanks @swissky! - Fixes multi-paragraph blockquotes splitting into separate quotes: consecutive quote paragraphs now render as a single blockquote on the site and load as one quote block in the editor, so merging them no longer reverts on reload.

  • #1854 e4e76f5 Thanks @swissky! - Fixes comment submissions bypassing Turnstile: when the EMDASH_TURNSTILE_SECRET_KEY (or TURNSTILE_SECRET_KEY) environment variable is set, the public comment endpoint now verifies the submitted Turnstile token server-side and rejects submissions without a valid one. Sites without a configured secret key are unaffected.

  • #1550 cbc7d6b Thanks @marcusbellamyshaw-cell! - Fixes search across all collections failing with D1_ERROR: no such column: c.title when any search-enabled collection has no title field (#1178). title is an optional field, not a guaranteed column, so calling search (or the MCP search tool) without a collections filter could error instead of searching everything. Cross-collection search now works regardless of which collections define a title; results from a collection without one simply omit the title, and autocomplete suggestions skip such collections rather than erroring.

  • #1907 15f4057 Thanks @swissky! - Adds hreflang alternate links to the page head for translated content. <EmDashHead> now emits a <link rel="alternate" hreflang="..."> per published translation (plus x-default) automatically, and a new getHreflangAlternates() helper resolves the same set for hand-rolled heads.

  • #1875 b116525 Thanks @ascorbic! - Fixes a database stampede on Postgres when a pending migration fails at runtime: requests no longer pile up waiting on the migration lock, failed migrations are retried with a backoff instead of on every request, and failed attempts no longer leak idle database connections.

  • #1855 450ea81 Thanks @swissky! - Fixes preview and editor-toolbar responses being stored in the shared edge cache when route caching is enabled: requests with a _preview token and toolbar-injected editor pages now opt out of the route cache, so draft content is no longer served from the cache without token verification and toolbar markup no longer leaks to anonymous visitors.

  • #1892 9c0733f Thanks @ascorbic! - Fixes taxonomy term counts (Categories/Tags widgets, term pages, and the admin term list) so they only include content that is publicly visible: published or scheduled-and-due entries that have not been trashed. Counts are now also scoped to the taxonomy's declared collections.

  • Updated dependencies [582ea2c, 582ea2c, d2f5ddc, d237e96, 9792226, 7c5de08, 60811c0]:

    • @emdash-cms/admin@0.29.0
    • @emdash-cms/plugin-types@0.2.0
    • @emdash-cms/registry-client@0.3.3
    • @emdash-cms/auth@0.29.0
    • @emdash-cms/gutenberg-to-portable-text@0.29.0

@emdash-cms/plugin-cli@0.7.0

Minor Changes

  • #1719 7c5de08 Thanks @swissky! - Adds a taxonomies:read plugin capability with read-only taxonomy access: plugins that declare it get ctx.taxonomies to list taxonomy definitions (getAll()), fetch the terms of a taxonomy (getTerms()), and read the terms assigned to a content entry (getEntryTerms()) — in-process and in both sandbox runners.

Patch Changes

  • Updated dependencies [7c5de08]:
    • @emdash-cms/plugin-types@0.2.0
    • @emdash-cms/registry-lexicons@0.2.0
    • @emdash-cms/registry-client@0.3.3

@emdash-cms/plugin-types@0.2.0

Minor Changes

  • #1719 7c5de08 Thanks @swissky! - Adds a taxonomies:read plugin capability with read-only taxonomy access: plugins that declare it get ctx.taxonomies to list taxonomy definitions (getAll()), fetch the terms of a taxonomy (getTerms()), and read the terms assigned to a content entry (getEntryTerms()) — in-process and in both sandbox runners.

@emdash-cms/registry-lexicons@0.2.0

Minor Changes

  • #1719 7c5de08 Thanks @swissky! - Adds a taxonomies:read plugin capability with read-only taxonomy access: plugins that declare it get ctx.taxonomies to list taxonomy definitions (getAll()), fetch the terms of a taxonomy (getTerms()), and read the terms assigned to a content entry (getEntryTerms()) — in-process and in both sandbox runners.

@emdash-cms/sandbox-workerd@0.2.0

Minor Changes

  • #1719 7c5de08 Thanks @swissky! - Adds a taxonomies:read plugin capability with read-only taxonomy access: plugins that declare it get ctx.taxonomies to list taxonomy definitions (getAll()), fetch the terms of a taxonomy (getTerms()), and read the terms assigned to a content entry (getEntryTerms()) — in-process and in both sandbox runners.

Patch Changes

@emdash-cms/auth-atproto@0.2.28

Patch Changes

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

@emdash-cms/plugin-embeds@0.1.36

Patch Changes

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

@emdash-cms/registry-client@0.3.3

Patch Changes

  • Updated dependencies [7c5de08]:
    • @emdash-cms/registry-lexicons@0.2.0

@emdash-cms/auth@0.29.0

@emdash-cms/blocks@0.29.0

create-emdash@0.29.0

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

@emdash-cms/x402@0.29.0

@emdash-cms/fixture-perf-site@0.0.31

Patch Changes

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

Patch Changes

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

Patch Changes

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

Patch Changes

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

Patch Changes


Try this PR

Open a fresh playground →

A full working EmDash site, deployed from this branch. Each visit gets its own session-scoped sandbox: no login needed and no shared state. Try the admin, edit content, hit the public site.

Tracks changeset-release/main. Updated automatically when the playground redeploys.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 8, 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 2b93c02 Jul 10 2026, 03:29 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 8, 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 2b93c02 Jul 10 2026, 03:30 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 8, 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 2b93c02 Jul 10 2026, 03:29 PM

@github-actions

github-actions Bot commented Jul 8, 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 8, 2026

Copy link
Copy Markdown

Open in StackBlitz

@emdash-cms/admin

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

@emdash-cms/auth

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

@emdash-cms/auth-atproto

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

@emdash-cms/blocks

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

@emdash-cms/cloudflare

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

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

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

emdash

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

create-emdash

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

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

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

@emdash-cms/plugin-cli

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

@emdash-cms/plugin-types

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

@emdash-cms/registry-client

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

@emdash-cms/registry-lexicons

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

@emdash-cms/sandbox-workerd

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

@emdash-cms/x402

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

@emdash-cms/plugin-ai-moderation

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

@emdash-cms/plugin-atproto

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

@emdash-cms/plugin-audit-log

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

@emdash-cms/plugin-color

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

@emdash-cms/plugin-embeds

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

@emdash-cms/plugin-field-kit

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

@emdash-cms/plugin-forms

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

@emdash-cms/plugin-webhook-notifier

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

commit: 2b93c02

@emdashbot
emdashbot Bot force-pushed the changeset-release/main branch 2 times, most recently from 1048260 to a8acd11 Compare July 8, 2026 16:15
@emdashbot
emdashbot Bot force-pushed the changeset-release/main branch 6 times, most recently from 335a9e9 to db4c458 Compare July 9, 2026 09:20
@github-actions github-actions Bot added size/L and removed size/M labels Jul 9, 2026
@emdashbot
emdashbot Bot force-pushed the changeset-release/main branch 5 times, most recently from deaca60 to e67b9e0 Compare July 9, 2026 16:08
@github-actions github-actions Bot added the query-count changed PR diff modifies query-count snapshot files label Jul 9, 2026
@emdashbot
emdashbot Bot force-pushed the changeset-release/main branch from 86d208e to 7f741e6 Compare July 9, 2026 20:16
@github-actions github-actions Bot added query-count changed PR diff modifies query-count snapshot files overlap and removed query-count changed PR diff modifies query-count snapshot files labels Jul 9, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Overlapping PRs

This PR modifies files that are also changed by other open PRs:

This may cause merge conflicts or duplicated work. A maintainer will coordinate.

@emdashbot
emdashbot Bot force-pushed the changeset-release/main branch from d6b25a7 to b8e5407 Compare July 10, 2026 09:06
@github-actions github-actions Bot added query-count changed PR diff modifies query-count snapshot files and removed query-count changed PR diff modifies query-count snapshot files labels Jul 10, 2026
@emdashbot
emdashbot Bot force-pushed the changeset-release/main branch from 2298bfa to 5472d1f Compare July 10, 2026 10:35
@github-actions github-actions Bot added query-count changed PR diff modifies query-count snapshot files and removed query-count changed PR diff modifies query-count snapshot files labels Jul 10, 2026
@emdashbot
emdashbot Bot force-pushed the changeset-release/main branch from 33b856d to 0a64494 Compare July 10, 2026 11:10
@github-actions github-actions Bot removed the query-count changed PR diff modifies query-count snapshot files label Jul 10, 2026
@emdashbot
emdashbot Bot force-pushed the changeset-release/main branch 7 times, most recently from 70e3b95 to ebe6ce4 Compare July 10, 2026 14:31
@emdashbot
emdashbot Bot force-pushed the changeset-release/main branch from ebe6ce4 to 2b93c02 Compare July 10, 2026 15:25
@ascorbic
ascorbic merged commit baf4d83 into main Jul 10, 2026
46 checks passed
@ascorbic
ascorbic deleted the changeset-release/main branch July 10, 2026 16:29
marcusbellamyshaw-cell pushed a commit to Emdash-Bug-Testing/emdash that referenced this pull request Jul 22, 2026
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

MCP: content_create/content_update ignores taxonomies field (categories/tags not assigned)

1 participant