yoi/.yoi/tickets/00001KVZD10ED/thread.md

10 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-macros crate 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_worker references を確認し、主な変更 surface は crates/llm-worker, crates/llm-worker-macros, workspace/dependency metadata, pod/manifest imports, 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 grepcrates/llm-worker, crates/llm-worker-macros, llm_worker, llm_worker_macros, Worker imports/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_macros compatibility alias は作らない。
  • pod crate and dependents should compile against llm_engine::Engine and renamed config/result/error types.
  • New worker-runtime crate or Pod->Worker migration is non-goal.

Requirements / acceptance criteria:

  • crates/llm-engine and crates/llm-engine-macros exist; old directories gone.
  • Cargo package/dependency names and Rust import paths use llm-engine / llm_engine and llm-engine-macros / llm_engine_macros.
  • Public turn-engine type is llm_engine::Engine, not Worker; config/result/error names no longer use Worker for 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 pod failure is not the known prompt guidance snapshot caveat but a rename regression.

Validation:

  • cargo test -p llm-engine
  • cargo test -p pod
  • cargo check -p yoi
  • git diff --check
  • nix build .#yoi --no-link
  • Add focused grep evidence for old names.

Current code map:

  • Primary: crates/llm-worker, crates/llm-worker-macros, workspace Cargo.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。
  • Worker remaining 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 は state queued、blocking relation は 0 件、accepted plan orch-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 と branch work/00001KVZD10ED-llm-engine-rename を作成した。
  • child worktree では tracked .yoi project records を見える状態にし、.yoi/memory、local/runtime/log/lock/secret-like .yoi paths を 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:

  • 00001KVZD10EDllm-worker crateをllm-engineへ改名する

実装概要:

  • crates/llm-workercrates/llm-engine
  • crates/llm-worker-macroscrates/llm-engine-macros
  • Cargo package / workspace dependency 名を llm-engine / llm-engine-macros へ更新。
  • Rust import path を llm_engine / llm_engine_macros へ更新。
  • turn-engine API を rename。
    • WorkerEngine
    • WorkerConfigEngineConfig
    • WorkerErrorEngineError
    • WorkerResultEngineResult
    • WorkerStateEngineState
    • RunOutputEngineRunOutput
  • pod 側の engine 保持 API / error / alert source 等も rename fallout として更新。
  • docs / tests / examples / Nix / Cargo.lock / package.nix hash を更新。
  • 旧 crate directory は削除済みで、互換 alias は追加していない。

Commit:

  • 292fc4ea refactor: rename llm worker crate to engine

Validation:

  • cargo test -p llm-engine: success
  • cargo test -p pod: success
    • 既知 caveat の prompt guidance snapshot failure は今回発生しなかった。
  • cargo check -p yoi: success
  • git diff --check: success
  • nix build .#yoi --no-link: success

Grep evidence:

  • .yoi/tickets/**docs/report/** を除外した active tree で以下の旧 active references は 0 件。
    • llm-worker
    • llm_worker
    • llm-worker-macros
    • llm_worker_macros
  • crates/llm-engine / crates/llm-engine-macros 内の旧 public Worker API 名も 0 件。
    • \bWorker\b
    • WorkerConfig
    • WorkerError
    • WorkerResult
    • WorkerState
  • 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 は未実施。