ci: release#1209
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
docs | 7acaa6d | Jun 01 2026, 06:51 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-demo-cache | 7acaa6d | Jun 01 2026, 06:52 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-playground | 7acaa6d | Jun 01 2026, 06:52 PM |
@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: |
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. |
5810194 to
f5963d0
Compare
3b1eef4 to
77d8b63
Compare
Overlapping PRsThis PR modifies files that are also changed by other open PRs: This may cause merge conflicts or duplicated work. A maintainer will coordinate. |
9450902 to
c3e7cc7
Compare
c3e7cc7 to
7acaa6d
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-cms/admin@0.16.0
Minor Changes
#1238
60c0b2eThanks @ascorbic! - Registry plugins can now declare environment requirements. A plugin's manifest may set a release-levelrequiresblock (e.g.{ "env:emdash": ">=1.0.0", "env:astro": ">=4.16" }), which is published into the release record. When browsing a registry plugin, the admin compares those constraints against the running EmDash and Astro versions: if the host doesn't satisfy them, it shows a compatibility warning and disables the Install button. The server enforces the same check on install and update, refusing an incompatible release withENV_INCOMPATIBLEso the gate can't be bypassed.#1239
1a4918fThanks @ascorbic! - Plugins published to the experimental registry can now ship icon, screenshot, and banner images. Declare them inemdash-plugin.jsoncunderrelease.artifactsas file refs;emdash-plugin publish --artifact-base-url <url>measures each image's dimensions, uploads it, and records it in the release. The admin plugin detail page renders the icon, banner, and a screenshot gallery, fetched through a server-side image proxy. The proxy resolves each artifact's URL server-side from the validated release record (the client sends only the artifact's coordinates, never a URL), then applies SSRF defences and an image content-type allowlist before serving the bytes. Supported image types are PNG, JPEG, WebP, GIF, and AVIF; SVG is rejected at both publish and proxy because it is active content.#1253
d2f2679Thanks @ascorbic! - The registry plugin detail page now surfaces a plugin's long-form profile sections. Publishers'description,installation,faq,changelog, andsecuritysections render as sanitized Markdown (the shared auditedrenderMarkdown— raw HTML, scripts, and images stripped, https-only links) in a tabbed view below the install action, with one tab per non-empty section. The page also shows an SBOM badge with the document format and a guarded direct download link (rendered only for safe http(s) URLs), the publisher-assertedlastUpdatedtime labelled distinctly from the aggregator'sindexedAt, and an accessible tooltip on the verified-publisher shield naming the labeller DID that issued the verification.Patch Changes
#1257
62619c2Thanks @Rimander! - Completes the Spanish (Spain) admin translation, filling the 54 remaining untranslated strings across the plugin registry, SEO/social-image settings, the code-block editor, byline/content strings, and the capability-consent dialog. Thees-EScatalog is now fully translated.#1255
3d540daThanks @ascorbic! - Fix admin crash on authenticated load with @cloudflare/kumo 2.4.x (#1240). Thesidebar was using
Sidebar.GroupContentand group-levelcollapsible/defaultOpenprops, which were removed in kumo 2.4.0. The four nav sections(Content, Manage, Admin, Plugins) now render as plain
Sidebar.Groupblocks.The workspace catalog range for
@cloudflare/kumois bumped from^2.3.0to^2.4.0to match.#1248
b89e988Thanks @mvanhorn! - Fixes the flat taxonomy tag picker so focusing an empty input shows available existing terms for the collection.#1244
4612749Thanks @pitscher! - Fixes admin UI translations for permission counts and action labels so languages can use their correct plural forms and word orderUpdated dependencies [
60c0b2e]:emdash@0.16.0
Minor Changes
#1195
47a8350Thanks @ascorbic! - The per-collection sitemap (/sitemap-{collection}.xml) is now i18n-aware. When Astro i18n is enabled, each translation row is emitted as its own<url>with the correct locale prefix (resolved via Astro's owngetRelativeLocaleUrl, soprefixDefaultLocaleand custompathmappings are honoured). Every entry also lists its sibling translations as<xhtml:link rel="alternate" hreflang="...">(plusx-defaultfor the default-locale variant), grouped bytranslation_group. Sites with a single locale or no i18n configured are unaffected -- their sitemap XML is unchanged.#1238
60c0b2eThanks @ascorbic! - Registry plugins can now declare environment requirements. A plugin's manifest may set a release-levelrequiresblock (e.g.{ "env:emdash": ">=1.0.0", "env:astro": ">=4.16" }), which is published into the release record. When browsing a registry plugin, the admin compares those constraints against the running EmDash and Astro versions: if the host doesn't satisfy them, it shows a compatibility warning and disables the Install button. The server enforces the same check on install and update, refusing an incompatible release withENV_INCOMPATIBLEso the gate can't be bypassed.#1239
1a4918fThanks @ascorbic! - Plugins published to the experimental registry can now ship icon, screenshot, and banner images. Declare them inemdash-plugin.jsoncunderrelease.artifactsas file refs;emdash-plugin publish --artifact-base-url <url>measures each image's dimensions, uploads it, and records it in the release. The admin plugin detail page renders the icon, banner, and a screenshot gallery, fetched through a server-side image proxy. The proxy resolves each artifact's URL server-side from the validated release record (the client sends only the artifact's coordinates, never a URL), then applies SSRF defences and an image content-type allowlist before serving the bytes. Supported image types are PNG, JPEG, WebP, GIF, and AVIF; SVG is rejected at both publish and proxy because it is active content.#1064
33f76b8Thanks @Glacier-Luo! - Adds field-level and range filtering togetEmDashCollection'swhereoption. Previously, only taxonomy-based keys were processed via JOIN; non-taxonomy field names were silently discarded. Now thewhereclause supports exact match (string), multi-value match (string[]), and range comparisons ({ gt?, gte?, lt?, lte? }) on any content table column, all executed at the SQL layer with parameterized queries.Patch Changes
#1159
e312528Thanks @jp-knj! - Fix scheduled posts missing from snapshot export on SQLite/D1 until UTC midnight.#1166
668c5e1Thanks @OrangeManLi! - FixesportableTextToProsemirrorflattening nested lists whose subtree mixeslistItemtypes. The outer run-grouping broke on the first nested type switch (e.g. anorderedListchild under abulletListparent), so an input like[bullet L1, number L2, bullet L1]was emitted as three separate top-level lists instead of one bullet list with a numbered sub-list under the first item. InternalconvertList/convertListItemrecursion was already correct — only the outer grouping needed to be widened to includelevel > 1blocks regardless oflistItemtype.#1160
f62c004Thanks @CacheMeOwside! - Fixes Postgres server bundles importingbetter-sqlite3, which crashed production starts (pnpm preview,pnpm start) withERR_MODULE_NOT_FOUNDbecause the SQLite driver is not installed in Postgres-only deployments. MovedEmDashDatabaseErrorinto a new SQLite driver-freedatabase/errors.tsand re-exported it from there, so thebetter-sqlite3import doesn't leak into the Postgres build.#985
5456514Thanks @ppppangu! - Fixes public form embeds during SSR by allowing frontend plugin components to call public plugin routes without self-fetching.#1157
7554bd3Thanks @jp-knj! - Fix scheduled posts not appearing on SQLite/D1 until UTC midnight.#1196
e9877e1Thanks @Rimander! - Fix WordPress import leavingfeatured_image(and other image/file fields) pointing at the original WordPress URL after media download. The rewrite step passed the whole stored MediaValue JSON to the URL matcher instead of its innersrc, so the field was never rewritten to the local R2 URL even though the file existed in the media table. Inline content images were unaffected.Updated dependencies [
62619c2,3d540da,b89e988,4612749,60c0b2e,1a4918f,d2f2679]:@emdash-cms/plugin-cli@0.5.0
Minor Changes
#1238
60c0b2eThanks @ascorbic! - Registry plugins can now declare environment requirements. A plugin's manifest may set a release-levelrequiresblock (e.g.{ "env:emdash": ">=1.0.0", "env:astro": ">=4.16" }), which is published into the release record. When browsing a registry plugin, the admin compares those constraints against the running EmDash and Astro versions: if the host doesn't satisfy them, it shows a compatibility warning and disables the Install button. The server enforces the same check on install and update, refusing an incompatible release withENV_INCOMPATIBLEso the gate can't be bypassed.#1239
1a4918fThanks @ascorbic! - Plugins published to the experimental registry can now ship icon, screenshot, and banner images. Declare them inemdash-plugin.jsoncunderrelease.artifactsas file refs;emdash-plugin publish --artifact-base-url <url>measures each image's dimensions, uploads it, and records it in the release. The admin plugin detail page renders the icon, banner, and a screenshot gallery, fetched through a server-side image proxy. The proxy resolves each artifact's URL server-side from the validated release record (the client sends only the artifact's coordinates, never a URL), then applies SSRF defences and an image content-type allowlist before serving the bytes. Supported image types are PNG, JPEG, WebP, GIF, and AVIF; SVG is rejected at both publish and proxy because it is active content.#1253
d2f2679Thanks @ascorbic! - Plugins published to the experimental registry can now ship long-form profile sections. Declare them inemdash-plugin.jsoncunder a top-levelsectionsblock with any ofdescription,installation,faq,changelog, andsecurity. Each value is either inline CommonMark Markdown or a{ file: "./path.md" }ref read relative to the manifest at load time. Every section is capped at 20000 bytes and 2000 graphemes, enforced locally (inline strings during schema validation, file refs once their content is read) soemdash-plugin validate/publishfails with a clear message instead of a 400 from the PDS. File refs are resolved within the manifest directory; paths that escape it (via..or an absolute path) are rejected. Sections are profile-level: written to the package profile record on first publish and editable afterward withemdash-registry update-package, like the other profile fields.Patch Changes
#1247
245f8dcThanks @mvanhorn! - Fixes plugin builds on Windows by importing the probe artifact through a file URL.Updated dependencies [
60c0b2e]:@emdash-cms/registry-client@0.3.0
Minor Changes
60c0b2eThanks @ascorbic! - Registry plugins can now declare environment requirements. A plugin's manifest may set a release-levelrequiresblock (e.g.{ "env:emdash": ">=1.0.0", "env:astro": ">=4.16" }), which is published into the release record. When browsing a registry plugin, the admin compares those constraints against the running EmDash and Astro versions: if the host doesn't satisfy them, it shows a compatibility warning and disables the Install button. The server enforces the same check on install and update, refusing an incompatible release withENV_INCOMPATIBLEso the gate can't be bypassed.@emdash-cms/auth-atproto@0.2.9
Patch Changes
@emdash-cms/cloudflare@0.16.0
Patch Changes
e312528,668c5e1,f62c004,47a8350,5456514,60c0b2e,1a4918f,7554bd3,33f76b8,e9877e1]:@emdash-cms/plugin-embeds@0.1.17
Patch Changes
@emdash-cms/plugin-forms@0.2.3
Patch Changes
5456514Thanks @ppppangu! - Fixes public form embeds during SSR by allowing frontend plugin components to call public plugin routes without self-fetching.@emdash-cms/sandbox-workerd@0.1.1
Patch Changes
e312528,668c5e1,f62c004,47a8350,5456514,60c0b2e,1a4918f,7554bd3,33f76b8,e9877e1]:@emdash-cms/auth@0.16.0
@emdash-cms/blocks@0.16.0
create-emdash@0.16.0
@emdash-cms/gutenberg-to-portable-text@0.16.0
@emdash-cms/x402@0.16.0
@emdash-cms/fixture-perf-site@0.0.12
Patch Changes
e312528,668c5e1,f62c004,47a8350,5456514,60c0b2e,1a4918f,7554bd3,33f76b8,e9877e1]:@emdash-cms/perf-demo-site@0.0.12
Patch Changes
e312528,668c5e1,f62c004,245f8dc,47a8350,5456514,60c0b2e,1a4918f,d2f2679,7554bd3,33f76b8,e9877e1]:@emdash-cms/cache-demo-site@0.0.12
Patch Changes
e312528,668c5e1,f62c004,245f8dc,47a8350,5456514,60c0b2e,1a4918f,d2f2679,7554bd3,33f76b8,e9877e1]: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.