Skip to content

@emdash-cms/admin@0.36.0

Choose a tag to compare

@emdashbot emdashbot released this 01 Sep 13:41
· 5 commits to main since this release
2adef40

Minor Changes

  • #2765 9d92b55 Thanks @ascorbic! - Updates plugin publishing to host package bundles, icons, banners, and screenshots as blobs on the publisher's Personal Data Server by default. Run emdash-plugin publish from the plugin directory; the CLI builds the bundle, checks the stored OAuth grant, uploads the artifacts, and writes CID-bound checksums into the release record.

    Existing scripts can keep externally hosted package bundles with emdash-plugin publish --url <https-url>. The CLI still downloads that URL to validate and hash the served bytes. Listing images are uploaded as publisher blobs on both paths.

    The experimental aggregator release envelope replaces mirrors with typed artifactCaches. The field is optional during rolling upgrades, and updated clients treat an omitted field as an empty cache list. A record-scoped cache descriptor supplies its service endpoint; clients derive /r/{did}/{collection}/{rkey}/{recordCid}/{blobCid} so cache admission is bound to the exact release revision.

    Install and update verify raw cache, PDS, and external fallback bytes against the signed checksum and blob metadata. The authenticated image proxy may serve a transformed record-scoped cache rendition; if that cache is unavailable, it falls back to checksum-verified PDS or external bytes. Listing images remain capped at 1 MiB.

    Sites must upgrade EmDash before installing a release whose package artifact is available only as a PDS blob. Older EmDash versions require an external package URL.

    What should I do?

    Remove --artifact-base-url from publish scripts and stop pre-uploading listing images. The CLI rejects the removed option with migration guidance. Replace any experimental releaseView.mirrors access with releaseView.artifactCaches ?? []. If an existing granular login reports MISSING_BLOB_SCOPE, run emdash-plugin logout and log in again to grant blob:application/gzip and blob:image/*.

  • #2582 8d8d3de Thanks @khoinguyenpham04! - Adds numbered page navigation and page-size controls to the local Media Library. Media list requests can opt into numbered pages with page and receive an exact totalCount; cursor pagination remains the default.

    MediaLibrary accepts controlled numbered pagination through pagination. Existing hasMore and onLoadMore props remain supported when pagination is omitted.

  • #2622 089d747 Thanks @khoinguyenpham04! - Adds Lua and Zig to code block language selectors in the admin and inline visual editors. Lua code is syntax highlighted, while Zig uses the existing plain-text fallback.

  • #2609 d379d10 Thanks @danielmlr! - Adds an optional dark mode counterpart to image fields, so editors can pick a second image that the site shows in dark color schemes.

    Enable the slot per field with the darkVariant widget option ("options": { "darkVariant": true } in a seed file, or the Dark mode variant switch in the admin field editor). Editors then see Add dark mode variant below the selected image. The variant is stored inside the field value as darkVariant, in the same shape as the primary image.

    The Image component from emdash/ui renders both images when a variant is present and shows the matching one with CSS: a dark or light class on <html> pins the scheme, otherwise prefers-color-scheme decides. Both images share the primary image's alt text and loading attributes, and an id you pass lands on the primary image while the variant gets it with a --dark suffix. Without priority, the hidden one stays lazy and is not fetched until the scheme changes; with priority, both images download. Sites with another theme convention can override the .emdash-image--light and .emdash-image--dark selectors; the Dark Mode guide shows the rules. Fields without the option, and values without a variant, render exactly as before.

  • #2624 436f63d Thanks @khoinguyenpham04! - Adds focal points for local images so cover-cropped thumbnails, galleries, and image components keep the selected subject visible.

  • #2586 815553c Thanks @khoinguyenpham04! - Adds flat-folder organization to the local Media Library. Editors can create, rename, and delete folders. Authors can organize their own local media, and editors can organize any local media, through Media Details or by dragging a media card or row onto a visible folder.

    Uploads continue to enter the Main library. Deleting a folder returns its media to the Main library without deleting files or changing their URLs.

  • #2538 9c52b39 Thanks @khoinguyenpham04! - Adds a media usage tracking setting. Tracking is enabled during initial setup. Existing sites enable it from Settings, keep the page open while EmDash scans existing content, and can return later to continue from saved progress.

  • #2470 f527127 Thanks @khoinguyenpham04! - Adds a coverage-aware Used in section to local media details.

  • #2647 e3ad082 Thanks @ascorbic! - Adds signed-label policy and listing-status support to the plugin registry client. Registry requests use the aggregator's required listing policy with an optional accepted-labeler declaration, and withdrawn releases are excluded from install and update results.

    The EmDash admin waits for a fresh listing-policy response before rendering registry metadata, uses the approved author name or publisher DID instead of a mutable handle, and does not request media for an unapproved release. Install, update, and media-proxy checks enforce listing withdrawal independently from the existing plugin-code and capability checks.

    Registry artifact downloads and proxied media connect only to the public IP addresses validated for each URL, preventing DNS changes between validation and connection from reaching private services.

Patch Changes

  • #2590 724241f Thanks @khoinguyenpham04! - Adds a resizable settings panel to the desktop content editor, including keyboard controls and bounded widths.

  • #2468 72664ad Thanks @khoinguyenpham04! - Fixes vertical alignment of editor sidebar drag handles with standard and collapsible section headings.

  • #2614 561f1d1 Thanks @danielmlr! - Fixes the content editor's autosave so that a draft that the server rejected, such as a field value that exceeds its maxLength, is not resent every few seconds. The editor keeps the unsaved changes and tries again only after the content changes.

  • #2683 3e90689 Thanks @hossein-webdev! - Fixes AVIF images being rejected with "File type not allowed" on upload. image/avif is back in the default media allowlist alongside PNG, JPEG, GIF, and WebP, so editors can upload .avif files again from the media library and from image fields that use the default allowlist.

    The admin file picker now offers .avif files and renders their thumbnails, the built-in "Images" preset in a field's allowed-types editor includes AVIF, and .avif works as extension shorthand in a field's allowedMimeTypes.

    SVG stays excluded from the default allowlist.

  • #2606 22c4422 Thanks @khoinguyenpham04! - Fixes code blocks in the admin and inline visual editors with syntax highlighting for supported languages and readable, borderless styling in light and dark appearances.

  • #2610 2ffda17 Thanks @MatsudaTsunenori! - Completes the Japanese admin translation so Japanese-speaking users see localized text for every catalog message.

  • #2686 42fa5d8 Thanks @MatsudaTsunenori! - Fixes translated admin guidance and WordPress import summaries so links, emphasized text, dynamic values, and plural counts can follow each locale's word order. Clarifies the content type empty-state action.

  • #2754 70c487c Thanks @khoinguyenpham04! - Updates the content editor's byline controls with a focused search-and-create flow, clear automatic owner credits, accessible ordering and roles, and actions that distinguish post credits from reusable byline profiles.

  • #2490 2b54096 Thanks @khoinguyenpham04! - Fixes image action controls intermittently failing to appear when selecting an image in the editor.

  • #2632 76dd3eb Thanks @khoinguyenpham04! - Fixes implicit English locale guidance in the content editor by replacing the persistent warning with compact, accessible help.

  • #2599 b383a67 Thanks @khoinguyenpham04! - Fixes code blocks in the admin and inline visual editors so Tab and Shift+Tab indent and outdent code instead of moving focus.

  • #2687 05b0a8b Thanks @MatsudaTsunenori! - Fixes newly created taxonomies not appearing in the admin sidebar until the page is reloaded.

  • #2548 1f2678b Thanks @ahliweb! - Completes the Indonesian admin translations, covering the image gallery block, plugin MCP tool settings, byline filters, content locale settings, and scheduled publishing warnings.

  • #2590 724241f Thanks @khoinguyenpham04! - Updates the content editor's Move to Trash section to match the other settings surfaces and use a softer destructive button treatment.

  • #2778 3367fae Thanks @MatsudaTsunenori! - Adds missing Japanese translations and improves existing phrasing across the admin content, media, comments, menus, redirects, widgets, sections, users, plugins, import, settings, date-range filter, and code-block UIs.

  • #2603 f5e18d8 Thanks @khoinguyenpham04! - Adds one-click copy actions to code-block controls in the admin and inline visual editors, and polishes the layout so controls stay usable on narrow screens and in right-to-left locales.

  • #2561 f9a488a Thanks @khoinguyenpham04! - Refines admin table toolbars with consistent compact search and filters, including a calendar-based date range picker for content lists.

  • #2629 52f7c91 Thanks @emdashbot! - Fixes the Section editor so plugin-provided Portable Text blocks appear in the slash menu alongside core blocks, matching the content and widget editors.

  • #2676 7571581 Thanks @MatsudaTsunenori! - Fixes the vertical alignment of the Required and Translatable switches in the byline field editor when helper text appears below Translatable.

  • #2468 72664ad Thanks @khoinguyenpham04! - Fixes the meta description field shifting after the first character is entered.

  • #2463 f613a14 Thanks @helio-cf! - Fixes media previews for streaming providers such as Cloudflare Stream. Video from these providers now shows its poster thumbnail in the media library grid and list, plays in the detail panel instead of stalling at 0:00, and reports the file size the provider supplies. Also exports Media from emdash/ui, so frontends can render provider-backed video and audio that Image cannot.

  • #2628 1c6b893 Thanks @scottbuscemi! - Fixes line breaks entered in table cells disappearing from saved content.

  • Updated dependencies [9d92b55, 6178888, e3ad082]:

    • @emdash-cms/registry-client@0.4.0
    • @emdash-cms/registry-lexicons@0.4.0
    • @emdash-cms/blocks@0.36.0