yoi/work-items/open/20260527-000004-manual-turn-rollback/item.md

3.2 KiB

id: 20260527-000004-manual-turn-rollback slug: manual-turn-rollback title: Pod/TUI: 手動 rollback 導線 status: open kind: task priority: P2 labels: [migrated] created_at: 2026-05-27T00:00:04Z updated_at: 2026-05-27T00:00:04Z assignee: null legacy_ticket: tickets/manual-turn-rollback.md

Migration reference

  • legacy_ticket: tickets/manual-turn-rollback.md
  • migrated_from: TODO.md / tickets directory migration on 2026-05-27

Pod/TUI: 手動 rollback 導線

背景

pod-empty-turn-rollback / tui-empty-turn-restore により、AI 側出力が 0 の interrupted turn については Pod 側で自動 rollback し、TUI 側で入力を復元できるようになった。

一方で、rollback substrate は直前 Run の状態復元に使える形で入り始めているが、ユーザーが明示的に rollback を要求する導線はまだない。誤送信、モデル選択ミス、途中で方針を変えた場合などに、ユーザーが手動で直前状態へ戻す手段が必要になる可能性がある。

詳細な UX / rollback 対象範囲 / safety policy は未決定のため、本チケットでは要求を保持し、実装方針は着手時に確定する。

要件メモ

  • ユーザーが明示的に rollback を要求できる導線を用意する。
    • TUI system command / keybinding / tool / protocol Method のどこに置くかは未決定。
    • 最初は TUI から直前 turn を rollback する導線が候補。
  • rollback 対象範囲を決める。
    • 直前 submit のみか。
    • assistant output がある turn を許可するか。
    • tool call / tool result が含まれる turn を許可するか。
    • 複数 turn rollback は pod-session-fork との関係を確認する。
  • safety policy を決める。
    • user-visible assistant output を消す場合は確認を要求するか。
    • tool side effect が既に発生した turn を rollback できるのか、履歴から消すのではなく fork に誘導するのか。
    • rollback が history/context 永続化原則を壊さないようにする。
  • TUI 側の表示を決める。
    • rollback 成功 / 失敗の通知。
    • 消された blocks の扱い。
    • rollback された input を composer に戻すか、history/backup に置くか。
  • protocol signal を整理する。
    • 既存 RunResult::RolledBack を再利用できるか。
    • 手動 rollback は RunEnd ではなく専用 Event / Method が必要か。

完了条件(詳細未確定)

  • 手動操作で rollback を要求できる。
  • rollback 成功時、Pod の session log / SegmentLogSink mirror / TUI 表示が整合する。
  • rollback 失敗時、理由がユーザーに見える。
  • tool side effect や assistant output を含む turn の扱いが仕様として明示されている。
  • tests がある。
  • cargo fmt --check
  • cargo check --workspace
  • 関連 crate の tests。

範囲外

  • 複数ターン rollback / 過去地点からの本格的なやり直し(pod-session-fork と調整)
  • rollback 履歴スタック
  • tool side effect の undo
  • fork tree 可視化

関連

  • tickets/pod-session-fork.md
  • 完了済み: pod-empty-turn-rollback
  • 完了済み: tui-empty-turn-restore