Changelog

Changelog

更新履歴。Murasaki の各リリースで何が変わったか、アップグレード前に確認すべきことをまとめています。

RSS

v0.55.7

2026-07-24

React Aria UI 基盤

Murasaki の標準 UI 基盤は、全面的に React Aria Components を使用するようになりました。@murasakijs/ui の公開コンポーネント名と、従来からの値ベースの props はそのまま利用できます。一方で、フォーカス管理、キーボード操作、選択、オーバーレイの挙動は、Radix UI や cmdk に依存しなくなりました。

追加

  • React Aria コンポーネント基盤。 @murasakijs/ui 0.3.0 では、Radix UI と cmdk への直接依存をすべて削除しました。インタラクティブなコントロールとオーバーレイには React Aria Components を使用し、React Aria に直接対応するプリミティブがない場合は、内部に Radix を抱え込む代わりに、小さくアクセシブルな Murasaki アダプターを使用します。
  • フレームワークとスキャフォールドの統合。 murasaki に用意されている UpdateButton と、新規に生成されるアプリケーションは、React Aria ベースの UI パッケージをデフォルトで使用します。
  • ライブなコンポーネントドキュメント。 すべてのコンポーネント詳細ページに、インタラクティブなプレイグラウンドを追加しました。アップデーターガイドには、unavailable、available、downloading、ready、error の各状態を確認できる、状態を持つプレイグラウンドも追加しています。
  • AI 向けドキュメント。 生成される MCP ドキュメントコーパスとフレームワークガイダンスは、React Aria を現行の UI 基盤として明示するようになりました。

補足

  • @murasakijs/ui からの既存のインポートは、引き続き動作するはずです。文書化されていない Radix の DOM 構造、Radix 固有の data 属性、cmdk の内部実装を対象にしていたアプリケーションは、それらのスタイルとセレクターを、文書化された Murasaki コンポーネント API に移行する必要があります。
  • asChild は、Murasaki 独自の互換 Slot を通じて引き続き利用できます。@radix-ui/react-slot はインストールされなくなりました。
  • Hover Card は非モーダルとし、フォーカスをトリガー上に維持するようにしました。トリガーからカード内へポインターを移動すると、遅延クローズがキャンセルされるため、React Aria 移行後に発生し得た開閉の反復を防ぎます。
  • ドキュメントアプリケーションは、Next.js 16.2.11、shadcn 4.14.1、および修正済みの sharp / fast-uri の解決バージョンを使用するようになりました。このリリースのセキュリティゲートでは、high または critical の npm アドバイザリは 0 件です。

v0.55.6

2026-07-20

安定性の宣言

機能マニフェストに含まれる 26 個の機能すべてが status: stable になりました。これは単なるラベルの変更ではなく、引用された検証根拠に裏付けられた、現行リリース系列に対する互換性の約束です。OS レベルのギャップが実際に存在する箇所では、プラットフォームラベルは正直な表示のままです。

追加

  • 設定可能な About パネル。 about 設定を指定すると、macOS、Windows、Linux で、カスタムの本文段落、ラベルと値からなる詳細行(Build、Commit など)、外部リンクボタン、サイズ調整を備えたネイティブな About パネルを有効にできます。省略した場合、各プラットフォームはコンパクトな標準 About ダイアログのままです。
  • レスポンスヘッダーとして配信される CSP。 解決済みの Content Security Policy は、単一のリゾルバーから、meta タグに加えて、HTTP の Content-Security-Policy レスポンスヘッダー(開発時のミドルウェアとパッケージ化されたプロダクションサーバーの両方)としても配信されるようになりました。これにより、新しいデフォルト値である frame-ancestors 'none' のような、ヘッダー専用のディレクティブが実際に強制されるようになります。index.html 内にユーザー自身が用意した CSP meta タグがある場合は、そちらが引き続き優先されます。この場合 Murasaki はヘッダーを送信せず、すべてをそのタグに委ね、開発時にはリクエストごとに実ファイルを再チェックします。

修正

  • Linux での cookie 削除。 WebKitGTK では、webview.deleteCookie() の呼び出しは解決されるものの、cookie は実際には削除されていませんでした。WebKit は削除対象の cookie を、値を含めた完全一致で照合しますが、呼び出し側はその値を持っていません。同梱した wry パッチにより、macOS や Windows と同様に、保存済みの cookie を name、domain、path で検索するようになったため、削除結果が次回の読み取りに反映されるようになりました(@murasakijs/native 0.43.2、パッケージ化された AppImage で検証済み)。
  • Orglia のサンプルフォームのスタイリングを改善しました。

