Conversation
- Update peerDependencies to allow emdash >=0.37.0 <0.39.0 - Upgrade devDependencies to emdash@^0.38.0 and @emdash-cms/admin@^0.38.0 in core - Upgrade dependencies to emdash@^0.38.0 and @emdash-cms/cloudflare@^0.38.0 in starter - Create new patch for emdash@0.38.0 preserving raw Response handling and request cloning - Add changeset documenting compatibility with EmDash 0.38 features (entry locks, updateIf, SEO overlay) EmDash 0.38.0 introduces entry edit locks with migration 075_entry_edit_locks, atomic ctx.storage.<collection>.updateIf() for conditional updates, automatic SEO <EmDashHead> overlay, collection grouping, and Portable Text tables. All typecheck and tests pass on 0.38.0. Co-authored-by: Timchosen Uzua <timchosen@gmail.com>
9 tasks
- Register both emdash@0.37.0 and emdash@0.38.0 patches in package.json - Revert packages/starter/.emdash/migrations.json to 0.37.0 baseline (was incorrectly updated to 0.38.0 with 0.38-only migrations 075-077) - Update patches/README.md to document dual-version patch support The compatibility matrix job installs with frozen lockfile (0.38) then downgrades to 0.37. Without the 0.37 patch registered, bun fails to apply the required fixes. The migrations.json with 0.38-only migrations broke 0.37 typecheck/build. Co-authored-by: Timchosen Uzua <timchosen@gmail.com>
The compatibility matrix job must downgrade packages/core devDependencies in addition to root and starter. Without this, bun resolves emdash@0.38.0 from core's ^0.38.0 devDep, causing the build to import 0.38-only modules (portable-text-table) from @emdash-cms/admin@0.37.0 which doesn't have them. Build error: Could not load @emdash-cms/admin/dist/portable-text-table (imported by emdash@0.38.0 menus-*.mjs) Fix: downgrade core devDeps alongside root and starter. Co-authored-by: Timchosen Uzua <timchosen@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Widens
@dashcommerce/corepeer dependency range to restore day-one compatibility with EmDash 0.38.x while keeping 0.37.x installs unbroken. EmDash 0.38.0 was released 2026-09-15 ~05:30Z; the existing peer constraint>=0.37.0 <0.38.0caused new installs to fail peer checks.Changes
Peer & dev dependency updates
emdashpeer to>=0.37.0 <0.39.0emdash@^0.38.0and@emdash-cms/admin@^0.38.0emdash@^0.38.0and@emdash-cms/cloudflare@^0.38.0CI compatibility fixes
emdash@0.37.0andemdash@0.38.0patches for dual-version supportpackages/coredevDeps in compatibility matrix (build was failing because core's^0.38.0devDep caused bun to resolve 0.38 which imports 0.38-only modules from downgraded 0.37 admin package)Changeset
Added patch changeset documenting EmDash 0.38 compatibility and plugin-author considerations.
EmDash 0.38.0 release notes scan
Changes that may affect DashCommerce
Entry edit locks (#2919)
409 ENTRY_LOCKEDerror.detailswithuserId,userName,acquiredAt,expiresAtoverrideLock: truein request body or?overrideLock=trueon DELETE075_entry_edit_locks(auto-applies on default runtime migration mode)ctx.storage.<collection>.updateIf()(#2169)updateIf(id, { where, set?, delta? }){ applied: true, data }or{ applied: false }retryable: trueupdateIfwithwhere: { stock: { gte: quantity } }anddelta: { stock: -quantity }would prevent race conditions on concurrent checkouts. Not included in this PR; safe to adopt in follow-up when we confirm benefit vs. risk.SEO
<EmDashHead>overlay (#1963)<EmDashHead>now auto-applies entry SEO panel values (title, description, image, canonical, noindex) on server-rendered pages fetched viagetEmDashEntry()getSeoMeta()— no known conflictsCollection
groupsetting (#3062)Portable Text tables (#2934)
portableTextToProsemirror()now returns real table nodesOther notable fixes
Testing
bun run typecheckpasses on all packages (0.37 and 0.38)packages/corebuilds successfully with 0.37.0 and 0.38.0CI failure investigation
The initial CI run failed on the
EmDash Compatibility (0.37.0)matrix job. Root causes:Missing 0.37 patch registration:
package.jsononly registeredemdash@0.38.0patch. When CI downgraded to 0.37, bun couldn't apply the required fixes. Fixed: registered both patches.0.38-only migrations in starter:
packages/starter/.emdash/migrations.jsonwas accidentally updated to 0.38.0 with migrations 075-077 that don't exist in 0.37. Fixed: reverted to 0.37.0 baseline.Core devDeps not downgraded: CI downgraded root and starter, but
packages/corestill hademdash@^0.38.0devDep. Bun resolved 0.38.0 for builds, which tried to importportable-text-tablefrom downgraded@emdash-cms/admin@0.37.0(doesn't exist). Fixed: CI now downgrades core devDeps too.Build error was:
Follow-up opportunities (not in this PR)
Atomic inventory with
updateIf: Consider replacing read-modify-write stock decrements withctx.storage.products.updateIf(id, { where: { stock: { gte: qty } }, delta: { stock: -qty } })to prevent overselling during concurrent checkouts. Requires testing to ensure it doesn't break existing fulfillment flows.Entry lock handling: Document or implement
overrideLockfor any DashCommerce workflows that update content entries programmatically (admin sync, bulk imports). Low urgency unless those workflows exist.Lock overrides for order notes: If DashCommerce writes order notes/status to EmDash content entries via API, those may now encounter locks. Defer until confirmed needed.
Release notes
This is a patch bump for
@dashcommerce/core(0.2.0 → 0.2.1 after merge + publish). Consumers on EmDash 0.37.x are unaffected; 0.38.x installs now pass peer checks. Manual migration projects should runemdash migratebefore deploying to apply migration075_entry_edit_locks.Ready for review. Timchosen should review before publish. Do not merge open PR #27 (Version Packages bot) until this is approved and merged.