対応状況・困ったとき

SHIORIランタイム互換性マトリクス

開発版の資料です。仕様・設計の記述には実装予定や過去の記述を含みます。現在の対応範囲は対応状況・既知の問題と合わせて確認してください。配布中のアプリへの収録状況はリリースノートをご確認ください。 対応状況 · 既知の問題

更新日: 2026-10-30 位置付け: SHIORIランタイム選択・ロード・障害隔離の正本。仕様語彙はUKADOC SHIORI/3.0およびghost descript.txtに従う。

状態定義

  • 実装: 通常のGhostManager起動経路へ接続済み
  • 自動試験: 実バイナリまたは注入可能なfixtureで継続検証済み
  • 実ゴースト: 配布ゴーストで起動・会話・終了を確認済み
  • 隔離: ハング/クラッシュがOurin本体へ波及しない

ランタイム

対象 選択規則 実装 自動試験 実ゴースト 隔離 備考
YAYA yaya.dll, libyaya.*, yaya_core 済 済 Emily4回帰あり 済 helper障害時は終了し、次要求前にロード文脈を復元
里々 satori.dll, satoriya.dll, satori_core 済 実辞書+外部SAORI fixture 9-1で済 済 固定版SATORIをUniversal 2 helperとして同梱
Native Bundle その他の*.bundle/*.plugin 済 Fake loader 未 既定で済 XPC Service内でC ABIをロード。明示的inprocess設定時のみ直接ロード
Native Dylib その他の*.dll/*.dylib/*.so 済 Loader単体+embedded XPC 未 既定で済 macOSではWindows DLLを除外し、XPC Service内で代替moduleをロード
Native XPC 既定。OURIN_SHIORI_ISOLATION_MODE=inprocessでのみ無効 済 実fixtureの別PID往復 未 済 接続単位session、load/request/unload、5秒watchdog
SHIORI 2.x Native backendを互換ラッパーで変換 済 済 未 backend依存 Shiori2CompatBackendを使用

2026-10-30 開発版のSHIORIエンジンプラグイン

追加エンジンは、実行環境を含む .plugin として導入する。Finderで1項目として選択でき、ZIPの展開は不要。YAYA・里々・KAGARIの既存内蔵経路は維持する。以下は開発中の作業ツリーの結果であり、配布中のアプリへの収録状況はリリースノートで確認する。

生成済み22パッケージは、実行用17と開発用サンプル5。 外部公開は行っていない。通常のSHIORIエンジンと、PLUGINイベントAPI用プラグインは別に扱う。

パッケージ 接続・実行環境 今回の成果物・制限
公式YAYA Tc607-2 Native / XPC、C longのmulti-instance ABI Universal2・macOS13以降。導入時はyaya.dllを公式エンジンへ、未導入時は既存の独自互換VMへ接続
AYA5互換(公式YAYA Tc607-2) Native / XPC、aya.dll / aya5.dll Universal2・macOS13以降。AYA5設定名探索とCP932往復。原本AYA5やAYA1〜4の実装ではない
なし栞 1.0.4-alpha系(macOS移植) SHIOLINK、1ゴースト1子process Universal2・macOS13以降。許諾済みmainの実interpreter、ghost.json / nashi_save.json。版応答1.0.0は上流のまま
華和梨(KAWARI) Native / XPC Universal2。実エンジン、保存・再ロード。GUIで導入・割当・自動選択復帰・ダブルクリックを確認
Aosora Native / XPC、instance-ID ABI Universal2。終了時保存のPOSIX境界を修正。ローカル個人利用用
aktk / dktrtk / krht SHIOLINK、mruby / AngelScript / Tcl同梱 arm64。追加言語runtimeのインストール不要
emo-rs / emo-rs-lua54 Native / XPC、LuaJIT / Lua 5.4 arm64。emo.dllはLua 5.4版を自動選択、LuaJIT版は明示割当
D.N.Proxy / Kanahebi / Rosalind SHIOLINK、.NETと依存同梱 arm64、今回のBrotli依存によりmacOS 26.0以降
MiyoJS / SanaJK SHIOLINK、Node.js同梱 arm64、macOS 13.5以降
Sana / phiori SHIOLINK、Ruby / Python同梱 arm64、今回のruntimeはmacOS 26.0以降
cshiori / shioridll-nim / shiorigo / csaori / lib_skeleton コンパイル済み開発用サンプル 任意のWindowsゴースト向けには自動選択しない。NimのみUniversal2、他はarm64

今回の関連6suiteは 46 test PASS、skip 0。実行用17パッケージすべてで、実際の.plugin導入から通常Factory、要求、終了、再ロードを確認した。新3種はGUI導入と実キャラクターのダブルクリックから期待応答・スクリプト再生tokenまで確認。バルーン文字画像そのものは別途取得していない。公式YAYA上流の未改変smokeはarm64/Rosetta各110項目、なし栞上流のbehaviorは81項目が成功。Intel実機・最低OS実機・全第三者ゴースト・任意SAORIの網羅検証は未実施。

ゴースト自身のmacOSモジュールと明示的なSHIOLINK.ourin.iniを優先し、曖昧な自動選択は行わない。Ourin側での割当・解除は元ゴーストの辞書やdescript.txtを書き換えない。許諾未確認のものを再配布可能とは扱わない。

導入・生成・利用条件はSHIORIエンジンプラグイン、最新の検証は追加3種の記録、以前の19パッケージの検証は初期プラグイン記録を参照。

2026-10-25 開発版での追加検証(当時の記録)

以下は初期の同梱方式とその時点の検証記録。現在の追加プラグイン方式・GUI確認は前節を参照する。

公開版 v0.0.1.21 には以下の新しい同梱エンジン・SHIOLINK拡張は含まれない。

対象 実装・配布物 確認済み 残件
華和梨 固定上流をUniversal 2 dylibとして同梱、macOSモジュールの無いKAWARI辞書を解決 実エンジンのin-process/XPC、LOBOの起動・会話・終了・保存・別process再load Ourin GUI上の実ゴースト操作と広い辞書網羅
KAGARI 固定上流+Lua 5.4.4、instance-ID ABI、Universal 2同梱 実エンジンのin-process/XPC、最小Lua lifecycle・load失敗 もすはmacOS版saori_universal.native不足。実ゴーストの保存・再起動は未完
SHIOLINK / MiyoJS 外部processアダプターを通常factoryへ接続、Node.jsは別途必要 実子process fixture、MiyoJS 2.0.3実エンジン+最小辞書の起動・日本語/絵文字・終了 MiyoPreview NARは配布元timeoutで未入手。実配布ゴースト・追加フィルタ・画面操作は未確認
灯 / ese-shiori / 偽栞 / 忍 / 翡翠 / 結奈 / 美坂 MITの独立したmacOS互換実装を固定ソースからUniversal 2同梱、結奈は実験的 7製品のarm64/x86_64・最低OS13.0を確認。実同梱dylibのin-process/XPC/通常factory・保存再load成功。6種は別process再loadを両CPUで確認 全配布ゴースト・全構文・Windows保存形式の移行は未検証。同一栞の複数同時起動に制限
里珠 (Rishu/Proxy) rishu_proxy.dll から隣接する rishu_remote.pl をPerlで起動し、loopback TCPで接続 公式1.1.32未改変サンプル+実adapterでLOAD/GET/NOTIFY/UNLOAD/EXIT・日本語・子process回収 Perlと依存モジュールは別途必要。人格ゴースト・画面操作は未確認
Aosora(任意導入) 利用者が用意したmacOSライブラリを OURIN_AOSORA_ENGINE で指定。通常配布へは非同梱 64bit instance ABI、実ライブラリのin-process/XPC/通常factory・保存再load。実配布2件の詳細は個別記録 会話・ゲーム・GUI全体、Intel実機、ソース由来ライブラリの再配布許諾

KAGARIのLuaSocket/luautf8/luachild/lua-iconvは検証用にmacOSビルドしたが、配布ゴースト固有の追加依存まで同梱したものではない。Windows DLLやLinux ELFはmacOSで直接実行しない。

資料: 追加対応の検証結果、追加栞7種、里珠、SHIOLINK/MiyoJS、macOSモジュール指定。

証拠: 実ゴースト検証、もすの検証(公開向け概要)、エンジン導入。既知の問題と報告手順も参照。

P0受け入れ条件

  • [x] GhostShioriRuntimeにload/request/unloadとロード状態がある
  • [x] 通常起動とexecute load shioriが同じdescript.txtのshiori.macos優先・shiorifallback規則を使用する
  • [x] load成功後だけGhostManagerとEventBridgeへruntimeを公開する
  • [x] unload/reload時にEventBridgeが旧runtimeを保持しない
  • [x] Native SHIORIが共通ワイヤCodec経由で構造化応答を返す
  • [x] YAYA/里々のIPC timeout時にhelperを終了し、直列readタスクを残さない
  • [x] Windows DLLとmacOS moduleが併存した場合にmacOS moduleを選択する
  • [x] timeout後に同一runtimeがhelperを自動再生成し、ロード状態を復元する
  • [x] Native SHIORIを実在するXPC Serviceへ隔離する

P0は2026-07-13に完了。強制終了直前の未保存VM変数やSAORI副作用は復元できず、最後に永続化された状態から再ロードする。

P1受け入れ条件

  • [x] ukatech/satoriya-shioriをtag/commit固定し、BSD-2-Clause本文とローカルpatch記録を保持する
  • [x] SATORIのPOSIX ABIをarm64/x86_64 Universal 2 helperへ静的リンクする
  • [x] JSON Lines境界をUTF-8、SATORI内部ワイヤをCP932として変換する
  • [x] SatoriAdapterを通常のGhostManager起動・終了・timeout復旧へ接続する
  • [x] graceful unloadでSATORIの終了処理とsavedata保存を完了してからhelperを終了する
  • [x] shiori.version/encoding/forceencoding/escape_unknownをNative境界へ反映し、里々のescape_unknownを往復復元する
  • [x] sakura.name2、makoto、scope別balloon.defaultsurfaceをGhostConfigurationへ保持する
  • [x] 実SATORI fixtureでOnBoot、日本語応答、Unicode escape、savedata生成を自動試験する
  • [x] Xcodeビルドでsatori_coreを署名・同梱する

P1は2026-07-13に完了。

P2受け入れ条件

  • [x] 表示直前に環境変数展開 → OnTranslate → ghost MAKOTO → shell MAKOTOの順で変換する
  • [x] MAKOTO/2.0のTRANSLATE SentenceとStringヘッダをNative XPCのraw backendで往復する
  • [x] SSTPのnotranslateを尊重し、sstp.alwaystranslate=1の場合だけSSTP表示を強制変換する
  • [x] OnTranslateへ原因、元イベントID、元Reference群を仕様の区切りで渡す
  • [x] SSTP由来のSender、SecurityLevel、SecurityOriginをOnTranslateへ継承する
  • [x] shiori.cache=1のゴースト切替でruntimeをbounded LRUに保持し、Suspend/Restoreを通知する
  • [x] shiori.cache=0、明示unload/reload、アプリ終了、LRU evictionではOnDestroy後にunloadする
  • [x] SATORI/YAYAがゴーストローカルと共通のSAORI検索パスを使用する
  • [x] 配布物中のWindows SAORI名を.dylib/.soへ安全に代替する
  • [x] 実SATORI+外部SAORI native fixtureの呼び出しを自動試験する
  • [x] 第三者配布の里々ゴーストで起動・会話・終了を確認する

P2は2026-07-14に完了。第三者配布ゴースト9-1の複製上で、OnBoot、ダブルクリック会話、SAORIメニュー、Windows SAORI呼び出し時の安全な継続、OnClose、unload、savedata生成を確認した。

P3受け入れ条件

  • [x] FMOレコードをゴースト固有の32文字IDで公開し、modulestateをUKADOCのモジュール名+状態形式で出力する
  • [x] Owned SSTPのIDを通知済みuniqueidまたはFMO IDと照合し、対象ゴースト一致時だけlocalへ昇格する
  • [x] 外部OriginからのOwned昇格を拒否し、TCP待受を設定したloopbackアドレスへ実際にbindする
  • [x] 欠番を含むSSTP ReferenceNを添字を崩さずSHIORIへ渡す
  • [x] SSTPのNOTIFY種別とSHIORI応答ヘッダを完全応答ブリッジで保持する
  • [x] 翻訳後の実再生スクリプトとSSTP応答Scriptを一致させ、マルチゴースト時の応答対象を固定する
  • [x] Native SHIORI dylibの実fixtureでload/request/unloadを継続試験する
  • [x] 同じNative fixtureを埋め込みXPCの別PIDで実行する(nativeDylibFixtureRunsThroughEmbeddedXpcService)
  • [x] SHIORI 2.x実fixtureで3.0写像と応答ヘッダ保持を継続試験する

P3は2026-07-15に完了。FMO/Owned SSTP境界、疎なReference伝播、翻訳応答整合、Native/SHIORI 2.x実fixture、およびembedded XPCの別PID実fixture往復まで確認した。XPCサービス側の公開protocol不一致は修正済み。

P3最終検証記録

xcodebuild -project Ourin.xcodeproj -scheme Ourin -derivedDataPath [local-path] CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO -only-testing:OurinTests/ShioriLoaderTests test を実行し、** TEST SUCCEEDED **。nativeDylibFixtureRunsThroughEmbeddedXpcService()、Native dylibのload/request/unload、SHIORI 2.x写像テストを確認した。

ワイヤ応答

項目 状態 テスト/実装
GET / NOTIFY、CRLF+空行終端 済 ShioriWireCodec
Charset / Sender / ID / ReferenceN 済 ShioriRuntimeTests
Value / ValueNotify 済 ShioriRuntimeTests
Reference0以降の複数応答 済 ShioriWireCodec, SSTPDispatcher
Marker / Age / BalloonOffset / ErrorLevel 実装済・回帰拡充待ち SSTPDispatcher.mapShioriResponse
CP932強制・未知文字escape 済 Native全境界、SATORI実fixture

ライセンス境界

  • ninix-kagariは挙動・構造の参照および差分試験に限定し、GPL実装をOurinへコピーしない。
  • YAYA/里々等の上流を取り込む場合は固定リビジョンとLICENSE/NOTICEを同時に保持する。

出典と編集について

Ourin / Furin Lab・contributors。文書はCC BY-SA 4.0(第三者の個別表記を除く)。Web版は見出し・リンクの整備とローカルパスの一般化を行っています。更新基準日: 2026-10-30。

元資料: docs/SHIORI_RUNTIME_COMPATIBILITY_MATRIX_ja-jp.md
ソース SHA-256: 7477b14793e4cc6f9b256cc947125a0e158ea8745760d3345a7127eba0a7bc8b

ライセンス · 出典一覧 · 資料一覧に戻る