feat(phase109): RuntimeProfile設計で FileBox を条件付き optional に

Phase 109 完全実装完了:
- RuntimeProfile enum (Default, NoFs) で profile 制御
- CoreBoxId.is_required_in(profile) で条件付き required/optional
- initialize_runtime() で env 読み込み責務を一元化(修正1)
- NoFsFileIo スタブで no-fs プロファイルでの FileBox 無効化(修正2)
- Logger/ConsoleService は no-fs でも有効と明示(修正2)
- Profile 拡張予定(TestMock/Sandbox/ReadOnly/Embedded)を予約(修正3)

実装ファイル:
- src/runtime/runtime_profile.rs (新規)
- src/providers/ring1/file/nofs_fileio.rs (新規)
- src/runtime/core_box_ids.rs (修正)
- src/runtime/plugin_host.rs (修正)
- src/runtime/provider_lock.rs (修正)
- docs 更新

テスト: Phase 109 11/11 PASS 
ビルド: cargo build --release SUCCESS 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-12-03 19:37:32 +09:00
parent 2eda4bc86b
commit 4ef3e7f56c
12 changed files with 634 additions and 53 deletions

View File

@ -351,12 +351,12 @@ provider_lock 登録・参照 OnceLock管理
FileBox ユーザーAPI provider 経由のみ
```
### 拡張ポイント
### 拡張ポイントPhase 109+
**将来の実装**:
- MockFileIo: FsApi の代わりに in-memory mock を使う
- NetworkFileIo: FsApi の代わりに remote FS を使う
- minimal/no-fs: provider 登録をスキップFileBox optional化
**将来の実装候補**:
- MockFileIo: FsApi の代わりに in-memory mock を使う(テスト専用)
- NetworkFileIo: FsApi の代わりに remote FS を使う(将来の分散 FS / リモートログ用途)
- minimal/no-fs: RuntimeProfile に応じて provider 登録をスキップし、FileBox を read-only / disabled として扱う
---