13 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 として確認した。
- Ticket body は
llm-worker/llm-worker-macroscrate rename、Rust import path rename、major public type rename (Worker->Engine, config/result/error names)、repo-wide references、validation を具体的に列挙している。 TicketRelationQueryは blocking relation 0 件、TicketOrchestrationPlanQueryは routing 前 plan 0 件だった。- bounded context check で repository-wide
llm-worker/llm_workerreferences を確認し、主な変更 surface はcrates/llm-worker,crates/llm-worker-macros, workspace/dependency metadata,pod/manifestimports, docs/tests/examples/Nix/Cargo.lock である。これは大きめだが mechanical rename task として明確で、責務移動や WorkerRuntime 実装は non-goal として分離されている。 - risk は API/naming churn だが、受け入れ条件と validation が明確で、Coder の bounded implementation latitude に収まる。planning return が必要な未決定事項は見つからない。
Evidence checked:
- Ticket body / thread:
item.md,thread.md。thread は create、planning->ready、ready->queued のみで未解決 blocker は記録されていない。 - Relations / orchestration plan: relation 0 件、routing 前 plan 0 件。accepted plan
orch-plan-20260625-132518-1を記録済み。 - Code context:
git grepでcrates/llm-worker,crates/llm-worker-macros,llm_worker,llm_worker_macros,Workerimports/examples/tests/docs references を確認。 - Workspace state:
/home/hare/Projects/yoi/.worktree/orchestrationは clean。queued Ticket はこの 1 件、inprogress Ticket は 0 件。
IntentPacket:
Intent:
- LLM turn-processing crate を
llm-workerからllm-engineへ rename し、public turn-engine主体型をWorkerからEngine系へ rename することで、今後の Runtime-scoped Worker concept と衝突しない package/API naming に整理する。
Binding decisions / invariants:
llm-engineは LLM turn engine。Runtime / Worker identity / process lifecycle / socket protocol / session file authority は持たない。- 責務移動は最小限。provider request/stream handling、tool-call loop、reasoning/usage/retry/continuation/history/callback semantics は変えない。
crates/llm-worker/crates/llm-worker-macrosは残さない。llm-worker/llm_worker/llm_worker_macroscompatibility alias は作らない。podcrate and dependents should compile againstllm_engine::Engineand renamed config/result/error types.- New
worker-runtimecrate or Pod->Worker migration is non-goal.
Requirements / acceptance criteria:
crates/llm-engineandcrates/llm-engine-macrosexist; old directories gone.- Cargo package/dependency names and Rust import paths use
llm-engine/llm_engineandllm-engine-macros/llm_engine_macros. - Public turn-engine type is
llm_engine::Engine, notWorker; config/result/error names no longer useWorkerfor the turn engine concept. - Repository-wide old references are gone except intentional historical/migration notes if any.
pod,manifest,yoi, examples/tests/docs/Nix/Cargo.lock update consistently.- Existing runtime behavior is unchanged except names.
- Validation target includes
cargo test -p llm-engine,cargo test -p pod,cargo check -p yoi,git diff --check,nix build .#yoi --no-link.
Implementation latitude:
- Result/output type exact names may follow Ticket guidance (
EngineRunResult,EngineRunOutput, etc.) as long as public API no longer presents LLM turn engine as Worker. - Internal file names may be renamed for clarity (
worker.rs->engine.rs) if practical; otherwise public module/API must be clean. - Historical ticket ids or changelog-like references may remain only if clearly intentional and not active API/docs guidance.
Escalate if:
- Rename requires behavior changes to provider streaming/tool-loop/history semantics.
- A compatibility alias appears necessary to make internal crates compile.
- Existing macro/test generated names cannot be renamed without broader procedural macro redesign.
cargo test -p podfailure is not the known prompt guidance snapshot caveat but a rename regression.
Validation:
cargo test -p llm-enginecargo test -p podcargo check -p yoigit diff --checknix build .#yoi --no-link- Add focused grep evidence for old names.
Current code map:
- Primary:
crates/llm-worker,crates/llm-worker-macros, workspaceCargo.toml,Cargo.lock,package.nix。 - Secondary: dependent imports in
crates/pod,crates/manifest, examples/tests/docs/resources as found by grep。 - Avoid: worker-runtime implementation, Pod runtime migration, session/socket authority changes, provider/tool-loop behavior changes。
Critical risks / reviewer focus:
- stale old crate/import/type references。
- hidden compatibility alias left behind。
- behavior changes mixed into mechanical rename。
Workerremaining as public turn-engine主体名 where it conflicts with Runtime Worker concept。- Nix/Cargo lock/hash updates missed。
Next action:
queued -> inprogressを記録してから worktree-workflow で/home/hare/Projects/yoi/.worktree/00001KVZD10ED-llm-engine-renameを作成し、multi-agent-workflow で Coder/Reviewer sibling loop に進める。
State changed
Orchestrator acceptance: queued -> inprogress
- 直前確認で
TicketShowは statequeued、blocking relation は 0 件、accepted planorch-plan-20260625-132518-1を確認した。 - routing decision と IntentPacket は Ticket thread に記録済み。
- orchestration worktree は clean。この Ticket 用 worktree/branch はまだ作成していない。
- これ以降に worktree-workflow で
/home/hare/Projects/yoi/.worktree/00001KVZD10ED-llm-engine-renameを作成し、multi-agent-workflow に接続する。
Implementation report
Implementation orchestration update:
- worktree-workflow に従い、implementation worktree
/home/hare/Projects/yoi/.worktree/00001KVZD10ED-llm-engine-renameと branchwork/00001KVZD10ED-llm-engine-renameを作成した。 - child worktree では tracked
.yoiproject records を見える状態にし、.yoi/memory、local/runtime/log/lock/secret-like.yoipaths を sparse-checkout で除外する方針にした。 - Coder Pod
yoi-coder-00001KVZD10ED-llm-engineを 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:
対象 Ticket:
00001KVZD10ED—llm-worker crateをllm-engineへ改名する
実装概要:
crates/llm-worker→crates/llm-enginecrates/llm-worker-macros→crates/llm-engine-macros- Cargo package / workspace dependency 名を
llm-engine/llm-engine-macrosへ更新。 - Rust import path を
llm_engine/llm_engine_macrosへ更新。 - turn-engine API を rename。
Worker→EngineWorkerConfig→EngineConfigWorkerError→EngineErrorWorkerResult→EngineResultWorkerState→EngineStateRunOutput→EngineRunOutput
pod側の engine 保持 API / error / alert source 等も rename fallout として更新。- docs / tests / examples / Nix /
Cargo.lock/package.nixhash を更新。 - 旧 crate directory は削除済みで、互換 alias は追加していない。
Commit:
292fc4ea refactor: rename llm worker crate to engine
Validation:
cargo test -p llm-engine: successcargo test -p pod: success- 既知 caveat の prompt guidance snapshot failure は今回発生しなかった。
cargo check -p yoi: successgit diff --check: successnix build .#yoi --no-link: success
Grep evidence:
.yoi/tickets/**とdocs/report/**を除外した active tree で以下の旧 active references は 0 件。llm-workerllm_workerllm-worker-macrosllm_worker_macros
crates/llm-engine/crates/llm-engine-macros内の旧 public Worker API 名も 0 件。\bWorker\bWorkerConfigWorkerErrorWorkerResultWorkerState
- historical
.yoi/tickets/docs/report内には旧語が残る。count: 786。これは Ticket 本文・過去 report 類の履歴文脈として意図的に残している。
Residual risks / notes:
- 互換 alias は入れていないため、外部未追跡コードが
llm-worker/llm_worker::Workerを直接参照している場合は破壊的変更になる。ただし Ticket の binding invariant 通り。 - merge / Ticket close / worktree cleanup は未実施。
Review: approve
Review result: approve
確認結果、Ticket 00001KVZD10ED の IntentPacket / acceptance criteria に対してブロッカーは見つかりませんでした。
Read-only 確認:
- 対象 worktree / branch / commit:
work/00001KVZD10ED-llm-engine-rename- HEAD
292fc4ea - base
22598710は ancestor。
- Ticket 記録:
thread.mdの IntentPacket / acceptance criteria / reviewer focus を確認。- 要件は
llm-worker→llm-engine、public turn-engine API をWorker系からEngine系へ rename、互換 alias なし、責務移動なし。
- crate / directory:
crates/llm-engine,crates/llm-engine-macrosが存在。crates/llm-worker,crates/llm-worker-macrosは存在しない。
- Cargo / Nix:
- root
Cargo.tomlの members/default-members/workspace deps がllm-engine/llm-engine-macros。 crates/pod/Cargo.toml等の依存もllm-engine。Cargo.lockは旧 package 名から新 package 名へ置換済み。package.nixのcargoHash更新を確認。
- root
- public API:
crates/llm-engine/src/lib.rsはEngine,EngineConfig,EngineError,EngineResult,EngineRunOutputを export。WorkerConfig/WorkerError/WorkerResult/WorkerState/ bareRunOutputは active tree で検出されず。llm-engine/llm-engine-macros内にpub type Worker等の互換 alias は見つからず。
- stale reference:
.yoi/tickets/**とdocs/report/**を除いた tracked active tree でllm-worker,llm_worker,llm-worker-macros,llm_worker_macrosは検出されず。
- behavior / responsibility risk:
crates/llm-worker/src/worker.rs→crates/llm-engine/src/engine.rsは正規化比較で import order / formatting 程度の差分に収まっていることを確認。crates/llm-engine/README.mdに Pod names / sockets / process lifecycle / scope delegation / durable Pod state を持たない境界が明記されており、Runtime/Worker identity や socket/session authority の責務移動は見当たらない。
- whitespace:
git diff --check 22598710..HEAD: success。
未再実行:
cargo test -p llm-enginecargo test -p podcargo check -p yoinix build .#yoi --no-link
上記は reviewer の read-only/no-write 条件を優先して再実行していない。coder 報告では成功済み。
Non-blocking note:
pod側には local variable や既存 runtime/manifest 文脈としてのworker語が残っているが、今回の acceptance 対象である old crate/import/API 名やllm_engine::Worker互換 alias ではないため問題なし。