補足

  • webview-session-network が Linux で supported になりました。残っている正直なプラットフォームギャップは次のとおりです。システム権限は Linux で unsupported、Windows で partial のままです(macOS の TCC プロンプトに相当する OS の機能がないため)。また、Linux のトレイには引き続き AppIndicator host が必要で、グローバルショートカットには X11/XWayland が必要です。

v0.55.5

2026-07-20

Linux 機能パリティ

OS レベルのギャップによって阻まれていないすべての機能について、Linux は macOS や Windows と同等の立ち位置になりました。26 個中 16 個のケイパビリティが Linux で supported になり(従来の 2 個から増加)、それぞれパッケージ化された AppImage を使い、エンドツーエンドで検証済みです。

追加

  • Linux 機能パリティ。 ファイルルーティング、ナビゲーションミドルウェア、ルートメタデータ、Server Actions、API Routes、Node Main のライフサイクル、Content Security Policy、ケイパビリティ権限、診断とクラッシュレポート、ビルド時プラグイン SDK、ネイティブウィンドウ、宣言的なマルチウィンドウが Linux で supported になりました。CI 上の Xvfb で動作する、パッケージ化された AppImage による機能プローブによって証明されています。
  • Linux でのコード署名。 murasaki installer --sign は、.AppImage.deb、および両者をまとめた SHA256SUMS に対して、分離した ASCII-armored 形式の GPG 署名を生成します(dpkg-sig が使える場合は、Debian ネイティブの署名も追加で埋め込みます)。署名鍵は $MURASAKI_GPG_KEY または sign.linux.gpgKey で選択し、パスフレーズは $MURASAKI_GPG_PASSPHRASE または gpg-agent からのみ取得します。
  • murasaki demo に、Papelle、Oscilla、Orglia のサンプルプレビューをワンコマンドで起動する機能が追加されました。

修正

  • macOS の About パネルにおけるアイコン描画。 標準の About パネルは、生の PNG ファイルをそのまま受け取るのではなく、LaunchServices が解決したアプリケーションアイコンを継承するようになりました。そのため、マスク、コーナー半径、シャドウ、見た目が、Finder や Dock に表示されるアイコンと一致します。
  • Linux でのマルチウィンドウ再生成時のクラッシュ。 実行時にセカンダリウィンドウを破棄して再生成すると、パッケージ化されたプロセスが X11 の BadWindow エラーで強制終了していました。積み重なっていた 2 つの原因を修正しています。ウィンドウごとの WebContext を破棄時に解放するようにし、再生成時には新しいものを構築するようにしたこと、そして同梱した 1 行の wry パッチ (crates/native/vendor/wry)により、non-child embedding path で Drop for X11Data が親ウィンドウの X リソースを破棄してしまうのを止めたことです。
  • Windows では、初回起動時のバインドで OS に除外された(EACCES)決定論的なオリジンポートを、起動失敗にせずリトライするようになりました。

補足

  • OS レベルのギャップが実際に存在する箇所では、Linux は partial のままです。セキュアストレージには Secret Service プロバイダーが必要で、.deb のアップデートはパッケージマネージャーが管理し、rpm や distro リポジトリとの信頼統合はありません。トレイには AppIndicator host が必要で、グローバルショートカットには X11/XWayland が必要です。webview.deleteCookie() は WebKitGTK では確実には反映されません。システム権限は Linux で unsupported のままです — macOS の TCC プロンプトに相当する OS レベルの機能がないためです。
  • どのプラットフォームでも planned のままの機能はもうありません。

v0.55.4

2026-07-20

依存ゼロのスキャフォールダー

  • スキャフォールダーのランタイム依存関係ツリーを削除し、Node に組み込まれたプロンプトとスピナーのプリミティブを使うようにしました。これにより、CLI が起動する前に、パッケージストアのリンク失敗が発生することを防ぎます。
  • 非対話の --yes --skip-install パスが、依存関係をインストールせずに、パッケージ化された tarball から直接実行できることを保証します。

v0.55.3

2026-07-20

再利用可能な依存検証

  • リリースゲートが、公開済みの git コミットが祖先であり、かつパッケージディレクトリが現行リリースまで変更されていない場合に限り、公開済みのワークスペースパッケージを再利用できるようにしました。
  • タグによって公開されるパッケージについては、integrity、provenance、current-commit の厳格なチェックを維持します。

v0.55.2

2026-07-20

信頼できる新規スキャフォールド

  • デフォルトの Biome 設定が、インストール済みのスキーマと、現行の推奨ルールプリセットを使うようにしました。
  • スキャフォールドで生成される Biome CLI のバージョンを固定し、新規に生成されるアプリケーションが、時間が経っても lint エラーのない状態を保つようにしました。
  • CI では、パッケージ化された CLI から生成した新規スキャフォールドを、lint、type-check、プロダクションビルドで検証します。

