Skip to content

feat: PLAN31_2-snapshot-status snapshot 全操作 + status 閲覧の TUI 追加#60

Open
takemi-ohama wants to merge 2 commits into
release/PLAN31_2from
feature/PLAN31_2-snapshot-status
Open

feat: PLAN31_2-snapshot-status snapshot 全操作 + status 閲覧の TUI 追加#60
takemi-ohama wants to merge 2 commits into
release/PLAN31_2from
feature/PLAN31_2-snapshot-status

Conversation

@takemi-ohama

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

Copy link
Copy Markdown
Contributor

Summary

PLAN31_2 PR5: devbase list TUI に snapshot カテゴリ(create/list/restore/copy/delete/rotate)と status カテゴリ(閲覧)を追加する。

変更内容

  • lib/devbase/tui/actions_snapshot.py 新設
    • 操作メニュー(list を先頭・既定ハイライトにし Enter 連打で破壊的操作に到達しない)→ 引数収集 → dispatch_group(cmd_snapshot, ...) 委譲
    • 属性契約は plan 2.3 を cli.py:_add_snapshot_parser と突き合わせて確認(乖離なし): create=name(None)/full(False)、list=属性なし、restore=name/point(None)、copy=name/new_name、delete=name、rotate=keep(3)
    • restore/copy/delete の対象 nameSnapshotManager.list() の既存一覧から選択(作成日時付き・絞り込み可。取得失敗時は自由入力へ縮退)
    • 破壊的な restore / delete は menu.confirm で実行前確認、拒否時は実行せずメニューへ戻る(plan 3.4)
    • restore の --point は manager が正の整数のみ受理するため 1 以上を要求、rotate の --keep は no-op な 0 以下を弾く
  • lib/devbase/tui/actions_status.py 新設: cmd_status(devbase_root) への薄い委譲(引数なし・閲覧のみ。表示後トップへ rc を返す)
  • lib/devbase/tui/app.py: _route に snapshot/status を配線(残りプレースホルダは PR3 env / PR4 plugin)
  • ナビ規約は actions_project と同一: Esc/← で上位メニューへ(MENU_BACK)、Ctrl-C で全体中止(None)、実行後は rc を返してトップ復帰

Test plan

  • tests/cli/tui/test_actions_snapshot.py 新設: 各操作が契約どおりの属性で cmd_snapshot を呼ぶこと(mock 検証)、restore/delete の confirm 拒否・中止で未実行、Esc/←/Ctrl-C の遷移、引数収集中止でメニュー再表示、一覧選択の縮退(空一覧・取得失敗→text 入力)
  • tests/cli/tui/test_actions_status.py 新設: cmd_status(devbase_root) 委譲と rc 伝搬(0/非0)
  • tests/cli/tui/test_app.py: snapshot/status の _route 配線テスト追加
  • uv run pytest 全テスト pass: 582 passed / 1 skipped(ベースライン 544 collected から +39、退行ゼロ)

@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_snapshot.py 新設: create/list/restore/copy/delete/rotate の
  操作メニューと引数収集 (属性契約は cli.py parser と突き合わせ済み)。
  restore/copy/delete の対象は SnapshotManager.list() の既存一覧から選択
  (取得失敗時は自由入力へ縮退)。破壊的な restore/delete は menu.confirm で
  確認し、拒否時は実行しない (plan 3.4)
- tui/actions_status.py 新設: cmd_status(devbase_root) への薄い委譲
  (引数なし・閲覧のみ。表示後トップへ rc を返す)
- tui/app.py: _route に snapshot/status を配線 (残りは PR3 env / PR4 plugin)
- テスト 39 件追加 (582 passed / 1 skipped、ベースライン 544 から退行ゼロ)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@takemi-ohama takemi-ohama force-pushed the feature/PLAN31_2-snapshot-status branch from 7816b1a to 6226ed7 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