yoi/.yoi/tickets/00001KVZG9BMS/item.md
2026-06-25 23:13:35 +09:00

5.1 KiB

title state created_at updated_at assignee queued_by queued_at
pod crateをworker crateへ改名する queued 2026-06-25T13:42:37Z 2026-06-25T14:13:35Z null workspace-panel 2026-06-25T14:13:35Z

背景

Yoi は旧 Pod 相当の実行単位を今後 Worker として扱い、Runtime が複数 Worker を保持・操作する構造へ移行する。既存の crates/pod は、現在の yoi pod process / Unix socket / session persistence / tool registry / workflow / llm-engine turn execution host を束ねる実行単位の本体であり、実質的には「single Worker host」である。

llm-workerllm-engine に改名して LLM turn engine から Worker 名を空ける。その後、pod crate を rewrite ではなく rename として worker crate に寄せる。大規模な責務移動はこの Ticket では行わず、名前と公開 API を今後の Runtime/Worker model に合わせる。pod-store / pod-registry 相当の責務は、この rename Ticket では直接扱わず、後続の worker-runtime 作成時に Runtime 内部 persistence / allocation module として吸収する。

目的

  • Pod 実行単位を Worker として命名し直す。
  • worker-runtime 導入前に、Worker が実行単位、llm-engine が turn engine、Runtime が Worker を動かす環境、という命名を揃える。
  • 既存 pod crate の実装は基本 rewrite せず、rename / import path / type name / docs / tests を整理する。
  • 後続の worker-runtime crate が worker crate を single Worker host として扱える状態にする。

要件

Crate / package rename

  • crates/podcrates/worker に rename する。
  • Cargo package name を pod から worker に変更する。
  • Rust import path を pod から worker に変更する。
  • Workspace Cargo.toml、crate dependencies、tests、docs、Nix packaging references を更新する。
  • 旧 crate name / import path の compatibility alias は作らない。

Type / module rename

  • Public type / module / doc comment の Pod terminology を Worker terminology に更新する。
    • Pod -> Worker
    • PodConfig / PodController / PodState / PodEvent 相当があれば Worker terminology に寄せる。
    • pod_nameworker_name または worker_id 相当へ寄せる。
  • ただし、既存 socket protocol / session file / on-disk compatibility の詳細に残る pod 文字列については、後続 Runtime 移行で消すべき legacy detail として明示的に扱う。
  • llm-engine 内部の Engine と、実行単位としての worker::Worker が名前上衝突しないようにする。

CLI / process surface

  • 現在の yoi pod CLI surface をどう rename するかを実装時に決める。
  • 後方互換は設けなくてよいが、dogfooding runtime / spawn path / scripts / tests への影響を明示的に処理する。
  • Low-level process launch path は、後続の worker-runtime では compatibility / process-backed Worker host として扱えるようにする。

Responsibility boundary

  • この Ticket は rename が主目的であり、大規模な responsibility rewrite はしない。
  • worker crate は当面 single Worker host として以下を保持する。
    • input handling
    • llm-engine integration
    • event emission
    • session / transcript compatibility
    • tool registry / workflow integration
    • legacy socket compatibility
  • Runtime に属する責務は後続 Ticket へ残す。
    • 複数 Worker 管理
    • embedded / networked Runtime API
    • worker store / allocation integration
    • remote runtime support
  • pod-store / pod-registry の standalone rename は行わず、後続 worker-runtime 作成時に直接内部 module へ吸収する。

Non-goals

  • worker-runtime crate の実装。
  • Backend internal Companion Web Console の実装。
  • pod-store / pod-registryworker-store / worker-registry への中間 rename。
  • Runtime 内部 persistence / allocation module の完成。
  • Existing process/socket/session model の完全削除。
  • llm-engine rename の実装。
  • Provider request / tool-call loop / history semantics の変更。

受け入れ条件

  • crates/worker が存在し、crates/pod は残っていない。
  • Cargo package name and Rust import path are worker.
  • Public execution-unit type is worker::Worker, not pod::Pod.
  • Repository-wide active references to pod crate / pod:: import / crates/pod are gone except intentionally documented legacy context.
  • Dependent crates compile against worker crate.
  • llm-engine::Engineworker::Worker の責務境界が code/docs/comments 上で明確になっている。
  • Existing process/socket/session compatibility path still works or is explicitly updated without old-name alias.
  • pod-store / pod-registry are not renamed to standalone worker-store / worker-registry in this Ticket.
  • cargo test -p worker passes.
  • cargo test -p yoi or relevant CLI tests covering process launch pass.
  • cargo check -p yoi passes.
  • git diff --check passes.
  • nix build .#yoi --no-link passes.