Skip to content

feat: PLAN31_2-plugin-ops plugin 全操作 + repo の TUI 追加#59

Open
takemi-ohama wants to merge 2 commits into
release/PLAN31_2from
feature/PLAN31_2-plugin-ops
Open

feat: PLAN31_2-plugin-ops plugin 全操作 + repo の TUI 追加#59
takemi-ohama wants to merge 2 commits into
release/PLAN31_2from
feature/PLAN31_2-plugin-ops

Conversation

@takemi-ohama

@takemi-ohama takemi-ohama commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Summary

PLAN31_2 PR4 (plugin-ops)。実装プラン: issues/PLAN31_2_list-tui-unified.md(release PR #55 の分割 PR、PR1 #56 の TUI 土台に依存)。

担当範囲: devbase list TUI に plugin カテゴリを追加する。

  • lib/devbase/tui/actions_plugin.py 新設
    • plugin サブコマンド選択メニュー: list / install / uninstall / update / info / sync / migrate
    • repo はサブ階層メニュー: add / remove / list / refresh(Esc/← で plugin メニューへ戻る)
    • 引数は tui/menu.py のヘルパで収集し、dispatch_group(cmd_plugin, ...) で既存ハンドラへ委譲(plan 2.3 の属性契約を cli.py parser と突き合わせて検証済み・乖離なし)
    • uninstall/update/info と repo remove/refresh の name は registry(plugins.yml)の導入済み plugin / 登録済みリポジトリ一覧から選択(update/refresh は「全対象」= name=None の選択肢あり)
    • 破壊的操作(plugin uninstall / plugin repo remove)は menu.confirm() で実行前確認、拒否時は実行せずメニューへ戻る(plan 3.4)
  • lib/devbase/tui/app.py_route に plugin を配線(プレースホルダ案内を解消)
  • ナビ規約は actions_project と同一: Esc/← = 上位メニューへ戻る(MENU_BACK)、Ctrl-C = 全体中止(None 伝搬)、引数収集中止はサブメニュー再表示

Test plan

  • tests/cli/tui/test_actions_plugin.py 新設: menu.* monkeypatch + cmd_plugin mock で、各サブコマンド(repo 系含む)が plan 2.3 契約どおりの属性を持つ Namespace で呼ばれることを検証
  • 破壊的操作の confirm 拒否(False)/ 中止(None)で cmd_plugin が呼ばれないことを検証(uninstall / repo remove / repo remove --force 中止)
  • Esc/←(MENU_BACK)/ Ctrl-C(None)/ 引数収集中止(メニュー再表示)の遷移を検証
  • registry 結合: plugins.yml を実生成して導入済み plugin / リポジトリが選択肢に並ぶことを検証
  • tests/cli/tui/test_app.py: plugin カテゴリの routing 追加検証(未実装プレースホルダ検証は snapshot へ変更)
  • uv run pytest 全テスト pass: 597 passed / 1 skipped(ベースライン 544 から退行ゼロ)

🤖 Generated with Claude Code

@takemi-ohama takemi-ohama marked this pull request as ready for review June 10, 2026 04:10
takemi-ohama and others added 2 commits June 11, 2026 03:01
- tui/actions_plugin.py 新設: plugin list/install/uninstall/update/info/
  sync/migrate と repo add/remove/list/refresh のサブ階層メニューを実装。
  引数は menu.* で収集し dispatch_group 経由で cmd_plugin へ委譲
  (plan 2.3 の属性契約は cli.py parser と突き合わせて検証済み・乖離なし)
- uninstall/update/info と repo remove/refresh の name は registry
  (plugins.yml) の一覧から選択。破壊的な uninstall / repo remove は
  menu.confirm で実行前確認 (plan 3.4)
- tui/app.py の _route に plugin を配線 (未実装プレースホルダ案内を解消)
- tests/cli/tui/test_actions_plugin.py 新設 + test_app.py の routing 検証更新
  (597 passed / 1 skipped・退行なし)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@takemi-ohama takemi-ohama force-pushed the feature/PLAN31_2-plugin-ops branch from 41ec7f5 to bb9f42f Compare June 11, 2026 03:09
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