Skip to content

feat(tui): セッション作成後にその新規セッションへ自動で在席する#295

Merged
kkyosuke merged 1 commit into
mainfrom
new
Jun 22, 2026
Merged

feat(tui): セッション作成後にその新規セッションへ自動で在席する#295
kkyosuke merged 1 commit into
mainfrom
new

Conversation

@kkyosuke

Copy link
Copy Markdown
Owner

目的

セッションを作成したら、そのまま新規セッションを操作できるように、作成完了後に自動で**在席(Focus)**へ移りたい。MCP 経由の作成は在席に入らない。

設計ドキュメント(00-tutorial.md / design/05-home.md の複数箇所)は元々「作成 → 在席」と記載しており、実装だけが追いついていなかった。本 PR で実装をドキュメントの意図に合わせる。

変更内容

実装

  • tasks::Completionfocus: Option<String> を追加。成功した TUI 作成のときだけ新規ブランチ名を載せる。
  • run_create 成功時に focus: Some(created.name) を設定(削除・失敗・panic は None)。
  • HomeState::enter_focus_named(name) を追加。一覧更新後に行番号を計算せず、名前で一致させて在席に入る。
  • イベントループの完了 drain で apply_task_completion(一覧 refresh 後)に続けて enter_focus_named を呼ぶ。

MCP の扱い

  • MCP の session_createusecase::session::create を直接呼ぶだけで TUI 状態に触れない。実行中 TUI への反映もバックグラウンド refresh 経由でカーソルを動かさないため、MCP 経由は在席に入らない(コード変更不要・自然に満たされる)。

ドキュメント

  • design/05-home.md: 「作成しても自動で在席に入らない」という旧記述を新挙動(TUI 作成は在席へ/削除はカーソル維持/MCP は非在席)に修正。
  • 03-commands/03-mcp.md: session_create が別プロセスのため在席に入らない旨を追記。

テスト・確認方法

  • enter_focus_named の一致/不一致の単体テスト(state)。
  • 作成完了 → 在席着地を、在席メニューの terminal が新規セッションの worktree でペインを開くことで検証する結合テスト(event loop)。
  • compat ハーネスを本番同様 focus を載せるよう更新。既存の Completion 構築に focus: None を補完。
  • cargo fmt --check / cargo clippy --all-targets -- -D warnings / cargo test(1538 件)すべて green。

🤖 Generated with Claude Code

TUI から session create したら作成完了後にその新規セッションへ自動で
在席(Focus)へ移る。MCP(session_create)経由は TUI を介さないため在席に
入らず、一覧へバックグラウンド反映されるだけでカーソルは動かない。

Completion に focus を載せ、完了 drain で enter_focus_named を呼ぶ。
旧挙動を記した design/05-home.md を修正し、MCP の非在席を doc 化。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

📊 Test Coverage

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

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

@kkyosuke kkyosuke merged commit f078881 into main Jun 22, 2026
4 checks passed
@kkyosuke kkyosuke deleted the new branch June 22, 2026 23:47
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