--- id: 20260527-000017-tui-spawned-pod-panel slug: tui-spawned-pod-panel title: TUI: spawned child Pod の一覧と一時 attach status: pending kind: task priority: P2 labels: [migrated] created_at: 2026-05-27T00:00:17Z updated_at: 2026-06-05T04:03:38Z assignee: null legacy_ticket: tickets/tui-spawned-pod-panel.md --- ## Migration reference - legacy_ticket: tickets/tui-spawned-pod-panel.md - migrated_from: TODO.md / tickets directory migration on 2026-05-27 # TUI: spawned child Pod の一覧と一時 attach ## 背景 insomnia の開発では、親 Pod が複数の実装 Pod / reviewer Pod を spawn し、並列に作業させる運用が増えている。現在、spawned child の状態確認や出力確認は主に tool (`ListPods`, `ReadPodOutput`, `SendToPod`, `StopPod`) 経由で行っているが、TUI 上では親 Pod の会話と child Pod の進捗を行き来しにくい。 ネイティブ GUI は将来的には便利だが、現時点で必要なタスクではない。まず TUI のまま、現在の Pod が spawn した child Pod を一覧し、一時的に attach / view できる UI を用意したい。 ## Prerequisite - `20260528-141602-tui-pod-list-view-abstraction` This ticket should build on the shared TUI Pod list/view abstraction instead of introducing a separate child-Pod-specific list model. The child panel may specialize the source/visibility to current-parent spawned children, but row status, reachability diagnostics, attach target representation, selection, and refresh behavior should reuse the prerequisite abstraction. ## 要件 - TUI 上で、現在の Pod が spawn した child Pod を一覧できる。 - source は spawned child registry / Pod state persistence を使う。 - ホスト上の全 Pod を無条件に見せる UI にはしない。 - current parent から見える child Pod だけを対象にする。 - 各 child row には最低限以下を表示する。 - pod name - alive / stopped / unreachable などの状態 - delegated scope の概要 - 最終更新時刻または最終出力時刻(取得できる範囲) - 未読出力の有無または最終 assistant text preview(可能なら) - TUI から child Pod に一時 attach / view できる。 - 親 Pod の TUI を完全に終了せず、child の履歴 / streaming 出力を確認できる。 - 戻る操作で親 Pod view に戻れる。 - 最小実装では read-only view でもよい。child へ入力を送る操作は後続でもよい。 - child view 中でも、どの Pod を見ているか視覚的に分かる。 - status line / title / breadcrumb など。 - child が stopped / unreachable の場合は明確に表示し、attach 失敗を診断する。 - 既存 tool の `ListPods` / `ReadPodOutput` / `SendToPod` / `StopPod` の意味を変えない。 - visibility は parent-child 関係に基づけ、Pod discovery の global list と混ぜない。 ## 操作案 詳細 keybinding は実装時に確定する。 候補: - command mode から `:pods` で child Pod list を開く。 - list 上で Enter すると child view へ一時 attach。 - `Esc` / `b` / command で parent view へ戻る。 - child view から `:send` などで入力する機能は後続 ticket にしてよい。 ## 完了条件 - 親 Pod の TUI で spawned child Pod の一覧を表示できる。 - live child Pod を選択すると、その child の snapshot / streaming output を TUI 上で確認できる。 - parent view に戻れる。 - stopped / unreachable child は一覧上で状態が分かり、attach 失敗が診断される。 - ホスト全 Pod ではなく、parent から見える child Pod だけが対象である。 - `cargo fmt --check` - `cargo check --workspace` - `cargo test -p tui -p pod -p protocol` ## 範囲外 - ネイティブ GUI クライアント。 - 複数 Pod view の同時分割表示。 - child Pod への full interactive input。 - child Pod の自動再起動。 - host-wide Pod browser。 - Pod discovery tool の visibility model 変更。