From 18ba6aee3877c36fb800f1aa6e228b3f8864eba8 Mon Sep 17 00:00:00 2001 From: Hare Date: Thu, 28 May 2026 23:17:16 +0900 Subject: [PATCH] ticket: add TUI pod list abstraction --- .../item.md | 8 ++- .../20260527-000023-multi-pod-view-ui/item.md | 8 ++- .../artifacts/.gitkeep | 0 .../item.md | 71 +++++++++++++++++++ .../thread.md | 7 ++ 5 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 work-items/open/20260528-141602-tui-pod-list-view-abstraction/artifacts/.gitkeep create mode 100644 work-items/open/20260528-141602-tui-pod-list-view-abstraction/item.md create mode 100644 work-items/open/20260528-141602-tui-pod-list-view-abstraction/thread.md diff --git a/work-items/open/20260527-000017-tui-spawned-pod-panel/item.md b/work-items/open/20260527-000017-tui-spawned-pod-panel/item.md index 0aceae0a..2181ec04 100644 --- a/work-items/open/20260527-000017-tui-spawned-pod-panel/item.md +++ b/work-items/open/20260527-000017-tui-spawned-pod-panel/item.md @@ -7,7 +7,7 @@ kind: task priority: P2 labels: [migrated] created_at: 2026-05-27T00:00:17Z -updated_at: 2026-05-27T00:00:17Z +updated_at: 2026-05-28T14:16:02Z assignee: null legacy_ticket: tickets/tui-spawned-pod-panel.md --- @@ -25,6 +25,12 @@ insomnia の開発では、親 Pod が複数の実装 Pod / reviewer Pod を spa ネイティブ 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 を一覧できる。 diff --git a/work-items/open/20260527-000023-multi-pod-view-ui/item.md b/work-items/open/20260527-000023-multi-pod-view-ui/item.md index c3fd1220..4a52bf0e 100644 --- a/work-items/open/20260527-000023-multi-pod-view-ui/item.md +++ b/work-items/open/20260527-000023-multi-pod-view-ui/item.md @@ -7,7 +7,7 @@ kind: task priority: P2 labels: [migrated] created_at: 2026-05-27T00:00:23Z -updated_at: 2026-05-27T00:00:23Z +updated_at: 2026-05-28T14:16:02Z assignee: null legacy_ticket: null --- @@ -23,6 +23,12 @@ legacy_ticket: null This work item was migrated from an unfinished TODO.md entry that did not have a dedicated legacy ticket file. +This ticket is intentionally downstream of the shared TUI Pod list/view abstraction. The concrete multi-Pod view requirements should be defined after the common list/view model exists, so this ticket can focus on view switching and interaction policy rather than inventing another Pod list representation. + +## Prerequisite + +- `20260528-141602-tui-pod-list-view-abstraction` + ## Acceptance criteria - Define the concrete requirements before implementation. diff --git a/work-items/open/20260528-141602-tui-pod-list-view-abstraction/artifacts/.gitkeep b/work-items/open/20260528-141602-tui-pod-list-view-abstraction/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/work-items/open/20260528-141602-tui-pod-list-view-abstraction/item.md b/work-items/open/20260528-141602-tui-pod-list-view-abstraction/item.md new file mode 100644 index 00000000..c7cf97d1 --- /dev/null +++ b/work-items/open/20260528-141602-tui-pod-list-view-abstraction/item.md @@ -0,0 +1,71 @@ +--- +id: 20260528-141602-tui-pod-list-view-abstraction +slug: tui-pod-list-view-abstraction +title: TUI Pod list/view abstraction +status: open +kind: task +priority: P2 +labels: [tui, pod, architecture] +created_at: 2026-05-28T14:16:02Z +updated_at: 2026-05-28T14:16:02Z +assignee: null +legacy_ticket: null +--- + +## Background + +TUI で扱う Pod 関連 UI は、少なくとも次の二つの後続 ticket から使われる。 + +- `20260527-000017-tui-spawned-pod-panel`: spawned child Pod の一覧と一時 attach。 +- `20260527-000023-multi-pod-view-ui`: 複数 Pod view を行き来する UI。 + +両者は表示対象や操作範囲が異なる一方で、Pod の一覧取得、status 表示、visible / attachable 判定、row 表示、選択状態、view 切り替えの土台を共有する。これを各 ticket が個別に実装すると、TUI 内で Pod list / picker / view 管理が重複し、visibility model や attach 診断がずれやすい。 + +まず TUI 内で用いる複数 Pod の list/view model を抽象化し、後続 UI が同じ情報構造と操作プリミティブを使える状態にする。 + +## Requirement + +- TUI が Pod 一覧 UI を構成するための共通 model / state / helper を用意する。 + - Pod name + - source / visibility kind(例: current parent から見える spawned child、restore picker 由来、将来の multi-view 対象など) + - live reachability / `PodStatus` + - socket path / attach target + - delegated scope summary または表示可能な metadata + - stopped / unreachable / missing state の診断情報 +- list row rendering / selection / refresh の責務境界を整理する。 + - TUI widget は表示と選択に寄せる。 + - Pod discovery / client protocol / registry state の取得詳細を UI 表示ロジックへ直接散らさない。 +- child Pod panel と multi-Pod view UI が同じ抽象を使える設計にする。 +- visibility model は変えない。 + - host-wide Pod browser を作らない。 + - spawned child panel は current parent から見える child Pod のみを対象にする。 + - multi-Pod view UI も、具体要件が決まるまではこの抽象に新しい可視範囲を勝手に足さない。 +- 既存の `ListPods` / `ReadPodOutput` / `SendToPod` / `StopPod` tool semantics は変えない。 +- 既存の TUI resume picker / attach flow を壊さない。 + +## Acceptance criteria + +- TUI crate 内に、複数 Pod list/view UI で再利用できる typed abstraction がある。 +- spawned child Pod list と multi-Pod view UI の後続実装が、その abstraction を使う前提で説明できる。 +- Pod row の status / reachability / attach target / diagnostic 表示に必要な情報が一箇所の model にまとまっている。 +- visibility scope は caller が明示的に渡すか、source kind として表現され、UI helper が host-wide enumeration を暗黙に行わない。 +- 既存 picker / attach 関連テスト、または新規 unit test で list model / selection / status mapping の基本挙動が確認されている。 +- `cargo fmt --check` +- `cargo check -p tui -p client -p pod` +- 必要に応じて `cargo test -p tui -p pod -p protocol` + +## Relationship + +This is a prerequisite for: + +- `20260527-000017-tui-spawned-pod-panel` +- `20260527-000023-multi-pod-view-ui` + +## Out of scope + +- spawned child Pod panel の完成。 +- 複数 Pod view UI の完成。 +- child Pod への interactive input。 +- host-wide Pod browser。 +- Pod discovery / permission / registry visibility model の変更。 +- native GUI。 diff --git a/work-items/open/20260528-141602-tui-pod-list-view-abstraction/thread.md b/work-items/open/20260528-141602-tui-pod-list-view-abstraction/thread.md new file mode 100644 index 00000000..bbee5f72 --- /dev/null +++ b/work-items/open/20260528-141602-tui-pod-list-view-abstraction/thread.md @@ -0,0 +1,7 @@ + + +## Created + +Created by tickets.sh create. + +---