github emdash-cms/emdash emdash@0.20.0

latest releases: @emdash-cms/cloudflare@0.21.0, @emdash-cms/plugin-atproto@0.2.1, @emdash-cms/plugin-embeds@0.1.25...
2 days ago

Minor Changes

  • #1461 b01aa9b Thanks @ascorbic! - Fixes registry installs failing with "Plugin manifest has changed since you consented" for plugins that declare hook-registration capabilities (email transport, email events, page fragments) or read user records. Plugin bundles now declare their access as a structured declaredAccess contract that the registry record, the install-consent dialog, and the sandbox all read consistently, so every capability a plugin declares is shown for consent and enforced — no capability is silently dropped. Re-publish affected plugins to adopt the new bundle format; existing installs are unaffected.

  • #1425 3e344af Thanks @swissky! - Repeater fields support image sub-fields with the media picker (#1424)

    Repeater rows previously rendered every non-scalar sub-field as a plain text
    input, so galleries had to be built from hand-pasted URLs. Image sub-fields
    now render the same media-picker UI as top-level image fields (select,
    preview, change, remove) and store the same MediaValue shape — legacy string
    URLs keep working.

    Includes: image in the schema-builder sub-field type select, the shared
    ImageFieldRenderer extracted out of ContentEditor for reuse, and the
    sub-field type whitelists in core (REPEATER_SUB_FIELD_TYPES + the API Zod
    enum) extended — the Zod enum also gains the previously missing url entry
    that the builder already offered.

Patch Changes

  • #1447 141aa11 Thanks @ascorbic! - Fixes @atcute peer dependency warnings on install (#1435)

    Installing EmDash pulled in mismatched @atcute package versions, so pnpm install / npm install reported unmet peer warnings for @atcute/identity and @atcute/lexicons. The bundled @atcute dependencies are now aligned on v2 and installs are clean. If your project also depends on @atcute packages directly, note they have moved to v2 (@atcute/client 5, @atcute/lexicons 2, @atcute/atproto 4, @atcute/oauth-node-client 2).

  • #1492 7688f0b Thanks @ascorbic! - Fixes a read-your-writes gap with database read replication: the session bookmark cookie is now persisted even when page rendering throws after a successful write, so an immediately-following request can't read pre-write state from a lagging replica.

  • #1459 c7166b0 Thanks @mvanhorn! - Fix scheduled entries staying hidden after their scheduled time (#1402)

    isVisible() read scheduledAt via dataStr, which returned an empty string for the Date the loader produced, so entries whose scheduled time had passed never became visible. The visibility check now reads the scheduled time correctly.

  • #1458 9c994ad Thanks @mvanhorn! - Fix npx emdash types crash caused by the schema endpoint envelope (#1188)

    The /schema route returned an enveloped JSON body while client.request() already unwraps the .data field, so emdash types received undefined and crashed. The route now returns the un-enveloped shape the client expects.

  • #1489 eddaf91 Thanks @ascorbic! - Fixes admin pages hanging indefinitely (and eventually returning 524 timeouts) on Cloudflare Workers. The worker-lifetime caches for site settings and search-index health could be left holding a request that never completed (for example when a visitor's request was cancelled mid-load), which then stalled every later request served by that worker until it was recycled. These caches now keep resolved values rather than in-flight requests, so a cancelled or interrupted request can no longer wedge the rest.

  • #1481 afc3a0f Thanks @MA2153! - Fixes collection where filters to apply every taxonomy key instead of silently dropping all but the first. Filtering by two or more taxonomies (e.g. { category: ["news"], region: ["emea"] }) now returns the intersection — entries tagged in each taxonomy — matching how field and byline filters already compose.

  • #1498 3d423a7 Thanks @ascorbic! - Reduces redundant database queries when rendering content pages: widget areas are now request-cached, taxonomy term usage-counts are fetched once per request instead of once per taxonomy widget, and getTermsForEntries reuses already-hydrated terms instead of re-querying. Fewer round trips per page on every backend.

  • #1492 7688f0b Thanks @ascorbic! - Adds an rpc.count Server-Timing metric reporting physical database round trips, distinct from db.count (logical queries). Backends that batch (the new Durable Objects SQL driver coalesces same-turn reads into one round trip) can now surface how many round trips a request actually made.

  • #1504 8807701 Thanks @swissky! - Adds image entries to per-collection sitemaps. When a content entry has an SEO image, the sitemap now emits it as a Google <image:image> entry, helping Google discover and index page images for Google Images.

  • Updated dependencies [141aa11, ddf8f0d, 68840a9, eaedec0, 8bb20c4, fb31240, 022fd66, 5d8358b, ce96271, b2e65ac, 589d07f, d6269e7, 325c673, af4af50, c48604b, 52ea731, acfeb89, 6c1fe5c, 6246774, b01aa9b, 3e344af, 5f7cd11, 263392f, eddadf8]:

    • @emdash-cms/admin@0.20.0
    • @emdash-cms/registry-client@0.3.2
    • @emdash-cms/plugin-types@0.1.0
    • @emdash-cms/auth@0.20.0
    • @emdash-cms/gutenberg-to-portable-text@0.20.0

Don't miss a new emdash release

NewReleases is sending notifications on new releases.