Skip to content

fix(tui): 操作実行後に Enter 待ちを挟み出力が流れるのを防止#64

Merged
takemi-ohama merged 1 commit into
mainfrom
feature/tui-pause-after-execution
Jun 13, 2026
Merged

fix(tui): 操作実行後に Enter 待ちを挟み出力が流れるのを防止#64
takemi-ohama merged 1 commit into
mainfrom
feature/tui-pause-after-execution

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

Pull Request

概要

devbase list の TUI で plugin list 等の表示系操作を実行すると、出力が一瞬表示された直後にトップのプロジェクト一覧が再描画され、内容が読めなかった。操作実行後は「Enter キーで一覧へ戻ります...」で入力を待ってから一覧を再表示するようにする。

関連 Issue

変更点

  • app._top_menu_loop: 操作を実行した場合(rc が返った場合)、一覧の再表示前に _pause_for_review() で Enter を待つ
    • 操作を実行したときのみ 待つ。Esc/← で操作せず戻った場合(MENU_BACK)は待たない(読むべき出力がない)
    • Enter 待ち中の Ctrl-C は全体中止(直近の実行 rc で終了。既存ナビ規約と一致)
    • 非 TTY 等で stdin を読めない場合(EOFError/OSError)は待たずに戻り、ハングしない
  • _pause_for_review は questionary ではなく stdlib の input() を使用。画面の書き換えが起きず、操作の出力がそのまま画面に残る(questionary 統合層の実 TTY バグ事例 PR feat(tui): devbase list トップをプロジェクト一覧化 + 実 TTY バグ 3 件修正 #61 を踏まえた選択)
  • テスト 7 件追加(pause の単体 4 件 + ループ統合 3 件)。既存ループテストは pause をスタブ化する共通ヘルパで対応

動作確認

  • pytest tests/ 全 724 件パス(skip 1 件は zsh 未インストールによる補完テストのみ)
  • ホスト側の実 TTY で devbase list → プラグイン → 一覧表示 → Enter で一覧復帰を手動確認
  • 全操作(project up/down/logs、env/plugin/snapshot/status カテゴリ)共通の単一箇所(トップループ)で待つため、操作ごとの漏れがない

スクリーンショット・ログ(任意)

$ uv run pytest tests/ -q
724 passed, 1 skipped in 28.75s

補足

  • up/down/login などコンテナ操作の後にも Enter 待ちが入る(docker 出力やエラーを読めるようにする意図。表示系操作と区別しない一貫挙動)
  • 待ちプロンプトは input() のため、Enter 以外の文字を打っても Enter で確定すれば一覧へ戻る

🤖 Generated with Claude Code

devbase list の TUI で操作実行後 (plugin list 等の表示系操作を含む) に即座に
トップのプロジェクト一覧を再描画していたため、操作の出力が一瞬で流れて
読めなかった。操作を実行した場合は一覧の再表示前に
「Enter キーで一覧へ戻ります...」で入力を待つようにする。

- 操作を実行したとき (rc が返ったとき) のみ Enter を待つ。
  Esc/← で操作せず戻った場合は待たない (読むべき出力がない)
- Enter 待ち中の Ctrl-C は既存ナビ規約どおり全体中止 (直近 rc で終了)
- 非 TTY 等で stdin を読めない場合 (EOFError/OSError) は待たずに戻り
  ハングしない
- questionary ではなく stdlib input() を使用し、画面の書き換えなしで
  出力をそのまま残す

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@takemi-ohama takemi-ohama merged commit 0fb0082 into main Jun 13, 2026
5 checks passed
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