---
id: 20260527-000015-tui-navigation-mode-design
slug: tui-navigation-mode-design
title: TUI: navigation mode / block focus の設計
status: open
kind: task
priority: P2
labels: [migrated]
created_at: 2026-05-27T00:00:15Z
updated_at: 2026-05-27T00:00:15Z
assignee: null
legacy_ticket: tickets/tui-navigation-mode-design.md
---

## Migration reference

- legacy_ticket: tickets/tui-navigation-mode-design.md
- migrated_from: TODO.md / tickets directory migration on 2026-05-27

# TUI: navigation mode / block focus の設計

## 背景

TUI の操作は現在 composer を中心にしており、履歴 block / task 表示 / queued input / system 操作の間を移動する統一的な navigation model はまだない。今後 command mode、manual compact、rollback、Pod picker、queue 編集などが増えると、Ctrl/Alt shortcut だけでは操作体系が散らばる。

一方で、通常入力は最優先で守る必要がある。特に streaming 中の入力取りこぼしや rollback restore、Run 中 input queue を入れたことで、composer の文字入力を暗黙操作で壊さないことが重要になっている。

本チケットは navigation mode のアイデアを保持する設計 ticket であり、すぐ実装する前提ではない。

## アイデア

- 通常は composer mode。
  - 文字入力、Enter submit/queue、`@` / `#` / `/` 補完を優先する。
- `Esc` など明示操作で navigation mode に入る。
  - 履歴 block / task pane / queued input / picker 的 UI に focus を移す。
  - focus があることを視覚的に分かるようにする。
- navigation mode では `j/k` または `↑/↓` で block focus / scroll を行う。
  - `i` / `Enter` / `Esc` で composer に戻る案。
- composer のカーソルが最上行にある時の `↑` で履歴へ抜ける自然操作も候補。
  - ただし multi-line input / IME / completion / typed segment と衝突しやすいため、初期実装では慎重に扱う。
  - 暗黙 focus 移動より、明示 navigation mode を優先する案が安全。
- command mode (`:`) とは分ける。
  - command mode は system command 入力。
  - navigation mode は画面上の対象選択 / scroll / block action。

## 検討事項

- mode 名と status/actionbar 表示。
- composer mode から navigation mode へ入る key。
- navigation mode から composer mode へ戻る key。
- `↑/↓` を composer cursor movement と block focus movement のどちらに使うか。
- block focus の単位。
  - Turn header
  - User message
  - Assistant block
  - Tool call/result
  - System message
  - Task row
  - Queued input row
- focused block に対する action。
  - copy
  - expand/collapse
  - retry/fork/rollback など将来操作
- scrollback と block focus の関係。
- search (`/` ではなく別 key が必要。`/` は WorkflowRef と衝突する可能性)。
- mouse support を入れるか。

## 完了条件（未確定）

- navigation mode の keymap と UI 表示方針が決まる。
- composer 入力を壊さない focus 移動ルールが決まる。
- block focus の最小単位が決まる。
- command mode / queue / rollback / Pod picker と衝突しない。
- 実装 ticket に分割できる。

## 範囲外

- 今すぐの実装。
- command mode の実装（`tickets/tui-command-mode.md`）。
- compact command の実装。
- Vim 完全互換。
