1.5 KiB
1.5 KiB
Plan — Phase 20.19
タイムライン(2–3週間)
- Week 1
- P0: execute_via_bridge_b(file_path) 実装(Runner/modes/common_util/exec.rs)。
- Gate‑C(Core) file/pipe カナリア追加(Bridge‑B経由)→ 緑化。
- Week 2
- Core: last_error_tag を Array/Map のFail系へ適用拡大(print依存の撤退)。
- Runner: Bridge‑B タグ合成フォールバックに TTL を付与し、削除計画を明記。
- Week 3(余裕)
- SSOT/Docs整備、CURRENT_TASK 更新、雑音撤去(DBG/print)。
実装ポイント
- exec.rs
- fn execute_via_bridge_b(file_path: &str) -> Option
- .json: read → try_lang_core_dispatch_json(&json)
- .hako: selfhost pipeline(emit JSON) → try_lang_core_dispatch_json(&json)
- 失敗時 None を返し、caller で従来経路にフォールバック。
- fn execute_via_bridge_b(file_path: &str) -> Option
- pipe_io.rs
- Gate‑C(Core) file/pipe の分岐で execute_via_bridge_b を最初に試行。Some(last) の場合は rc/出力整形に進む。
テスト
- Bridge‑B(file): .hako最小 → emit(JSON) → Core 実行(rc/出力確認)
- Bridge‑B(pipe): stdin JSON → Core 実行(rc/出力確認)
- Core: 代表Fail(array set OOB / map set invalid / string indexOf bang)で last_error_tag が戻りで観測できる
リスクと対策
- 自己ホスト emit の負荷 → タイムアウト/並列数の上限をENVで管理(HAKO_BRIDGE_B_TIMEOUT_MS, HAKO_SANDBOX_MAX_CHILDREN)。
- 既存緑の回帰 → すべて opt‑in で導入。既定挙動は変えない。