22 KiB
作成
LocalTicketBackend によって作成されました。
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: implementation_ready
Reason:
- Dashboard Queue により人間が Orchestrator routing を許可した queued Ticket として確認した。
- outgoing
depends_onは00001KVZD10EDで、00001KVZD10EDは done / merged / reviewed / validated 済み。TicketShowderived blockers は空で、implementation acceptance blocker は残っていない。 - incoming dependent
00001KVZBCQH4は後続 worker-runtime creation であり、この Ticket の acceptance blocker ではない。 - Ticket body は
crates/pod->crates/workercrate/package/import rename、public execution-unit API rename、CLI/process surface update、non-goals、validation を具体的に列挙している。 - bounded context check で current active references to
crates/pod,pod::, packagepod,yoi podprocess entrypoint, tests/docs/Nix を確認した。変更量は大きいが mechanical rename + bounded public surface alignment として進められる。 - CLI/process surface は risk だが、Ticket は backward compatibility alias 不要、dogfooding runtime/spawn path/scripts/tests 影響を明示処理することを要求している。設計未決定というより implementation slice 内の bounded choice と判断する。
Evidence checked:
- Ticket body / thread:
item.md,thread.md。thread は create、planning->ready、ready->queued のみで未解決 blocker は記録されていない。 - Relations / orchestration plan: outgoing depends_on
00001KVZD10EDis done; incoming dependent00001KVZBCQH4; routing 前 plan 0 件。accepted planorch-plan-20260625-141406-1を記録済み。 - Code context:
git grepでcrates/pod,pod::, package/dependencypod,yoi pod,Podpublic API refs を確認。 - Workspace state:
/home/hare/Projects/yoi/.worktree/orchestrationは clean。queued Ticket はこの 1 件、inprogress Ticket は 0 件。
IntentPacket:
Intent:
- 現在の single execution-unit host crate
podをworkerに rename し、実行単位としてのworker::Workerと LLM turn enginellm_engine::Engineの命名境界を揃える。
Binding decisions / invariants:
- This is a rename / API terminology alignment Ticket, not a responsibility rewrite.
workercrate remains the current single Worker host: input handling, llm-engine integration, event emission, session/transcript compatibility, tool registry, workflow integration, legacy socket compatibility.- Do not implement
worker-runtimecrate or multi-worker Runtime API. - Do not standalone-rename
pod-store/pod-registrytoworker-store/worker-registryin this Ticket. - Do not change provider request/tool-call/history semantics.
- Do not create
podcrate/import compatibility alias. - Existing on-disk/socket/session compatibility may retain legacy
podstrings only where explicitly legacy/internal and documented.
Requirements / acceptance criteria:
crates/workerexists;crates/poddoes not remain.- Cargo package/import path are
worker. - Public execution-unit type is
worker::Worker, notpod::Pod. - Active repository references to
podcrate /pod::import /crates/podare gone except intentional legacy context. - Dependent crates compile against
workercrate. llm_engine::Enginevsworker::Workerboundary is clear in code/docs/comments.- Existing process/socket/session compatibility path still works or is explicitly updated without old-name alias.
pod-store/pod-registryare not renamed as standalone crates.- Validation target includes
cargo test -p worker,cargo test -p yoior relevant CLI tests,cargo check -p yoi,git diff --check,nix build .#yoi --no-link.
Implementation latitude:
- Exact CLI command spelling may be updated according to Ticket requirement, but no backward alias should be added unless a hard blocker appears. If command migration threatens current runtime dogfooding assumptions, escalate.
- Internal legacy file/socket/session names may remain only when required for compatibility and must be clearly legacy/internal, not active API guidance.
- Type/module rename can be staged mechanically; prioritize compile/test correctness and grep evidence.
Escalate if:
- Rename requires broad runtime architecture rewrite or worker-runtime implementation.
- Current process launch/spawn mechanics cannot work without a compatibility
podcommand/alias. pod-store/pod-registrymust be renamed for compile correctness.- Session/socket/on-disk migration would be required beyond explicit legacy compatibility labels.
- Behavior changes unrelated to naming are needed.
Validation:
cargo test -p workercargo test -p yoior focused process/CLI testscargo check -p yoigit diff --checknix build .#yoi --no-link- grep evidence for stale active references.
Current code map:
- Primary:
crates/pod, workspaceCargo.toml, dependent crates (crates/yoi,crates/tui, workspace-server/client as discovered), tests/docs/resources,Cargo.lock,package.nix. - Avoid:
pod-store/pod-registrystandalone rename, worker-runtime implementation, root/original workspace operations.
Critical risks / reviewer focus:
- stale active
podcrate/import/directory references. - hidden compatibility alias.
- breaking runtime process launch / spawn command path.
- accidentally renaming persistence crates out of scope.
- behavior changes mixed into mechanical rename.
- confusion between
llm_engine::Engineandworker::Workerresponsibilities.
Next action:
queued -> inprogressを記録してから worktree-workflow で/home/hare/Projects/yoi/.worktree/00001KVZG9BMS-worker-crate-renameを作成し、multi-agent-workflow で Coder/Reviewer sibling loop に進める。
State changed
Orchestrator acceptance: queued -> inprogress
- 直前確認で
TicketShowは statequeued、derived blockers は空。 - outgoing dependency
00001KVZD10EDは done / merged / reviewed / validated 済み。 - accepted plan
orch-plan-20260625-141406-1を確認した。 - routing decision と IntentPacket は Ticket thread に記録済み。
- これ以降に worktree-workflow で
/home/hare/Projects/yoi/.worktree/00001KVZG9BMS-worker-crate-renameを作成し、multi-agent-workflow に接続する。
Implementation report
Implementation orchestration update:
- prerequisite
00001KVZD10EDが done であることを確認し、00001KVZG9BMSを受理した。 - worktree-workflow に従い、implementation worktree
/home/hare/Projects/yoi/.worktree/00001KVZG9BMS-worker-crate-renameと branchwork/00001KVZG9BMS-worker-crate-renameを作成した。 - child worktree では tracked
.yoiproject records を見える状態にし、.yoi/memory、local/runtime/log/lock/secret-like.yoipaths を sparse-checkout で除外する方針にした。 - Coder Pod
yoi-coder-00001KVZG9BMS-worker-renameを sibling として起動した。write scope は child worktree に限定し、runtime workspace root/home/hare/Projects/yoiは startup 要件を満たすため non-recursive read のみにした。 - Coder には root/original workspace と orchestration worktree で read/write/validation/git operation を行わないよう明示した。
Implementation report
Implementation report:
実装概要:
crates/podをcrates/workerへ改名。- Cargo package/import path を
podからworkerへ更新。 worker::Worker,WorkerConfig,WorkerState,WorkerEvent,WorkerClient,WorkerRuntimeCommandなど Worker 用語へ更新。
- Cargo package/import path を
- CLI/process surface を
yoi podからyoi workerへ変更。- 後方互換の
yoi podalias は追加していません。
- 後方互換の
llm_engine::Engineとworker::Workerの境界を明確化。- 既存 manifest の turn-engine 側設定は
engine用語へ寄せ、Worker host 側設定と分離しました。
- 既存 manifest の turn-engine 側設定は
pod-store/pod-registryは crate/package としては改名していません。- ただし Worker API と整合するよう、関連する型・呼び出し側は Worker 用語へ更新。
- 既存互換・内部文脈として、legacy on-disk metadata directory
podsなどは残しています。
- resources/prompts、profiles、docs、Nix、Cargo workspace、Cargo.lock を更新。
package.nixのcargoHashを更新。
主な変更ファイル:
crates/pod/**→crates/worker/**crates/client/src/pod_client.rs→crates/client/src/worker_client.rscrates/tui/src/pod_list.rs→crates/tui/src/worker_list.rscrates/yoi/src/pod_cleanup_cli.rs→crates/yoi/src/worker_cleanup_cli.rsresources/prompts/pod/**→resources/prompts/worker/**resources/prompts/common/pod-orchestration.md→resources/prompts/common/worker-orchestration.mddocs/design/pod-session-state.md→docs/design/worker-session-state.mdCargo.toml,Cargo.lock,package.nix- dependent crates:
protocol,manifest,tui,client,workspace-server,yoi, docs/resources
Validation:
cargo test -p worker: successcargo test -p yoi: successcargo check -p yoi: successgit diff --check: successnix build .#yoi --no-link: success
Grep evidence:
crates/podrefs: intentionalpod-store/pod-registrypath を除きなしpod::refs: なし- package/import
podrefs: intentionalpod-store/pod-registrydependencies を除きなし - old public
Pod*execution-unit type refs: intentional exclusions を除きなし - active CLI refs:
yoi pod: なし"pod" =>: なし--pod: なしPOD_OPTIONS: なしparse_pod: なしpod_name: intentional exclusions を除きなし
残っている lower-case pod は主に以下の intentional legacy/internal context:
- crate/package name として残す指定のある
pod-store - crate/package name として残す指定のある
pod-registry - legacy on-disk metadata directory
pods - related comments/tests describing those legacy/internal boundaries
Commit:
6c59fe927b8094f735651ef0e18fad5e8b62ea83 refactor: rename pod crate to worker
Residual risks / notes:
pod-store/pod-registrycrate 名は Ticket invariant に従って残しています。そのため grep 上の lower-casepodは完全にはゼロになりません。- legacy on-disk directory
podsは既存 metadata/session compatibility のため維持しました。 - merge / close / cleanup は実施していません。
Review: request changes
Review result: request_changes
読取専用で Ticket / IntentPacket、4c677640..HEAD diff、grep/nl による focused inspection を行いました。cargo/nix 系の再実行は read-only 指示と書込み副作用回避のため行っていません。
良い点:
crates/workerは存在し、crates/podは削除済み。- workspace/Cargo.lock 上の package/import は
workerに移行済みで、pod-store/pod-registryは standalone rename されていません。 - CLI は
yoi worker/--worker側へ移行しており、明示的なyoi podalias は見当たりませんでした。
Blockers:
-
生成済み Web protocol が旧 Pod protocol のまま。
web/workspace/src/lib/generated/protocol.tsが Rust 側のWorker*protocol と不整合です。- 例:
PodStatus,Greeting { pod_name: ... },PodEvent, methodpod_event,list_pods,restore_pod, eventspods_listed,pod_restoredなど。 crates/protocol/src/lib.rsはWorkerStatus/WorkerEvent/worker_name/worker_event等へ更新済みのため、Web/TS client 側が socket protocol とズレるリスクがあります。
-
public API に旧 Pod 名の enum variant が残存。
crates/client/src/spawn.rsのSpawnError::PodLaunchFailed { ... }。crates/client/src/lib.rsでSpawnErrorは public re-export されているため、Ticket の “Public execution-unit type/API terminology is Worker, not Pod” に反します。
-
model-facing prompts / workflows / active docs に旧 Pod guidance が残存。
resources/prompts/common/worker-orchestration.md: “Peer Pods ...”resources/workflows/ticket-orchestrator-routing.md: “Coder/Reviewer は sibling Pods ...”resources/prompts/role/intake.md,resources/prompts/role/orchestrator.md,resources/prompts/panel/orchestrator_idle_queue_notice.mdにも active orchestration guidance として “Pods” が残っています。docs/design/worker-session-state.mdにSendToPeerPodと記載されていますが、実装側はSendToPeerWorker。- これらは legacy/internal compatibility label ではなく current LLM/workflow guidance なので例外扱いできません。
-
active documentation に壊れた旧パス / 旧型名が残存。
crates/pod-store/README.mdに削除済みdocs/design/pod-session-state.mdへのリンク。KNOWN_ISSUES.mdにcrates/worker/src/pod.rs/Pod::ensure_segment_head等、存在しない path/type。
Required fixes:
web/workspace/src/lib/generated/protocol.tsを Rust protocol と一致させる。client::SpawnError::PodLaunchFailedをWorkerLaunchFailedに rename し、match/source mapping も更新する。resources/prompts/**/resources/workflows/**の active “Pod(s)” guidance を Worker terminology に更新する。SendToPeerPodなど実装と不一致な docs をSendToPeerWorkerに更新する。- 削除済み
docs/design/pod-session-state.mdへのリンク、存在しないcrates/worker/src/pod.rs/Pod::ensure_segment_head参照を修正する。 - 修正後、報告済み validation に加えて stale grep を再実施する。
Implementation report
Follow-up implementation report after review request_changes:
対応内容:
- Web generated protocol の Worker 用語追従
web/workspace/src/lib/generated/protocol.tsを Rust protocol から再生成。- 旧 Pod protocol 名を Worker に更新。
PodStatus→WorkerStatusGreeting { pod_name }→Greeting { worker_name }PodEvent→WorkerEventpod_event→worker_eventlist_pods→list_workersrestore_pod→restore_workerpods_listed→workers_listedpod_restored→worker_restored
- public API enum variant の修正
crates/client/src/spawn.rsSpawnError::PodLaunchFailed→SpawnError::WorkerLaunchFailed- public re-export される型なので、match / source mapping も更新。
- active model-facing guidance の Pod 表現修正
- 以下を Worker 用語へ更新。
resources/prompts/common/worker-orchestration.mdresources/workflows/ticket-orchestrator-routing.mdresources/prompts/role/intake.mdresources/prompts/role/orchestrator.mdresources/prompts/panel/orchestrator_idle_queue_notice.md
- stale docs/path/type の修正
docs/design/worker-session-state.mdSendToPeerPod→SendToPeerWorker
crates/pod-store/README.md- deleted path
docs/design/pod-session-state.md→docs/design/worker-session-state.md - crate 名は invariant に従い
pod-storeのまま、説明は legacy-named crate owning current Worker metadata と明記。
- deleted path
KNOWN_ISSUES.mdcrates/worker/src/pod.rs→crates/worker/src/worker.rsPod::ensure_segment_head→Worker::ensure_segment_headPodError::WorkflowResolve→WorkerError::WorkflowResolve
Validation:
cargo test -p worker: successcargo test -p yoi: successcargo check -p yoi: successcargo test -p protocol --features typescript: successcd web/workspace && deno task check: successgit diff --check: successnix build .#yoi --no-link: success
Stale grep evidence:
- review blocker terms were checked and found no matches:
PodStatus,PodEvent,pod_name,pod_event,list_pods,restore_pod,pods_listed,pod_restored,PodLaunchFailed,SendToPeerPod,sibling Pods,Peer Pods,yoi pod,--pod,crates/worker/src/pod.rs,Pod::ensure_segment_head,pod-session-state.md
- Strict stale grep was rerun; intentional
pod-store/pod-registrycrate names aside, active public Pod protocol/prompt/API reference remains absent.
Commit:
ebf50baa94f76bb000f70f63e133c7883729de5c fix: align worker rename followups
Residual risks / notes:
- なし。child worktree は commit 後 clean。
Review: request changes
Review result: request_changes
Follow-up を read-only で確認した。6c59fe92..HEAD の差分確認と blocker term grep を実施し、ビルド/テストは副作用回避のため再実行していない。
解消確認:
web/workspace/src/lib/generated/protocol.tsはWorkerStatus/worker_name/WorkerEvent/worker_event/list_workers/restore_worker/workers_listed/worker_restoredに更新済み。SpawnError::PodLaunchFailedはWorkerLaunchFailedに更新済み。- 主要 prompt/workflow の
Peer Pods/sibling Podsは一部修正済み。
Remaining blockers:
-
削除済み docs path がまだ残存。
crates/pod-registry/README.md:29../../docs/design/pod-session-state.mdへの link が残っている。対象 file はworker-session-state.mdに移行済みなので、壊れた active doc link。
-
旧 tool 名
SendToPeerPodが active code に残存。crates/session-analytics/src/lib.rs:1600- 実装側は
SendToPeerWorkerへ移行済みだが、analytics の分類にSendToPeerWorkerがなくSendToPeerPodだけ残っている。stale name であるだけでなく、現行 tool の分類漏れに見える。legacy log 対応で旧名を残すなら、SendToPeerWorkerを追加した上で legacy comment を付けるのが安全。
-
active docs/comments に旧 Pod guidance がまだ残存。
docs/development/work-items.md:250:Reviewer Pods should be sibling Pods...crates/protocol/src/lib.rs:80:List Pods visible to this Worker...AGENTS.md:19:Notify / PodEvent / ...- いずれも compatibility/internal on-disk
podsの説明ではなく、現在の active terminology / protocol guidance なので Worker terminology に寄せるべき。
Required verification after fix:
rg -n -S 'SendToPeerPod|pod-session-state\.md|sibling Pods|List Pods visible|PodEvent' \
AGENTS.md crates resources docs web/workspace/src/lib/generated/protocol.ts \
--glob '!target' --glob '!docs/report/**'
This grep should be empty or any remaining hit must be explicitly legacy/internal and justified.
Implementation report
Second follow-up implementation report after review request_changes:
対応内容:
- broken docs path 修正
crates/pod-registry/README.md../../docs/design/pod-session-state.md→../../docs/design/worker-session-state.mdpod-registryは invariant に従って crate 名を維持しつつ、本文では legacy-named crate と明記して Worker 用語へ更新。
- old tool name classification 修正
crates/session-analytics/src/lib.rs- current tool name
SendToPeerWorkerを worker tool classification に追加。 - historical session logs の分類維持のため、
SendToPeerPodはLEGACY_SEND_TO_PEER_POD_TOOLとして明示的な legacy analytics-only comment 付きで保持。
- current tool name
- active docs/comments の Pod guidance 修正
docs/development/work-items.mdReviewer Pods should be sibling Pods...→Reviewer Workers should be sibling Workers...
crates/protocol/src/lib.rsList Pods visible...→List Workers visible...
AGENTS.mdPodの状態→Workerの状態Notify / PodEvent / ...→Notify / WorkerEvent / ...
Validation:
cargo test -p session-analytics: successcargo test -p worker: successcargo test -p yoi: successcargo check -p yoi: successcargo test -p protocol --features typescript: successcd web/workspace && deno task check: successgit diff --check: successnix build .#yoi --no-link: success
Specified grep evidence:
crates/session-analytics/src/lib.rs:1595: const LEGACY_SEND_TO_PEER_POD_TOOL: &str = "SendToPeerPod";
- この 1 件のみ残存。
- historical session logs の分類維持のための analytics-only legacy tool name で、直下の classification branch にも legacy comment を付けている。
- active prompt/protocol/docs/API guidance の旧 Pod 参照ではない。
Commit:
94c7aa793a179b377108dea841fe9d381affbd9c fix: clean remaining worker rename references
Residual risks / notes:
- child worktree は commit 後 clean。