feat(phase106): FileBox provider_lock整理 & Fail-Fast強化(案B統一版)

Task 1: CoreBoxId.category() 修正
- File を CoreRequired 側に移動(L126)
- テスト期待値修正(L371)
- Phase 106 intent コメント更新(L107-115)

Task 2: provider_lock API 確認
- 変更なし(既存の set/get API をそのまま使用)
- get_filebox_provider_strict() は追加しない(シンプルに保つ)

Task 3: FileBox SSOT コメント追加
- L5-7 に責務明示コメント追加

Task 4: PluginHost に FileBox provider チェック追加
- with_core_from_registry_optional() に Phase 106 チェック追加(L158-167)
- test_with_core_from_registry_filebox_required() 追加(L413-445)
- 既存テスト2件を FileBox provider 初期化対応(L301-321, L323-351)
- test_with_core_from_registry_missing_box() をエラーメッセージ拡張(L386-410)

Task 5: ドキュメント更新
- core_boxes_design.md に Phase 106 セクション追加(L248-265)
- 責務分離原則・Ring0.FsApi 延期を明記

完了条件:
 ビルド成功(cargo build --release)
 テスト全PASS(cargo test --lib runtime: 64 passed; 0 failed)
 指示書の実装チェックリスト全て completed
This commit is contained in:
nyash-codex
2025-12-03 17:55:26 +09:00
parent 52c13e658d
commit 66479f921d
7 changed files with 136 additions and 23 deletions

View File

@ -20,7 +20,8 @@ use std::{fs, process};
impl NyashRunner {
// legacy run_file_legacy removed (was commented out)
/// Helper: run PyVM harness over a MIR module, returning the exit code
/// Legacy helper: run PyVM harness over a MIR module, returning the exit code.
/// The PyVM line is retired from regular development/CI; kept for historical debugging only.
fn run_pyvm_harness(
&self,
module: &nyash_rust::mir::MirModule,

View File

@ -2,7 +2,10 @@ use super::super::NyashRunner;
use nyash_rust::{mir::MirCompiler, parser::NyashParser};
use std::{fs, process};
/// Execute using PyVM only (no Rust VM runtime). Emits MIR(JSON) and invokes tools/pyvm_runner.py.
/// Legacy helper: execute using PyVM only (no Rust VM runtime).
/// Emits MIR(JSON) and invokes tools/pyvm_runner.py.
/// NOTE: The PyVM line is retired from regular development/CI; this mode is kept for
/// historical debugging and should not be used as a primary execution path.
pub fn execute_pyvm_only(runner: &NyashRunner, filename: &str) {
if crate::config::env::env_bool("NYASH_PYVM_TRACE") {
eprintln!("[pyvm] entry");