Skip to content

feat(tui): devbase list トップをプロジェクト一覧化 + 実 TTY バグ 3 件修正#61

Merged
takemi-ohama merged 1 commit into
mainfrom
feature/list-tui-project-first
Jun 11, 2026
Merged

feat(tui): devbase list トップをプロジェクト一覧化 + 実 TTY バグ 3 件修正#61
takemi-ohama merged 1 commit into
mainfrom
feature/list-tui-project-first

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

何のために

PLAN31_2 で devbase list を階層メニュー TUI 化したが、実端末での利用で以下が判明した:

  1. 最も利用頻度が高いプロジェクト操作が「カテゴリ選択 → プロジェクト選択」と 1 階層深く、利用頻度とメニュー構造が合っていない
  2. 単体テストが menu/questionary を monkeypatch しているため、実 TTY でのみ発現するバグがテストとレビューをすり抜けて main に入っていた

何を

トップ画面をプロジェクト一覧に変更

  • 起動直後にプロジェクト一覧(名前絞り込み付き)を表示。先頭プロジェクトが既定ハイライトで、Enter 連打の従来動線を維持
  • env / plugin / snapshot / status は一覧末尾のカテゴリ項目(環境変数 (env) 等、key でも絞り込み可)から遷移
  • トップは Esc / Ctrl-C で終了、カテゴリ・サブメニュー内は Esc/← で 1 つ前へ、Ctrl-C で全体中止(規約不変)
  • actions_project は選択済み 1 行の処理(handle_row: running → 操作サブメニュー / 他は up)へ責務を縮小

実 TTY バグ修正 3 件

症状 原因 修正
トップメニューに内部キーが表示され、全カテゴリが「後続 PR で実装予定」に落ちる TOP_CATEGORIES(key, label)menu.select(title, value) 契約と逆順で渡していた 一覧トップ化で構造ごと解消(_select_top は正順で構築)
引数収集を伴う操作(env list の confirm 等)が AttributeError で即死 confirm/text/path の application は _MergedKeyBindings.add 無し)のため Esc 後付けがクラッシュ 新しい KeyBindingsmerge_key_bindings で再マージする _add_key_binding を新設
サブメニューから ← / Esc で戻ると一覧が 1 行ずれる 未回答のまま collapse した質問行が残り、次の描画と重なる 戻り時に erase_when_done を立てて描画を消去

Test plan

  • pytest 全体: 730 passed / 1 skipped(退行なし)
  • 回帰テストを実 questionary オブジェクト(monkeypatch なし)で追加: _MergedKeyBindings への Esc 後付け / 戻り時の erase_when_done
  • 擬似 TTY (pty) での E2E 操作確認: 一覧トップ表示・カテゴリ遷移・running 操作メニュー・←/Esc 戻り(残骸行なし)・絞り込み・Ctrl-C 終了
  • 実端末 (macOS) での 1 行ずれ解消確認

利用頻度に合わせ `devbase list` の起動直後をプロジェクト一覧 (絞り込み付き)
とし、env/plugin/snapshot/status は一覧末尾のカテゴリ項目から遷移する構成に
変更。actions_project は選択済み 1 行の処理 (handle_row) に責務を縮小。

あわせて実 TTY でのみ発現する不具合 3 件を修正 (単体テストが menu/questionary
を monkeypatch しているためすり抜けていた):

- app: トップメニューの choices が (key, label) 順で menu.select の
  (title, value) 契約と逆になっており、表示が内部キー・routing が全カテゴリ
  プレースホルダ落ちしていた (一覧トップ化で構造ごと解消)
- menu: confirm/text/path の application は _MergedKeyBindings (.add 無し) の
  ため Esc 後付けが AttributeError でクラッシュ → 新しい KeyBindings を
  merge_key_bindings で再マージする _add_key_binding に変更
- menu: Esc/← で戻る際に未回答のまま collapse した質問行が残り、次メニューと
  重なって 1 行ずれて見える → 戻り時は erase_when_done を立てて描画を消去

回帰テストは実 questionary オブジェクト (monkeypatch なし) で検証。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | gemini | APPROVE

修正すべき点はありません。

@takemi-ohama takemi-ohama left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | codex | APPROVE

指摘なし。

@takemi-ohama takemi-ohama merged commit c945459 into main Jun 11, 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