persistence-semantics と pod-persistent-state を実装可能な粒度に分割。 Storage 層 (Phase 1) を entry-hash-abolish / segment-rename / session-grouping-introduce / live-fork-marker に、Pod 単位永続化 (Phase 2) を pod-state-backend / pod-state-write-points / pod-name-resume / spawned-registry-persist に切り出した。
1.7 KiB
1.7 KiB
Pod state: Pod 名単位の resume / attach 導線
背景
pod-state-write-points で Pod state が active session を保持するようになる。本チケットでは pod-cli / TUI 側から Pod 名で resume / attach できる入口を確定し実装する。
既存の --session <UUID> resume は引き続き使えること。
要件
- pod-cli の引数仕様を確定:
- 例:
pod --pod <name>で manifest cascade から同名 Pod state を引いて resume --sessionとの同時指定時の優先順位 / エラーを明示
- 例:
- 解決順序: Pod 名 → Pod state → active
(SessionId, SegmentId)→ session restore。 - Pod state が存在しない pod 名で起動した場合: 新規 Pod として作成 (initial Pod 起動と同じパス)。
- TUI 側の入口は本チケットでは「最小限の resume / attach 導線」のみ。Pod 一覧 UI や history UX は別チケット。
- 衝突検出: Pod 名が既に live で running なら pod-registry が検知して reject する既存挙動を維持。
完了条件
- pod-cli の
--pod(名称は実装時確定) で resume できる。 - TUI から Pod 名で attach する最小経路が動作する。
--session <UUID>resume が壊れていない。cargo check --workspaceおよびcargo test -p pod-cli -p podが通る。
範囲外
- TUI 上の Pod 一覧 UI / fork tree 可視化。
- spawn された子 Pod 一覧の復元(別チケット
spawned-registry-persist)。 - Session 単位 / Segment 単位の resume 引数(本チケットでは Pod 名から内部解決のみ)。
関連
tickets/pod-state-backend.md(前提)tickets/pod-state-write-points.md(前提)crates/pod-cli/crates/pod-registry/