v0.55.1

2026-07-20

リリース検証の強化

  • npm パッケージペイロードの検査が、pnpm ワークスペースルートから動作するようにしました。
  • 依存関係の順序に沿って行う公開処理の間で、npm レジストリへの伝播を待つようにしました。
  • 最終的な integrity、git-head、SLSA provenance の検証を、Node.js 24 上で正しく実行できるようにしました。

v0.55.0

2026-07-20

プロダクション候補の基盤

追加

  • 型付きの 'use main' 呼び出し、ライフサイクルフック、sidecar の管理、クラッシュレポート、宣言的なマルチウィンドウ制御を備えた、長期稼働する Node Main ランタイム。
  • アプリごとに安定したブラウザオリジンと、ウィンドウごとに分離されたブラウザプロファイル。
  • デフォルト拒否のケイパビリティポリシーの下にある、ネイティブトレイ、グローバルショートカット、自動起動、セキュアストレージ、通知、ダイアログ、クリップボード、ファイル / システムシェル、WebView、システム権限、アップデーターの各 API。
  • macOS arm64/x64、Windows arm64/x64、Linux arm64/x64 のパッケージングパス。ドキュメント化されたホストツールが利用できる場合の、DMG、NSIS、MSI、AppImage、deb の生成を含みます。
  • 鍵のローテーション、段階的ロールアウト、永続的なリプレイ保護、ロールバックジャーナル、正常性の確認を備えた、署名済みのアップデートマニフェスト。
  • MURASAKI_PUBLIC_* レンダラー環境変数、llms.txt エンドポイント、読み取り専用の MCP ドキュメントサーバー、拡張された UI コンポーネントライブラリ。
  • 3 つの独立したサンプルアプリケーション、Papelle、Oscilla、Orglia。

セキュリティ

  • レンダラー/ネイティブ、レンダラー/バックエンドの権限領域は分離されており、デフォルトですべて拒否です。パッケージ化されたウィンドウの認証情報は、オリジン、ラベル、世代値に紐付けられており、ネイティブウィンドウのライフサイクルに合わせて失効します。
  • プロダクションおよび開発時のレスポンスは、Permissions-Policy を通じて camera、microphone、geolocation の Web API をデフォルトで拒否します。
  • 同梱された Node のダウンロードは、アーカイブのチェックサムを信頼する前に、Node の OpenPGP 署名付きチェックサムファイルを検証します。
  • アップデーターマニフェストは、デフォルトで generatedAt を要求し、再起動をまたいだリプレイや、より低いバージョンの認証済みマニフェストを拒否します。
  • アプリが所有する実行可能なリソースは、プラットフォームの内側から外側への署名パスに組み込まれます。

0.54 からの破壊的変更

  • レンダラーから見える環境変数の値には MURASAKI_PUBLIC_* を使用してください。非公開の値は Node または設定ファイルの中にのみ留まります。追加のプレフィックスを使うには、明示的な build.envPrefix のエントリが必要です。
  • generatedAt を持たないアップデートマニフェストは、一時的な allowLegacyManifestsWithoutGeneratedAt 移行フラグを有効にしない限り拒否されます。
  • 実行可能なバンドルリソースには { from, to, executable: true } を使う必要があります。宣言されていない Mach-O、PE、ELF、shebang 形式のリソースは、パッケージングに失敗します。
  • 永続化されたアプリケーションオリジンのポートが使用中の場合に、暗黙のうちにフォールバックすることはなくなりました。代わりに起動が失敗し、既存の Web Storage と IndexedDB の識別情報を保持します。
  • 同梱された Node ヘルパーが有効なサンドボックスアーキテクチャを備えるまで、macOS の App Sandbox 設定は拒否されます。Hardened Runtime による署名には引き続き対応しています。
  • Node.js 22.12.0 が対応する開発ランタイムの最小バージョンです。

移行手順の全体: English · 日本語

v0.54.0

2026-07-18

初の一般公開リリース

このフレームワークの最初の npm リリースです。React 19 + Vite 上でのファイルルーティング、Server Actions、API Routes、型付きの 'use main' 呼び出し。デフォルト拒否のケイパビリティポリシーの下にあるネイティブウィンドウ、メニュー、トレイ、グローバルショートカット、ダイアログ、クリップボード、通知、WebView の各 API。macOS のシステム権限(TCC)リクエストと Windows の権限昇格。Ed25519 署名による自動アップデートを備えた .dmg、NSIS、MSI パッケージング。そして Papelle、Oscilla、Orglia のサンプルアプリケーションです。