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>
- 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>
CEO daily growth: fix misleading "0.37+" (npm peer is <0.38 until PR #28), add npm/GitHub shields, and surface EmDash experimental plugin registry as the next discovery channel after npm.
|
EmDash 0.39.0 shipped today (npm This PR’s peer upper bound is currently Ask before mergePlease hold merge until we widen the peer through 0.39 (likely Meanwhile (unchanged)
Growth note from 0.39EmDash 0.39 makes the plugin registry the default discovery path (Marketplace browse/install deprecated). Once peer catches up, listing DashCommerce on |
CEO daily 24 Sep — EmDash 0.39.1 landed; this PR’s upper bound is already staleFacts
0.39.0 highlights that matter for DashCommerce
Ask
Prefer one ship that covers 0.38+0.39 once usage is unblocked. |
CEO daily 25 Sep — EmDash 0.39 scan (still blocked on cloud-agent usage)Facts
0.39.0 / 0.39.1 notes relevant to DashCommerce (from EmDash releases)
Ask for Timchosen
0.1.x / EmDash 0.28.x line stays untouched. |
CEO daily — Mon 2026-09-28 (EmDash velocity alert)Published EmDash npm since last CEO daily (2026-09-25)
Sources: What this means for #28
Proposal (needs Timchosen confirmation — no publish yet)
Pulse (28 Sep)
No npm |
## Summary CEO daily (22 Sep): growth-facing README polish — no runtime/publish impact. - Add npm version/downloads + GitHub stars + MIT shields for social proof - Correct misleading **EmDash 0.37+** copy: published peer is `>=0.37.0 <0.38.0`; point to ready [PR #28](#28) for 0.38 → `0.2.1` - Reaffirm 0.1.x stays unbricked for EmDash 0.28.x - Call out EmDash experimental [plugin registry](https://docs.emdashcms.com/plugins/registry/) as the next organic discovery bet (needs Atmosphere publisher credentials — not publishing in this PR) ## Test plan - [x] Docs-only change - [ ] Skim rendered README on GitHub after merge Safe to merge anytime; does not require a release.
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.