11 KiB
作成
LocalTicketBackend によって作成されました。
Decision
調査結果:
crates/podは現 workspace には存在しない。Cargo.tomlworkspace 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.tomlpod-store = { workspace = true }pod-registry = { workspace = true }
crates/tui/Cargo.tomlpod-store = { workspace = true }pod-registry = { workspace = true }
crates/yoi/Cargo.tomlpod-store = { workspace = true }
主な残存理由:
-
workercrate の 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 が残っているため。
-
workercrate の 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 が必要。
-
tuicrate が旧 local Worker inventory / picker / dashboard でpod-store/pod-registryを読んでいる。tui/src/picker.rstui/src/worker_list.rstui/src/dashboard/mod.rscurrent Runtime API / Backend Worker list へ置換するか、旧 TUI inventory を削除する必要がある。
-
yoiCLI の session / worker cleanup がpod-storeを読んでいる。yoi/src/session_cli.rsyoi/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 を消す作業になる。
Intake summary
Marked ready by yoi ticket state.
State changed
Marked ready by yoi ticket state.
State changed
Ticket を workspace-panel が queued にしました。
Decision
Routing decision:
Workspace Dashboard Queue authorized Orchestrator routing, so the Ticket and current workspace state were inspected.
Findings:
- Ticket state:
queued - Outgoing dependency:
depends_on 00001KW7726H9 - Blocking Ticket
00001KW7726H9is currentlyinprogress. - Current inprogress Tickets:
00001KW7726H9 - Orchestration worktree: clean
Decision:
- Leave
00001KW7835H0queued and do not create a child worktree / role Pod yet. - Reason:
pod-registry/pod-storeremoval must follow the canonical Runtime Worker creation authority decision and implementation in00001KW7726H9. Starting both in parallel would risk deleting/moving store/registry paths while the canonical Worker creation API is still being shaped.
Next routing condition:
- Re-evaluate this Ticket after
00001KW7726H9is merged, validated, and closed, or after an explicit replan changes the dependency.
Decision
Routing decision:
The previously blocking dependency 00001KW7726H9 is now merged, validated, closed, and cleaned up. Related fs-store persistence Ticket 00001KW76E8EG is also merged, validated, closed, and cleaned up. Current workspace state was inspected before implementation side effects.
Findings:
- Ticket state:
queued - Blocking dependency:
00001KW7726H9is closed. - Related persistence Ticket:
00001KW76E8EGis closed. - Current
inprogressTickets: 0 - Orchestration worktree: clean
Decision:
- Accept this Ticket for implementation and transition
queued -> inprogressbefore child worktree / Pod side effects.
Plan:
- Worktree:
/home/hare/Projects/yoi/.worktree/00001KW7835H0-old-pod-crate-cleanup - Branch:
work/00001KW7835H0-old-pod-crate-cleanup - Coder Worker will remove old
pod-registry/pod-storecrates and migrate any remaining authority/persistence responsibilities to Worker/Runtime/session-store boundaries. - Reviewer Worker will verify crate removal, dependency graph cleanup, Runtime authority invariants, stale compatibility avoidance, Browser/UI/CLI/prompt/test wording, and validation evidence.
Operational note:
- User instructed not to use
StopPodfor now after repeated stop/hang symptoms. Cleanup will skip role-Pod shutdown and remove only child worktree/branch unless explicitly reauthorized.
State changed
Dependencies are closed, no Ticket is currently inprogress, and the orchestration worktree is clean. Accepting implementation before child worktree / role Pod side effects.
Implementation report
Implementation kickoff:
- Worktree created:
/home/hare/Projects/yoi/.worktree/00001KW7835H0-old-pod-crate-cleanup - Branch:
work/00001KW7835H0-old-pod-crate-cleanup - Coder Worker spawned:
yoi-coder-00001KW7835H0-pod-cleanup
Scope notes:
- Coder write scope covers the old crate directories
crates/pod-registry,crates/pod-store, affected active crates (crates/worker,crates/tui,crates/yoi,crates/worker-runtime,crates/session-store,crates/manifest), prompt/profile/web workspace paths, and root Cargo/package files. crates/podis already absent; Coder is instructed to verify absence and prevent reintroduction.- Coder is instructed not to modify Ticket records and not to operate in root/orchestration worktrees.
Implementation focus:
- remove
crates/pod-registryandcrates/pod-storefrom workspace - migrate/rename any remaining Worker metadata/session persistence to Worker/Runtime/session-store boundaries without active Pod authority naming
- remove old pod-registry path APIs and old Pod metadata inventory/cleanup dependencies from worker/tui/yoi where active
- ensure Runtime Worker identity / creation / persistence remains
worker-runtimefs-store + execution backend mapping authority - do not use old Pod registry/store/socket/name as active authority
- keep historical docs only if clearly historical
- validate dependency graph and run targeted tests/checks
Implementation report
Implementation report:
実装完了。Ticket ファイル編集、merge、close、cleanup は未実施。
Commit:
17a9488a4aa0a3dc83be2d3360b6ffd8ffcaeb5a refactor: remove old pod crates
実装内容:
crates/pod-registry/crates/pod-storeを workspace から削除。Cargo.toml/Cargo.lock/ 各 crate dependency /package.nixから旧 crate 参照を除去。crates/podも引き続き存在しないことを確認。pod-registry/pod-store/crates/pod系の active 参照が残っていないことをrgで確認。
pod-storeの Worker metadata 永続化をsession-store境界へ移動。session_store::worker_metadataとしてFsWorkerStore,WorkerMetadataStore,CombinedStore等を提供。- active storage naming を Worker metadata に寄せ、metadata root も
data_dir/workers側へ変更。
pod-registryの active crate 依存を削除。- Worker 内部の
runtime::worker_allocationモジュールへ、scope allocation 用の実装として分類・移設。 - module comment で「Runtime Worker identity / creation / durable persistence の authority ではない」ことを明記。
- manifest path API は
worker_allocation_path/worker_socket_path名へ置換。
- Worker 内部の
tui/yoi/workerの旧 crate 依存を置換。- TUI の live worker inventory は旧
pod-registrycrate に依存せず、renamed worker allocation table を read-only に読む形へ変更。 - 読み取り時は
fs4の shared lock を使い、writer との競合で partial read しにくい形に修正。
- TUI の live worker inventory は旧
package.nixのcargoHashを更新。
依存監査サマリ:
crates/pod: absentcrates/pod-registry: deletedcrates/pod-store: deleted- workspace/package/lock/source 内の active
pod-registry/pod-store/crates/pod参照: なし - Runtime Worker identity/creation/persistence authority は
worker-runtimefs-store + execution backend mapping のまま維持し、旧 registry/store/socket/name を authority として使わない構成に整理。
Validation:
cargo test -p worker-runtime --features ws-server: successcargo test -p yoi-workspace-server: successcargo test -p worker: successcargo test -p session-store: successcargo check -p yoi: successcd web/workspace && deno task check: successgit diff --check: successgit diff --cached --check: successnix build .#yoi: success
Risks / notes:
- Worker metadata root を
data_dir/pods由来からdata_dir/workers側へ寄せたため、既存ローカル metadata の自動移行は入れていない。Ticket 方針どおり、旧 Pod authority naming 互換を増やさない実装。 - Historical docs は今回の active dependency cleanup の対象外だが、active crate/path/dependency 参照は除去済み。