From 1aa3a409cdcf3d12329dcdb84b4ae87452b31bd2 Mon Sep 17 00:00:00 2001 From: Hare Date: Thu, 25 Jun 2026 22:23:50 +0900 Subject: [PATCH] ticket: plan llm engine rename --- .yoi/tickets/00001KVZD10ED/artifacts/.gitkeep | 0 .yoi/tickets/00001KVZD10ED/item.md | 87 +++++++++++++++++++ .yoi/tickets/00001KVZD10ED/thread.md | 24 +++++ 3 files changed, 111 insertions(+) create mode 100644 .yoi/tickets/00001KVZD10ED/artifacts/.gitkeep create mode 100644 .yoi/tickets/00001KVZD10ED/item.md create mode 100644 .yoi/tickets/00001KVZD10ED/thread.md diff --git a/.yoi/tickets/00001KVZD10ED/artifacts/.gitkeep b/.yoi/tickets/00001KVZD10ED/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/.yoi/tickets/00001KVZD10ED/item.md b/.yoi/tickets/00001KVZD10ED/item.md new file mode 100644 index 00000000..0c5ef944 --- /dev/null +++ b/.yoi/tickets/00001KVZD10ED/item.md @@ -0,0 +1,87 @@ +--- +title: 'llm-worker crateをllm-engineへ改名する' +state: 'ready' +created_at: '2026-06-25T12:45:38Z' +updated_at: '2026-06-25T13:23:50Z' +assignee: null +--- + +## 背景 + +今後は旧 `Pod` 相当の実行単位を `Worker` として扱い、`Runtime` が複数 Worker を保持・操作する構造へ移行したい。一方、現在の `crates/llm-worker` は実行単位としての Worker ではなく、LLM provider request / stream parsing / tool-call loop / reasoning / usage / retry / continuation / low-level history を進める turn engine である。 + +このまま `llm-worker::Worker` という名前を残すと、今後導入する `worker-runtime::Worker` / Runtime scoped Worker identity と衝突し、Pod から Worker への概念移行が分かりにくくなる。責務分離自体は現在の `llm-worker` のままで概ね良いが、名前は実体に合わせて `llm-engine` へ変更する。 + +この Ticket では crate rename、Rust module path rename、主要型 rename、関連 procedural macro crate rename を一括で行う。中途半端に crate 名だけ変えると check が通りにくく、移行中の混乱も残るため、`llm-worker -> llm-engine`、`llm-worker-macros -> llm-engine-macros`、`Worker -> Engine` を同じ実装単位で完了させる。 + +## 要件 + +### Crate / package rename + +- `crates/llm-worker` を `crates/llm-engine` に rename する。 +- `crates/llm-worker-macros` を `crates/llm-engine-macros` に rename する。 +- Cargo package name を `llm-worker` から `llm-engine` に変更する。 +- Cargo package name を `llm-worker-macros` から `llm-engine-macros` に変更する。 +- Workspace `Cargo.toml`、crate dependencies、imports、tests、docs、Nix packaging references を新しい crate 名に更新する。 +- Rust import path は `llm_worker` から `llm_engine` に変更する。 +- Macro crate import path は `llm_worker_macros` から `llm_engine_macros` に変更する。 +- 旧 crate 名 compatibility alias は作らない。 + +### Type / API rename + +- `llm_worker::Worker` を `llm_engine::Engine` に rename する。 +- `WorkerConfig` は `EngineConfig` に rename する。 +- `WorkerResult` は `EngineRunResult` または同等に rename する。 +- `WorkerError` は `EngineError` に rename する。 +- `RunOutput` は `EngineRunOutput` または `RunOutput` のままでもよいが、public API 上で `Worker` という語が turn engine の主体名として残らないよう整理する。 +- `ToolDefinition as WorkerToolDefinition` のような import alias は、意味が残るなら `EngineToolDefinition` 等に更新する。 +- 内部 doc comment / examples / tests の「Worker」は、実行単位としての Worker と混同しないよう `Engine` / `LLM engine` / `turn engine` に更新する。 + +### Responsibility boundary + +- `llm-engine` は Runtime / Worker identity / process lifecycle / socket protocol / session file authority を持たない。 +- `llm-engine` は LLM turn engine として以下を担う。 + - provider request / stream handling + - normalized LLM events + - tool-call loop + - text / reasoning / tool / usage handling + - retry / continuation + - low-level history management + - callback hooks +- `pod` crate や将来の `worker-runtime` crate が、実行単位としての Worker lifecycle / Runtime scoped identity / transcript projection / API exposure を担う。 +- この Ticket では責務移動は最小限にし、主に naming / package boundary を整理する。 + +### Migration scope + +- Repository-wide references to `llm-worker`, `llm-worker-macros`, `llm_worker`, and `llm_worker::Worker` are updated. +- Repository-wide references to `llm_worker_macros` are updated to `llm_engine_macros`. +- `pod` crate uses `llm_engine::Engine` internally. +- Tests / fixtures / generated docs that mention the old crate/type names are updated. +- If generated lock/package files change, they are updated consistently. +- Obsolete paths are removed; no duplicate `crates/llm-worker` or `crates/llm-worker-macros` directory remains. + +## Non-goals + +- New `worker-runtime` crate implementation. +- Pod -> Worker runtime migration. +- Backend internal Companion implementation. +- Runtime network API implementation. +- Moving session persistence / socket protocol / metadata authority into `llm-engine`. +- Changing provider request semantics, tool-call loop behavior, retry/continuation behavior, or history semantics beyond rename fallout. +- Backward compatibility alias for the unreleased `llm-worker` crate name. + +## 受け入れ条件 + +- `crates/llm-engine` and `crates/llm-engine-macros` exist; `crates/llm-worker` and `crates/llm-worker-macros` are gone. +- Cargo package names and crate import paths are `llm-engine` / `llm_engine` and `llm-engine-macros` / `llm_engine_macros`. +- Public turn-engine type is `llm_engine::Engine`, not `llm_engine::Worker`. +- Public config/result/error names no longer use `Worker` for the LLM turn engine concept. +- Repository-wide references to `llm-worker` / `llm-worker-macros` / `llm_worker` / `llm_worker_macros` are gone except migration notes or changelog-like context where intentionally retained. +- `pod` and dependent crates compile against `llm_engine::Engine`. +- Existing behavior of provider streaming, tool-call loop, history append callbacks, retry/continuation, and usage events is unchanged except for names. +- Docs / comments that define the new WorkerRuntime direction no longer conflict with the LLM engine naming. +- `cargo test -p llm-engine` passes. +- `cargo test -p pod` passes. +- `cargo check -p yoi` passes. +- `git diff --check` passes. +- `nix build .#yoi --no-link` passes. diff --git a/.yoi/tickets/00001KVZD10ED/thread.md b/.yoi/tickets/00001KVZD10ED/thread.md new file mode 100644 index 00000000..1494bcd6 --- /dev/null +++ b/.yoi/tickets/00001KVZD10ED/thread.md @@ -0,0 +1,24 @@ + + +## 作成 + +LocalTicketBackend によって作成されました。 + +--- + + + +## Intake summary + +Marked ready by `yoi ticket state`. + +--- + + + +## State changed + +Marked ready by `yoi ticket state`. + + +---