From f8d3b1cca9588fe9d1ac3c4a5943d44918b0fd43 Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 26 Jun 2026 01:21:59 +0900 Subject: [PATCH] ticket: accept worker runtime core routing --- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVZBCQH4/item.md | 4 +- .yoi/tickets/00001KVZBCQH4/thread.md | 87 +++++++++++++++++++ 3 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/00001KVZBCQH4/artifacts/orchestration-plan.jsonl diff --git a/.yoi/tickets/00001KVZBCQH4/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVZBCQH4/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..04db662b --- /dev/null +++ b/.yoi/tickets/00001KVZBCQH4/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260625-162107-1","ticket_id":"00001KVZBCQH4","kind":"accepted_plan","note":"Dashboard Queue による human-authorized routing。dependencies `00001KVZD10ED` は closed、`00001KVZG9BMS` は done で relation blockers は解消済み。","accepted_plan":{"summary":"`worker-runtime` core crate を最初の implementation slice として追加する。HTTP/WS/FS/remote は実装せず、memory-backed embedded Runtime API、Runtime/Worker identity、catalog/lifecycle/interaction/projection 型境界、internal store/allocation abstraction を実装する。`worker` crate の socket/session details は Runtime public API に再公開しない。","branch":"work/00001KVZBCQH4-worker-runtime-core","worktree":"/home/hare/Projects/yoi/.worktree/00001KVZBCQH4-worker-runtime-core","role_plan":"Orchestrator が `/home/hare/Projects/yoi/.worktree/orchestration` から child implementation worktree を作成し、coder Worker にその worktree の narrow write scope を委譲する。reviewer Worker は同 worktree read-only を基本とし、IntentPacket / acceptance criteria / runtime authority boundary / public API leakage を確認する。merge/validation/done/cleanup は Orchestrator が行う。"},"author":"yoi-orchestrator","at":"2026-06-25T16:21:07Z"} diff --git a/.yoi/tickets/00001KVZBCQH4/item.md b/.yoi/tickets/00001KVZBCQH4/item.md index bcf35bbd..f662f783 100644 --- a/.yoi/tickets/00001KVZBCQH4/item.md +++ b/.yoi/tickets/00001KVZBCQH4/item.md @@ -1,8 +1,8 @@ --- title: 'worker-runtime core crateと組み込みRuntime APIを作る' -state: 'queued' +state: 'inprogress' created_at: '2026-06-25T12:17:05Z' -updated_at: '2026-06-25T16:20:10Z' +updated_at: '2026-06-25T16:21:46Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-25T16:20:10Z' diff --git a/.yoi/tickets/00001KVZBCQH4/thread.md b/.yoi/tickets/00001KVZBCQH4/thread.md index 2bb92675..35c8509e 100644 --- a/.yoi/tickets/00001KVZBCQH4/thread.md +++ b/.yoi/tickets/00001KVZBCQH4/thread.md @@ -342,4 +342,91 @@ Marked ready by `yoi ticket state`. Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Dashboard Queue により本 Ticket の Orchestrator routing が明示許可された。 +- Ticket body / thread には core slice の範囲、Non-goals、API 分割、profile/config bundle sync の境界、`worker` crate との責務境界が十分に記録されている。 +- Relation blockers は解消済み。`00001KVZD10ED` は closed、`00001KVZG9BMS` は done。 +- `queued` は本 Ticket 1件のみ、`inprogress` は 0 件。追加並列受理候補はない。 +- Orchestration worktree は queue commit `30363e5e` 上で clean。既存の旧 worker-rename child worktree/Workers は残っているが、今回の child worktree path / branch / scope は分離できる。 + +Evidence checked: +- Ticket body: `crates/worker-runtime` core crate、memory-backed embedded Runtime API、Runtime/Worker identity、management/catalog/interaction/projection API、Non-goals、acceptance criteria。 +- Ticket thread decisions: implementation order、`pod-store` / `pod-registry` を standalone `worker-store` / `worker-registry` にしない、FS/REST/event-stream/Backend integration/config-bundle sync は別 Ticket。 +- Relations: depends_on `00001KVZD10ED` / `00001KVZG9BMS`; incoming dependent Tickets are later FS/REST/event-stream/config-bundle work and do not block this core slice. +- OrchestrationPlan: 新規 accepted plan `orch-plan-20260625-162107-1` を記録。 +- Code map: root `Cargo.toml` workspace members/dependencies、既存 `crates/worker` single Worker host、`crates/workspace-server/src/hosts.rs` の現行 `WorkerRuntimeRegistry` / `WorkspaceWorkerRuntime` / local compatibility projection を確認。 +- Workspace state: `/home/hare/Projects/yoi/.worktree/orchestration` clean; implementation worktree target `/home/hare/Projects/yoi/.worktree/00001KVZBCQH4-worker-runtime-core` / branch `work/00001KVZBCQH4-worker-runtime-core` を採用。 + +IntentPacket: + +Intent: +- `crates/worker-runtime` を追加し、Backend 等へ組み込める memory-backed embedded Runtime core API を実装する。 + +Binding decisions / invariants: +- `Runtime` は concrete domain entity。trait object を public authority として設計しない。 +- API authority は `runtime_id + worker_id`。`pod_name` / socket path / session path を Runtime public API authority にしない。 +- `worker` crate は当面 single Worker host として残し、Runtime core は socket / attach / session file details や全 public Worker internals を再公開しない。 +- HTTP server / WebSocket/SSE server / REST command server / HTTP client / FS persistence / Backend RuntimeRegistry integration / Web Console は実装しない。 +- `worker-store` / `worker-registry` standalone crate は作らない。store/allocation は Runtime internal abstraction として定義する。 +- Profile/config bundle sync は別 Ticket。ここでは `ConfigBundleRef` placeholder と Profile selector 境界まで。 +- Existing process/socket/session compatibility の削除・大規模移植はしない。 + +Requirements / acceptance criteria: +- `crates/worker-runtime` を workspace に追加し、library として HTTP/WS/FS dependency なしで使える。 +- Runtime management、Worker catalog/lifecycle、Worker interaction、Worker observation/projection API が型として分離される。 +- Memory-backed embedded Runtime が summary/status、worker list/detail/create、send input、stop/cancel、bounded transcript projection、event cursor/subscription placeholder、diagnostics を持つ。 +- `CreateWorkerRequest` は `WorkerIntent`、Profile selector、optional `ConfigBundleRef`、requested capabilities、optional workspace/mount refs を表現する。 +- `ConfigBundleRef` なしでも Runtime-local builtin/default resources の範囲で toolsなし Worker を作れる型/挙動にする。 +- `cargo test -p worker-runtime`、`cargo check -p yoi`、`git diff --check`、必要に応じて `nix build .#yoi --no-link` が通る。 + +Implementation latitude: +- Module分割、型名、内部 store/allocation trait/struct の詳細、event cursor/subscription placeholder の最小実装、memory worker の transcript/event 表現は Coder が既存コード規約に合わせて選んでよい。 +- v0 は actual LLM/provider integration なし、または toolsなし minimal Worker projection でよい。ただし acceptance criteria の create/send/stop/cancel/projection observable behavior はテストで示す。 + +Escalate if: +- `worker` crate の public API 大規模変更や socket/session compatibility 変更が必要になる。 +- HTTP/WS/FS/Backend integration/config bundle sync を実装しないと acceptance を満たせないと判明する。 +- `pod-store` / `pod-registry` の削除または standalone rename が必要になりそうになる。 +- Runtime public API authority に socket/session/path identity を混ぜる必要が出る。 + +Validation: +- `cargo fmt --all` +- `cargo test -p worker-runtime` +- `cargo check -p yoi` +- `git diff --check` +- 依存/packaging変更があるため可能なら `nix build .#yoi --no-link` + +Current code map: +- Add: `crates/worker-runtime/**`。 +- Update: root `Cargo.toml` workspace members/default-members/dependencies, `Cargo.lock` as needed, docs/tests only if needed for public API clarity。 +- Reference only as needed: `crates/worker/**` for single Worker host boundary, `crates/workspace-server/src/hosts.rs` for existing Backend registry/projection context。 +- Do not implement network/server/fs integration in this Ticket. + +Critical risks / reviewer focus: +- Scope creep into REST/WS/FS/Backend integration。 +- Runtime API leaking legacy `pod_name` / socket/session authority。 +- Re-exporting or duplicating too much of `worker` internals instead of a bounded Runtime API。 +- Store/allocation becoming standalone `worker-store` / `worker-registry` crates instead of internal boundaries。 +- Config bundle sync accidentally implemented instead of placeholder boundary。 + +--- + + + +## State changed + +Routing decision: implementation_ready。 + +Dashboard Queue による human-authorized routing を受け、Ticket body/thread、relations、orchestration plan、workspace state を確認した。`00001KVZD10ED` は closed、`00001KVZG9BMS` は done で relation blockers は解消済み。queued は本 Ticket 1件のみ、inprogress は 0 件。accepted plan と IntentPacket を thread / orchestration plan に記録済み。 + +これ以降、worktree creation / coder/reviewer Worker routing などの implementation side effect に進める。 + ---