Skip to content

pasta v0.1.23

Choose a tag to compare

@ekicyou ekicyou released this 03 Jun 12:37
· 94 commits to main since this release

pasta v0.1.23

前リリース v0.1.22 から約2ヶ月分の開発成果をまとめたリリースです。DSL機能の拡張、SHIORI非同期通信基盤の整備、そして全クレートにわたる品質・セキュリティ監査が主な内容です。


✨ 新機能(DSL / ランタイム)

  • 選択肢DSL (choice-definition-dsl): 選択肢行を act:choice() に、!select(seconds) をタイムアウト付き選択に変換。OnChoiceSelectEx 自動ルーティングに対応し、サンプルゴーストに選択肢デモ辞書を追加。
  • プロパティDSL拡張 (property-dsl-extension / property-write-helpers): 変数スコープに Property を追加。SSPプロパティの参照・代入(get_property / set_property)を DSL から扱えるように。
  • 非同期トーク基盤 (shiori-async-talk): トーク合成中に SSP プロパティを非同期取得する CALLBACK モジュールを新設。OnSecondChange での保留コルーチン再開に対応。
  • ハンドラ解決フォールバック (handler-resolution-fallback): act:find_scene() による統合名前解決を導入し、イベント/call 経路を一本化。
  • OnTalk ブロック条件 (ontalk-block-condition): トークのブロック条件を一括管理化。汎用公開API M.is_blocked() を追加。

⚙️ ランタイム基盤

  • LuaJIT 2.1 への移行 (luajit-migration): Lua 5.5 から LuaJIT 2.1(mlua 0.11, luajit52)へ移行。互換性修正と標準ライブラリ更新を実施。
  • SHIORI イベントテスト基盤 (shiori-event-test-framework): ShioriTestEnv ラッパーとモック注入ライブラリを整備し、SHIORIイベントの統合テストを容易化。

🔒 セキュリティ・依存関係監査

  • サプライチェーン監査 (audit-dependency-supply-chain): cargo-audit / cargo-deny を導入。ライセンス互換性監査、未使用依存9件の除去、依存ツリーの整理を実施。
  • パニック安全性の強化: unwrap の排除、RwLock / Mutex のパニックリスク解消、poison recovery 導入。
  • FFI / I-O 防御: パストラバーサル防御、シンボリックリンクスキップ、ZIPエントリ名検証、FFI 入力検証、unsafe ブロックへの SAFETY コメント付与。

♻️ コード品質改善(全クレート監査)

  • 9クレート(pasta_core / pasta_lua / pasta_dsl / pasta_shiori / pasta_check / pasta_lsp / pasta_sample_ghost ほか)を横断監査。
  • clippy 警告ゼロ達成、デッドコード除去、冗長パターン統合、エラーメッセージの言語・スタイル統一、不要な pubpub(crate) 化。

🐛 バグ修正

  • TOML 整数値が Lua の数値型へ正しく変換されない問題を修正。

📦 リリースアセット

ファイル 内容
pasta.dll.zip SHIORI DLL(i686-pc-windows-msvc / LuaJIT 同梱)
hello-pasta.nar サンプルゴースト「hello-pasta」配布パッケージ

公開クレート(crates.io)

pasta_corepasta_dslpasta_luapasta_shioripasta_check — いずれも 0.1.23

Full Changelog: v0.1.22...v0.1.23