EmDash 0.37.0
破壊的変更(Breaking)と対応
- MCPの更新系ツールで
_revが必須に(CHANGELOGの表記:Breaking (MCP clients)):MCPのcontent_update、content_publish、content_unpublish、content_discard_draftの4つのツールで、_rev(リビジョントークン)が必須になりました。エージェントが読んでいない変更を上書きすることを防ぎます。これまでは_revを省略しても書き込みが実行されていましたが、省略すると検証エラーになり、エラーメッセージでcontent_getが案内されます。以前の動作に戻す設定はありません。- 対応:先に
content_getでエントリーを取得し、応答に含まれるトークンを_revとしてそのまま渡します。トークンが古い場合はCONFLICTで失敗するので、もう一度取得してから新しいトークンで再試行します。
- 対応:先に
{
"collection": "posts",
"id": "01K4EXAMPLEID0000000000",
"data": { "title": "New title" },
"_rev": "MzoyMDI2LTA5LTA0IDEyOjMwOjAw"
}
CHANGELOGに「Breaking」の表記はありませんが、次の変更も既存の動作を変えます。
- プラグインストレージのページ送り:
orderByを指定したquery()のカーソルによるページ送りで、行の重複や抜けが起きる問題が修正されました。あわせて、並べ替えるフィールドを持たない値(NULL)の位置が、昇順では最後、降順では最初に固定されました。これまでのデータベースごとの並び順に依存していた場合は、その行の順序が変わります。複数のフィールドを異なる向きで並べ替えながらカーソルでページ送りすると、StorageQueryErrorを投げるようになりました。- 対応:すべてのフィールドを同じ向きで並べ替えるか、カーソルを使わずに読み込みます。
- レジストリからのインストールと更新の検証:パッケージとプロベナンス文書のハッシュに、小文字のbase32のmultibase形式の
sha2-256が必要になりました。プラグインCLIはすでにこの形式で出力します。
新機能
- メディアライブラリに「画像を置き換え」が追加されました。EmDashが保存しているJPEG、PNG、WebPの画像を同じ形式のファイルに差し替えると、その画像を使っているすべての箇所が新しい画像になります。メディアID、ファイル名、URL、代替テキスト、キャプションは変わりません。元のファイルは残りません。
- EmDashが保存しているJPEG、PNG、WebPの画像を切り抜けるようになりました。「Create cropped copy」で別のメディアとして保存するか、「Replace original」で元の画像を同じIDとURLのまま置き換えます。元の画像と切り抜きの履歴は残りません。
- MCPに、タクソノミーの定義を管理する
taxonomy_get、taxonomy_create、taxonomy_update、taxonomy_deleteが追加されました。MCPのクライアントから、タームを追加する前にタクソノミーを作れます。 content:beforeSaveフックのイベントに、既存のエントリーを更新するときのidが追加されました。フックからctx.content.get(event.collection, event.id)で保存前のエントリーを読めます。- 実験的な分散型プラグインレジストリで、インストールと更新のときに、公開者のPDS(Personal Data Server)にある署名済みのレコードを直接検証するようになりました。
- パスキーのユーザー検証を
PasskeyConfig.userVerificationで設定できるようになりました。 getTerm()にincludeCountsオプションが追加されました。includeCounts: falseを指定すると、エントリー数の集計を省けます。- コンテンツ編集画面の公開の欄が変わり、公開中の版と下書きの変更を区別して表示し、すぐに公開するか予約公開するかを1つのメニューから選べるようになりました。
主な修正
- サンドボックス型プラグインの
content:beforeSaveフックから、保存を拒否できるようになりました(SAVE_REJECTEDの結果を返します)。 - 公開を取り消すと公開日がリセットされる問題が修正されました。
- SQLiteで、真偽値のフィールドが
0や1ではなくtrueやfalseで返るようになりました。 - 予約公開の定期チェックが、毎回すべてのエントリーを読み込む問題が修正されました。CHANGELOGは、D1では読み込んだ行数がそのまま課金対象になると説明しています。
- 時差を含む日時で予約公開すると、数時間ずれて公開される問題が修正されました。
- 多言語サイトで、管理画面のゴミ箱が選択中のロケールで絞り込まれるようになりました。
- Cloudflare D1で、マイグレーション017が中断したあとに移行が完了しなくなる問題が修正されました。
- 執筆者のプロフィールページで、執筆者のアバター画像を表示できるようになりました。
- 管理画面の「View published」と「ライブビュー」のリンクに、翻訳されたエントリーのロケールの接頭辞が付くようになりました。
原文:emdash の変更履歴
根拠にした公式ページ
- emdash の変更履歴(0.37.0):https://github.com/emdash-cms/emdash/blob/main/packages/core/CHANGELOG.md#0370
- 公開日:npm(emdash 0.37.0、2026-09-09T10:38:48Z=日本時間9月9日):https://www.npmjs.com/package/emdash/v/0.37.0