pasta v0.1.23
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): トークのブロック条件を一括管理化。汎用公開APIM.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 警告ゼロ達成、デッドコード除去、冗長パターン統合、エラーメッセージの言語・スタイル統一、不要な
pubのpub(crate)化。
🐛 バグ修正
- TOML 整数値が Lua の数値型へ正しく変換されない問題を修正。
📦 リリースアセット
| ファイル | 内容 |
|---|---|
pasta.dll.zip |
SHIORI DLL(i686-pc-windows-msvc / LuaJIT 同梱) |
hello-pasta.nar |
サンプルゴースト「hello-pasta」配布パッケージ |
公開クレート(crates.io)
pasta_core ・ pasta_dsl ・ pasta_lua ・ pasta_shiori ・ pasta_check — いずれも 0.1.23
Full Changelog: v0.1.22...v0.1.23