Skip to content

refactor(tui-config): provisioning ロジックの退避と config/state modal 分離#326

Merged
kkyosuke merged 2 commits into
mainfrom
refactor/tui-config-provisioning
Jun 26, 2026
Merged

refactor(tui-config): provisioning ロジックの退避と config/state modal 分離#326
kkyosuke merged 2 commits into
mainfrom
refactor/tui-config-provisioning

Conversation

@kkyosuke

Copy link
Copy Markdown
Owner

目的

config 画面に責務過多・肥大が見られた(issue #61)。launcher・状態・イベントの各責務を分離する。

変更内容

1. provisioning ロジックの退避

  • config/mod.rs に同居していた start_install_runtime / start_pull_model / install_error_message(バックグラウンドスレッド生成・install_task 進捗記録・SetupError→日本語メッセージ変換)を config/provisioning.rs へ移動。mod.rs は「画面を起動して closure を注入する」launcher 責務に純化。
  • provisioning.rs はスレッド生成・サブプロセス実行の端末 I/O ラッパで計測不能なため、coverage 除外を SSoT (scripts/coverage.sh) に追加(config/mod.rs と同じ扱い)。

2. config/state の modal 分離

  • state/mod.rsInstallModal / ModelModal / ModelRow 型定義と、install/model modal の委譲メソッド群を state/modal.rs へ括り出し。
  • 型は state から re-export するため ui.rsuse ...state::{InstallModal, ModelModal} は変更不要。

3. config/event のテスト外出し

  • config/event.rs(994 行=実コード ~283 + テスト 711)を event/mod.rs(実コード)+ event/tests.rs(テスト)に分割。state/ が既に採用している mod tests; 外出しの前例に倣う。

テスト・確認方法

  • cargo fmt / cargo clippy --all-targets -- -D warnings / cargo test 全て通過。
  • 純粋な配置替えのため挙動・描画は不変。カバレッジ 100% 維持(移動したテスト・関数は同一テストで実行され、provisioning のみ除外)。

Closes #61

🤖 Generated with Claude Code

@kkyosuke kkyosuke force-pushed the refactor/tui-config-provisioning branch from 4f22e5d to 08006d1 Compare June 24, 2026 23:38
config 画面の責務過多・肥大を是正する。

- provisioning(start_install_runtime / start_pull_model /
  install_error_message)を config/mod.rs から config/provisioning.rs へ退避。
  mod.rs は launcher 責務に純化。provisioning.rs はスレッド生成・
  サブプロセス実行の端末 I/O ラッパなので coverage 除外(SSoT scripts/coverage.sh)。
- state/mod.rs の InstallModal / ModelModal / ModelRow 型と install/model
  modal の委譲メソッド群を state/modal.rs へ括り出し。型は state から
  re-export するため ui.rs の参照は不変。
- config/event.rs(994 行)を event/mod.rs(実コード)+ event/tests.rs
  (テスト)に分割。state/ の `mod tests;` 外出しに倣う。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@kkyosuke kkyosuke force-pushed the refactor/tui-config-provisioning branch from 08006d1 to 5cb919e Compare June 25, 2026 00:08
…rovisioning

# Conflicts:
#	scripts/coverage.sh
#	src/presentation/tui/config/event.rs
@github-actions

Copy link
Copy Markdown

📊 Test Coverage

🚀 いまのカバレッジ (Lines): 100.00% — この調子でいこう!

🎉✨ パーフェクト!全ファイル Lines カバレッジ 100% を達成しました 🏆🐰

@kkyosuke kkyosuke merged commit bc7507d into main Jun 26, 2026
3 checks passed
@kkyosuke kkyosuke deleted the refactor/tui-config-provisioning branch June 26, 2026 00:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant