ticket: ready remove old pod crates
This commit is contained in:
parent
ecc876b6c1
commit
262fc7f257
0
.yoi/tickets/00001KW7835H0/artifacts/.gitkeep
Normal file
0
.yoi/tickets/00001KW7835H0/artifacts/.gitkeep
Normal file
29
.yoi/tickets/00001KW7835H0/artifacts/relations.json
Normal file
29
.yoi/tickets/00001KW7835H0/artifacts/relations.json
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"version": 1,
|
||||
"relations": [
|
||||
{
|
||||
"ticket_id": "00001KW7835H0",
|
||||
"kind": "depends_on",
|
||||
"target": "00001KW7726H9",
|
||||
"note": "Pod registry/store removal should follow the canonical Runtime Worker creation authority decision",
|
||||
"author": "yoi ticket",
|
||||
"at": "2026-06-28T13:54:49Z"
|
||||
},
|
||||
{
|
||||
"ticket_id": "00001KW7835H0",
|
||||
"kind": "related",
|
||||
"target": "00001KVZG9BMS",
|
||||
"note": "Pod wording audit and crate removal share active Pod concept cleanup",
|
||||
"author": "yoi ticket",
|
||||
"at": "2026-06-28T13:54:49Z"
|
||||
},
|
||||
{
|
||||
"ticket_id": "00001KW7835H0",
|
||||
"kind": "related",
|
||||
"target": "00001KW76E8EG",
|
||||
"note": "Runtime fs-store persistence replaces old Pod metadata authority",
|
||||
"author": "yoi ticket",
|
||||
"at": "2026-06-28T13:54:49Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
142
.yoi/tickets/00001KW7835H0/item.md
Normal file
142
.yoi/tickets/00001KW7835H0/item.md
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
---
|
||||
title: '旧Pod関連クレートを削除しWorker/Runtime storeへ整理する'
|
||||
state: 'ready'
|
||||
created_at: '2026-06-28T13:53:21Z'
|
||||
updated_at: '2026-06-28T14:24:09Z'
|
||||
assignee: null
|
||||
---
|
||||
|
||||
## 背景
|
||||
|
||||
Runtime / Worker への移行後も、workspace には旧 Pod 実行系由来の `pod-registry` / `pod-store` crate と、それらに依存する TUI / worker / yoi CLI 経路が残っている。`pod-registry` は旧 Pod process / socket / delegated scope cleanup の registry であり、canonical Runtime Worker creation / fs-store / execution backend mapping の authority にすべきではない。
|
||||
|
||||
一方で `pod-store` には、名前は Pod だが現在の `worker` crate がまだ内部永続化として使っている `WorkerMetadataStore` / `FsWorkerStore` / `CombinedStore` などが含まれている。これをそのまま Runtime authority として持ち込むのは誤りだが、必要な Worker metadata/session persistence は Worker/Runtime 側の正しい crate に移してから削除する必要がある。
|
||||
|
||||
この Ticket では、旧 Pod 関連 crate と依存経路を棚卸しし、何を削除し、何を Worker/Runtime の正規 store として残すかを明確にしたうえで、`pod-registry` / `pod-store` を workspace から削除する。
|
||||
|
||||
## 目的
|
||||
|
||||
- 旧 Pod registry / metadata store を Runtime Worker authority から完全に外す。
|
||||
- `crates/pod` は既に workspace から消えているため、再導入しない。残存調査の対象は `pod-registry` / `pod-store` と、それらに依存して残っている旧 Spawn/Stop/metadata/discovery 経路とする。
|
||||
- `crates/pod-registry` を削除する。
|
||||
- `crates/pod-store` を削除する。ただし必要な Worker metadata/session store 機能は正しい名前・責務の crate へ移す。
|
||||
- Runtime Worker creation / persistence は `worker-runtime` fs-store と execution backend mapping を正とする。
|
||||
- 旧 Pod socket / pod name / pod registry path / spawned pod relation を Worker identity にしない。
|
||||
|
||||
## 残すもの / 消すもの
|
||||
|
||||
### 残す
|
||||
|
||||
- `crates/protocol`
|
||||
- `protocol::Event` / `protocol::Method` など、Worker/TUI/Runtime の通信 protocol としてまだ現役のため残す。
|
||||
- ただし Pod 専用 naming / semantics が残る場合は別途 rename 対象として扱う。
|
||||
- `crates/llm-engine`
|
||||
- LLM provider 呼び出し / streaming / completion 実行 engine として残す。
|
||||
- Pod registry / Pod store authority を持たせない。
|
||||
- `crates/worker`
|
||||
- `llm-engine`、tools、memory、session、protocol event handling を束ねる agent/Worker orchestration layer として残す。
|
||||
- ただし `pod-registry` / `pod-store` 依存は除去または Worker/Runtime store 依存へ置換する。
|
||||
- `crates/worker-runtime`
|
||||
- Runtime catalog / fs-store / Worker execution backend mapping の正規 authority として残す。
|
||||
- `crates/session-store`
|
||||
- Worker history/session persistence として必要な範囲を残す。
|
||||
- Worker metadata/session persistence のうち、実 Worker 実行に必要な generic 機能
|
||||
- `WorkerMetadataStore` 相当が必要なら、`pod-store` ではなく `worker` / `worker-runtime` / `session-store` の適切な場所へ移す。
|
||||
|
||||
### 既に消えている
|
||||
|
||||
- `crates/pod`
|
||||
- workspace 上には既に存在しない。
|
||||
- この Ticket では再導入を禁止し、残っている `pod-registry` / `pod-store` と旧 Spawn/Stop/discovery/metadata 経路の削除に集中する。
|
||||
|
||||
### 消す
|
||||
|
||||
- `crates/pod-registry`
|
||||
- 旧 Pod process registry / lock file / delegated scope allocation / cleanup authority。
|
||||
- Runtime Worker creation authority として使わない。
|
||||
- `crates/pod-store`
|
||||
- crate としては削除する。
|
||||
- `FsWorkerStore` / `WorkerMetadata` など必要な型は、Pod naming を捨てて正しい Worker store 境界へ移すか、不要なら削除する。
|
||||
- `manifest::paths::pod_registry_path` など pod registry path surface。
|
||||
- `worker::runtime::pod_registry` re-export。
|
||||
- SpawnPod / StopPod / delegated Pod cleanup を前提にした tool / registry path / tests。
|
||||
- TUI / yoi CLI の旧 Pod metadata inventory / cleanup 表示。
|
||||
- 必要な UX は Runtime Worker API / RuntimeRegistry / worker-runtime fs-store へ移行する。
|
||||
- Browser / Backend / Runtime API に旧 Pod metadata path / socket path / pod name を露出する経路。
|
||||
|
||||
## 要件
|
||||
|
||||
### Dependency audit
|
||||
|
||||
- workspace 内の `pod-registry` / `pod-store` dependency を全列挙する。
|
||||
- 各依存を以下に分類する。
|
||||
- delete: 旧 Pod lifecycle 専用で削除する。
|
||||
- move/rename: generic Worker metadata/session store として必要なので移す。
|
||||
- replace: RuntimeRegistry / worker-runtime fs-store / session-store に置き換える。
|
||||
- historical/test-only: historical report や obsolete test fixture として扱う。
|
||||
- audit 結果を Ticket thread または artifact に残す。
|
||||
|
||||
### Verify absent `pod` crate
|
||||
|
||||
- `crates/pod` は既に存在しないため、削除作業ではなく不在確認と再導入防止を行う。
|
||||
- `Cargo.toml` workspace members / dependencies に `crates/pod` / `pod = ...` がないことを確認する。
|
||||
- 旧 Pod feature adapter / Ticket tool adapter / HostAuthority adapter が必要機能として残っている場合は、既に他 crate へ移管済みか、別途正しい crate で実装されているかを確認する。
|
||||
|
||||
### Remove `pod-registry`
|
||||
|
||||
- `crates/pod-registry` を workspace members / dependencies から削除する。
|
||||
- lockfile / package.nix / Nix source filtering を更新する。
|
||||
- `pod_registry::default_registry_path` / lock / delegated scope APIs を呼ぶ経路を削除または Runtime/Worker authority へ置換する。
|
||||
- StopPod / SpawnPod legacy cleanup は current develop の正規 path から削除し、before-worker hotfix が必要なら別 branch / 別 Ticket で扱う。
|
||||
|
||||
### Remove / replace `pod-store`
|
||||
|
||||
- `crates/pod-store` を workspace members / dependencies から削除する。
|
||||
- `WorkerMetadata` / `WorkerMetadataStore` / `FsWorkerStore` / `CombinedStore` がまだ必要な場合は、Pod ではない名前と責務で移す。
|
||||
- 移行先は実装時に選ぶが、Runtime Worker authority を歪めないこと。
|
||||
- Runtime catalog / Worker identity は `worker-runtime` fs-store。
|
||||
- execution session/history は `session-store` / `worker` internal store。
|
||||
- Runtime Worker id と execution session mapping は Runtime fs-store 側。
|
||||
- 旧 `~/.yoi/pods` metadata を正規 store として読まない。
|
||||
|
||||
### UI / CLI cleanup
|
||||
|
||||
- TUI / yoi CLI / worker cleanup CLI から旧 Pod inventory / metadata cleanup 依存を削除する。
|
||||
- 必要な list / attach / cleanup UX は Runtime Worker API / RuntimeRegistry / worker-runtime fs-store を正とする。
|
||||
- Help text / diagnostics / tests に `pod` が active concept として残らないようにする。
|
||||
- Historical docs / reports は対象外にしてよいが、active prompt / UI / CLI / protocol naming は分類する。
|
||||
|
||||
### Runtime authority invariant
|
||||
|
||||
- Runtime Worker creation は canonical `CreateWorker` / ConfigBundle / ExecutionBackend / fs-store 経路を通る。
|
||||
- `pod-registry` / `pod-store` が Runtime Worker identity、scope authority、socket authority、Browser-facing projection の source にならない。
|
||||
- Worker として公開されるものは transcript / observation / execution / persistence contract を満たす。
|
||||
|
||||
## Non-goals
|
||||
|
||||
- before-worker tag 系列の StopPod hotfix。
|
||||
- Historical report / old migration note の全面 rewrite。
|
||||
- Public product rename。
|
||||
- Full multi-user auth / permission / redaction policy。
|
||||
- `protocol` crate の全面 rename。
|
||||
- `worker` crate 自体の削除。
|
||||
|
||||
## 受け入れ条件
|
||||
|
||||
- `crates/pod` が workspace に存在せず、再導入されていないことが確認されている。
|
||||
- `crates/pod-registry` が workspace から削除されている。
|
||||
- `crates/pod-store` が workspace から削除されている。
|
||||
- `Cargo.toml` workspace members / dependencies / `Cargo.lock` / `package.nix` が更新されている。
|
||||
- `pod` / `pod-registry` / `pod-store` dependency が active crates に残っていない。
|
||||
- `manifest::paths::pod_registry_path` など active pod registry path API が削除されている。
|
||||
- Runtime Worker identity / creation / persistence が `worker-runtime` fs-store と execution backend mapping を正にしている。
|
||||
- `worker` crate 実行に必要な metadata/session persistence が Pod naming / Pod authority に依存しない形へ移行されている。
|
||||
- TUI / yoi CLI / tests が旧 Pod metadata inventory に依存していない。
|
||||
- Active UI / CLI / prompt / test output に旧 Pod concept が正規 concept として残っていない。残る場合は legacy/internal/historical として分類されている。
|
||||
- `cargo test -p worker-runtime --features ws-server` が通る。
|
||||
- `cargo test -p yoi-workspace-server` が通る。
|
||||
- `cargo test -p worker` が通る。
|
||||
- `cargo check -p yoi` が通る。
|
||||
- `cd web/workspace && deno task check` が通る。
|
||||
- `git diff --check` が通る。
|
||||
- `nix build .#yoi --no-link` が通る。
|
||||
81
.yoi/tickets/00001KW7835H0/thread.md
Normal file
81
.yoi/tickets/00001KW7835H0/thread.md
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<!-- event: create author: "yoi ticket" at: 2026-06-28T13:53:21Z -->
|
||||
|
||||
## 作成
|
||||
|
||||
LocalTicketBackend によって作成されました。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: hare at: 2026-06-28T14:20:04Z -->
|
||||
|
||||
## Decision
|
||||
|
||||
調査結果:
|
||||
|
||||
- `crates/pod` は現 workspace には存在しない。`Cargo.toml` workspace members / workspace dependencies にも `crates/pod` / `pod = ...` はない。したがって「pod crate を消す」作業は既に過去の移行で遂行済みで、この Ticket では不在確認と再導入防止を扱う。
|
||||
- 残っている旧 Pod 関連 crate は `crates/pod-registry` と `crates/pod-store`。
|
||||
- これらが残っている理由は、旧 Pod UI crate ではなく、現 `worker` / `tui` / `yoi` の内部がまだ旧 store / registry を使っているため。
|
||||
|
||||
現時点の直接依存:
|
||||
|
||||
- `crates/worker/Cargo.toml`
|
||||
- `pod-store = { workspace = true }`
|
||||
- `pod-registry = { workspace = true }`
|
||||
- `crates/tui/Cargo.toml`
|
||||
- `pod-store = { workspace = true }`
|
||||
- `pod-registry = { workspace = true }`
|
||||
- `crates/yoi/Cargo.toml`
|
||||
- `pod-store = { workspace = true }`
|
||||
|
||||
主な残存理由:
|
||||
|
||||
1. `worker` crate の Spawn/Stop/peer discovery/delegated scope 経路が `pod-registry` を使っている。
|
||||
- `worker/src/spawn/tool.rs`: `delegate_scope`, `release_worker`, `default_registry_path`, `LockFileGuard`。
|
||||
- `worker/src/spawn/registry.rs`: delegated scope reclaim / release。
|
||||
- `worker/src/worker.rs`: top-level install / adopt allocation / segment update / reclaim。
|
||||
- `worker/src/discovery.rs`: segment lookup / peer discovery。
|
||||
これは旧 child Pod/Worker process orchestration の実行時 authority が残っているため。
|
||||
|
||||
2. `worker` crate の metadata/session persistence が `pod-store` を generic Worker store として使い続けている。
|
||||
- `worker/src/entrypoint.rs`: `FsWorkerStore`, `CombinedStore`。
|
||||
- `worker/src/runtime_adapter.rs`: `FsWorkerStore`, `CombinedStore`, `pod_store_dir`。
|
||||
- `worker/src/controller.rs`, `worker/src/worker.rs`, `worker/src/ticket_event_notify.rs`, tests。
|
||||
これは名前は Pod だが、`WorkerMetadataStore` / `WorkerMetadata` / `FsWorkerStore` が現 Worker 実行にも必要な metadata/session store として残っているため。削除前に Worker/Runtime store 境界へ move/rename が必要。
|
||||
|
||||
3. `tui` crate が旧 local Worker inventory / picker / dashboard で `pod-store` / `pod-registry` を読んでいる。
|
||||
- `tui/src/picker.rs`
|
||||
- `tui/src/worker_list.rs`
|
||||
- `tui/src/dashboard/mod.rs`
|
||||
current Runtime API / Backend Worker list へ置換するか、旧 TUI inventory を削除する必要がある。
|
||||
|
||||
4. `yoi` CLI の session / worker cleanup が `pod-store` を読んでいる。
|
||||
- `yoi/src/session_cli.rs`
|
||||
- `yoi/src/worker_cleanup_cli.rs`
|
||||
旧 metadata cleanup / referenced session discovery 用。Runtime/worker-runtime store へ置換するか、旧 cleanup CLI を削除する必要がある。
|
||||
|
||||
結論:
|
||||
|
||||
- `crates/pod` が残っているわけではない。既に消えている。
|
||||
- `pod-registry` は旧 process/delegation/segment/socket 系 authority として `worker` と TUI に残っている。
|
||||
- `pod-store` は旧名のまま generic Worker metadata/session store として `worker`、TUI、CLI に残っている。
|
||||
- 削除作業は「pod crate の削除」ではなく、`pod-registry` の旧 orchestration authority 削除と、`pod-store` の必要部分を Worker/Runtime store に移管して crate を消す作業になる。
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: intake_summary author: hare at: 2026-06-28T14:24:09Z -->
|
||||
|
||||
## Intake summary
|
||||
|
||||
Marked ready by `yoi ticket state`.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: "yoi ticket" at: 2026-06-28T14:24:09Z from: planning to: ready reason: cli_state field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Marked ready by `yoi ticket state`.
|
||||
|
||||
|
||||
---
|
||||
Loading…
Reference in New Issue
Block a user