16 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 参照は除去済み。
Implementation report
Review kickoff:
Reviewer Worker spawned for 00001KW7835H0 implementation.
- Reviewer Worker:
yoi-reviewer-00001KW7835H0-pod-cleanup - Review target commit:
17a9488a4aa0a3dc83be2d3360b6ffd8ffcaeb5a refactor: remove old pod crates - Review mode: read-only implementation worktree review
Review focus:
crates/pod-registryandcrates/pod-storeare removed from workspace / Cargo / package / lock / active source referencescrates/podremains absent and is not reintroduced- needed Worker metadata/session persistence moved to Worker/Runtime/session-store boundaries without active Pod authority naming
- old pod-registry APIs are not active authority
- Runtime Worker identity / creation / persistence remains
worker-runtimefs-store + execution backend mapping - UI/CLI/TUI active wording and tests compile
- no stale compatibility alias preserves old Pod store authority
- validation evidence is plausible and sufficient
Review: request changes
request_changes
対象 commit 17a9488a4aa0a3dc83be2d3360b6ffd8ffcaeb5a を read-only で確認した。worktree は clean、git diff --check HEAD^ HEAD は成功。重い cargo / deno / nix は reviewer では再実行せず、報告済み validation は diff/code 上で plausibility を確認した。
満たしている点
crates/pod/crates/pod-registry/crates/pod-storeのディレクトリは存在しない。Cargo.tomlworkspace members/default-members/dependencies、active crateCargo.toml、Cargo.lock、package.nixからpod-registry/pod-storedependency は除去済み。manifest::paths::pod_registry_path/pod_registry::.../pod_store::...参照は active source から消えている。pod-store相当のWorkerMetadataStore/FsWorkerStore/CombinedStoreはsession-store::worker_metadataへ移され、data_dir/workersの Worker metadata と session log store に分離されている。worker-runtime側はRuntimeId + WorkerIdを authority とする fs-store / execution backend mapping が残っており、旧 pod path/socket/session path を authority にしない設計コメント・境界も確認した。
Blockers
-
active CLI output に旧
pod名が残っている。crates/yoi/src/worker_cleanup_cli.rs:242/253でyoi worker deleteの refusal 出力がpod: {}になっている。これは Ticket の「TUI / yoi CLI / worker cleanup CLI から旧 Pod metadata inventory / cleanup 依存を削除」「Active UI / CLI / prompt / test output に旧 Pod concept が正規 concept として残らない」に反する。worker:に直す必要がある。 -
LLM/tool-visible な active Worker allocation error が旧 Pod authority wording のまま。
crates/worker/src/runtime/worker_allocation/error.rs:14,16,29,32に以下が残っている:pod name ... is already registeredconflicts with pod ...pod ... is not registeredsession ... is already held by pod ...
これらは
crates/worker/src/spawn/tool.rs:867-875でToolErrorにe.to_string()として流れるため、単なる内部コメントではなく active tool/user-facing error。旧pod-registrycrate は消えているが、移管先の active scope allocation path が旧 Pod 名で authority/error を表現しており、Ticket intent に対して未完了。 -
active e2e harness artifact に旧 pod registry / metadata path が残っている。
tests/e2e/src/lib.rs:1624-1625がtested_yoi_pod_registry: ... pods.jsonとfixture_pod_metadata_root: ... podsを書き出している。tests/e2eは workspace member なので、historical docs/report ではなく active test source/output と見なされる。現 Runtime/Worker path へ更新するか、legacy/historical fixture として明確に分類・隔離する必要がある。
上記を直したうえで、報告済み validation 一式(少なくとも cargo check -p yoi, cargo test -p worker, cargo test -p worker-runtime --features ws-server, cargo test -p yoi-workspace-server, deno task check, git diff --check, nix build .#yoi --no-link)を再確認すること。
Implementation report
Change-request routing:
Reviewer requested changes for active wording/test artifact leftovers. The original Coder scope did not include tests/e2e, so a focused fix Coder Worker was spawned with additional write scope for the specific blocker areas.
- Fix Coder Worker:
yoi-coder-00001KW7835H0-pod-fix - Worktree:
/home/hare/Projects/yoi/.worktree/00001KW7835H0-old-pod-crate-cleanup
Requested fixes:
- change active
yoi worker deleterefusal output frompod:toworker: - rename active worker allocation tool/user-facing errors away from old Pod authority wording
- update active
tests/e2eharness artifact names/paths away from old pod registry / pod metadata wording or clearly isolate as legacy if required - run focused validation and commit fixes