From f65f0e3b8fef6c1e5a547986c3ab6c251bc54ebd Mon Sep 17 00:00:00 2001 From: Hare Date: Thu, 25 Jun 2026 05:13:59 +0900 Subject: [PATCH] ticket: route plugin runtime cleanup chain --- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVXK0WD3/item.md | 2 +- .yoi/tickets/00001KVXK0WD3/thread.md | 74 +++++++++++++++++++ .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVXK0WDH/item.md | 2 +- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVXK0WDQ/item.md | 2 +- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVXK0WDX/item.md | 2 +- .../artifacts/orchestration-plan.jsonl | 2 + .yoi/tickets/00001KVXK0WE4/item.md | 2 +- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVXK0WEA/item.md | 2 +- 13 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 .yoi/tickets/00001KVXK0WD3/artifacts/orchestration-plan.jsonl create mode 100644 .yoi/tickets/00001KVXK0WDH/artifacts/orchestration-plan.jsonl create mode 100644 .yoi/tickets/00001KVXK0WDQ/artifacts/orchestration-plan.jsonl create mode 100644 .yoi/tickets/00001KVXK0WDX/artifacts/orchestration-plan.jsonl create mode 100644 .yoi/tickets/00001KVXK0WE4/artifacts/orchestration-plan.jsonl create mode 100644 .yoi/tickets/00001KVXK0WEA/artifacts/orchestration-plan.jsonl diff --git a/.yoi/tickets/00001KVXK0WD3/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVXK0WD3/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..1ab5bd5b --- /dev/null +++ b/.yoi/tickets/00001KVXK0WD3/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260624-201247-1","ticket_id":"00001KVXK0WD3","kind":"accepted_plan","accepted_plan":{"summary":"Ticket `00001KVXK0WD3` は dependency chain の先頭で implementation_ready。専用 worktree `/home/hare/Projects/yoi/.worktree/00001KVXK0WD3-remove-legacy-wasm-runtime` と branch `work/00001KVXK0WD3-remove-legacy-wasm-runtime` で、Pod runtime 内の `LegacyToolAdapter` / raw-WASM active execution path を削除し、Component Model path を唯一の active execution path にする。Manifest/CLI diagnostics rejection は後続 `00001KVXK0WDH` の範囲に残す。","branch":"work/00001KVXK0WD3-remove-legacy-wasm-runtime","worktree":"/home/hare/Projects/yoi/.worktree/00001KVXK0WD3-remove-legacy-wasm-runtime","role_plan":"Orchestrator: accept/routing, worktree creation, final integration/validation/cleanup. Coder: remove active legacy raw-WASM runtime path in dedicated child worktree. Reviewer: read-only review focusing on preserving component Tool execution, grants, discovery/enablement/ToolRegistry, and not implementing manifest/CLI rejection slice."},"author":"yoi-orchestrator","at":"2026-06-24T20:12:47Z"} diff --git a/.yoi/tickets/00001KVXK0WD3/item.md b/.yoi/tickets/00001KVXK0WD3/item.md index e0ac4924..d0699917 100644 --- a/.yoi/tickets/00001KVXK0WD3/item.md +++ b/.yoi/tickets/00001KVXK0WD3/item.md @@ -2,7 +2,7 @@ title: 'Remove legacy raw WASM Plugin runtime' state: 'queued' created_at: '2026-06-24T19:51:56Z' -updated_at: '2026-06-24T20:11:56Z' +updated_at: '2026-06-24T20:13:18Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-24T20:11:56Z' diff --git a/.yoi/tickets/00001KVXK0WD3/thread.md b/.yoi/tickets/00001KVXK0WD3/thread.md index 85ba252c..e48fbb70 100644 --- a/.yoi/tickets/00001KVXK0WD3/thread.md +++ b/.yoi/tickets/00001KVXK0WD3/thread.md @@ -30,4 +30,78 @@ Marked ready by `yoi ticket state`. Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Dashboard Queue により人間が Orchestrator routing を許可した queued Ticket として確認した。 +- Ticket body は legacy raw `wasm` runtime redesign のうち最初の concrete slice として、Pod runtime 内の `PluginInstanceRuntime::LegacyToolAdapter` 相当 active execution path を削除し、`wasm-component` / Component Model path を唯一の active runtime path にする範囲に限定している。 +- Manifest / CLI diagnostics rejection、Service / Ingress event queue、WebSocket driver、WIT / PDK / templates は明示的に non-goal / 後続 Ticket に分割されている。 +- `TicketRelationQuery` は 1 件で、この Ticket は後続 Ticket から参照される dependency chain の先頭であり、blocking outgoing dependency はない。 +- `TicketOrchestrationPlanQuery` は routing 前 plan 0 件。accepted plan `orch-plan-20260624-201247-1` を記録済み。 +- bounded context check で `crates/pod/src/feature/plugin.rs` の `LegacyToolAdapter` / raw `wasm` active path、`crates/manifest/src/plugin.rs` と `crates/yoi/src/plugin_cli.rs` の legacy manifest/diagnostic fixtures、docs の transitional runtime 記述を確認した。Ticket は manifest rejection を後続 Ticket に分けているため、残る不確実性は local implementation / test update に収まる。 + +Evidence checked: +- Ticket body / thread: `item.md`, `thread.md`。thread は create、planning->ready、ready->queued のみで未解決 blocker は記録されていない。 +- Relations / orchestration plan: relation 1 件(後続 Ticket がこの Ticket に依存する view)、routing 前 plan 0 件。 +- Code/docs context: `crates/pod/src/feature/plugin.rs` の `LegacyToolAdapter` / raw WASM handling、`crates/manifest/src/plugin.rs` / `crates/yoi/src/plugin_cli.rs` の legacy runtime constants/tests、Plugin docs の current transition notes。 +- Workspace state: `/home/hare/Projects/yoi/.worktree/orchestration` は clean。inprogress Ticket は 0 件。 +- Queue context: 他の queued Plugin follow-up Tickets は dependency chain 上でこの Ticket の完了後に進める。 + +IntentPacket: + +Intent: +- Pod Plugin runtime の active execution path から legacy raw core-WASM Tool adapter を削除し、Plugin Tool execution を Component Model runtime path に一本化する。 + +Binding decisions / invariants: +- この Ticket では active runtime execution path を整理する。Manifest / CLI の外向き rejection UX は後続 `00001KVXK0WDH` の範囲として残す。 +- Component Model Plugin Tool execution、Host API grant boundary、package discovery、enablement、digest pinning、ToolRegistry registration は維持する。 +- raw core-WASM path を compatibility fallback として active execution に残さない。 +- Service / Ingress event runtime、WebSocket driver、WIT/PDK/templates service event update は実装しない。 +- broad Plugin redesign や public registry/install/update policy に範囲を広げない。 + +Requirements / acceptance criteria: +- `PluginInstanceRuntime::LegacyToolAdapter` または同等の legacy raw-WASM adapter が active runtime から削除される。 +- raw `wasm` runtime を通じた Plugin Tool execution path が使われない。 +- Component Model Plugin Tool execution tests が通る。 +- Legacy runtime 削除に伴う dead code / dead tests / obsolete fixtures が整理される。 +- Discovery / enablement / Tool registration / grant validation の既存挙動が壊れない。 + +Implementation latitude: +- `PluginInstanceRuntime` enum の shape を単一 component path に畳むか、名前を残して variant を整理するかは既存 code style に合わせてよい。 +- Manifest layer の legacy constants/tests は、active runtime removal に必要な最小限だけ調整してよい。ただし user-facing rejection/diagnostic completion は後続 Ticket に残す。 +- Docs の compatibility/transitional wording は、active runtime removal と矛盾する部分を最小限更新してよい。 + +Escalate if: +- Component Model path だけでは既存 Tool execution / grant validation / ToolRegistry registration を維持できない。 +- Manifest/CLI outward rejection を同時実装しないと build/test が成立しない。 +- Wasmtime/component runtime limits or sandbox boundaries を再設計する必要がある。 +- Service/Ingress/WebSocket/WIT/PDK の設計変更が必要になる。 + +Validation: +- `cargo test -p pod` +- `cargo check -p yoi` +- `git diff --check` +- `nix build .#yoi --no-link` +- 必要に応じて focused Plugin tests / `cargo test -p manifest` / `cargo test -p yoi plugin_cli`。 + +Current code/docs map: +- Primary: `crates/pod/src/feature/plugin.rs`。 +- Secondary: `crates/manifest/src/plugin.rs`, `crates/yoi/src/plugin_cli.rs`, Plugin docs/templates only as needed for active runtime removal consistency。 +- Avoid: full service runtime, WebSocket driver, WIT/PDK event model, remote plugin registry, root/original workspace operations。 + +Critical risks / reviewer focus: +- legacy raw-WASM execution path accidentally remains as fallback。 +- Component Model Tool execution regression。 +- host API grant / digest pinning / enablement / ToolRegistry registration regression。 +- scope creep into manifest rejection or Service/Ingress runtime beyond this slice。 + +Next action: +- `queued -> inprogress` を記録してから worktree-workflow で `/home/hare/Projects/yoi/.worktree/00001KVXK0WD3-remove-legacy-wasm-runtime` を作成し、multi-agent-workflow で Coder/Reviewer sibling loop に進める。 + --- diff --git a/.yoi/tickets/00001KVXK0WDH/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVXK0WDH/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..08df497d --- /dev/null +++ b/.yoi/tickets/00001KVXK0WDH/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260624-201335-1","ticket_id":"00001KVXK0WDH","kind":"blocked_by","related_ticket":"00001KVXK0WD3","note":"Queue review: `00001KVXK0WDH` は manifest/CLI rejection slice だが、active legacy runtime path removal `00001KVXK0WD3` に depends_on している。`00001KVXK0WD3` を先に受理し、この Ticket は dependency completion 後に再 routing する。","author":"yoi-orchestrator","at":"2026-06-24T20:13:35Z"} diff --git a/.yoi/tickets/00001KVXK0WDH/item.md b/.yoi/tickets/00001KVXK0WDH/item.md index 5ef659e2..3755d988 100644 --- a/.yoi/tickets/00001KVXK0WDH/item.md +++ b/.yoi/tickets/00001KVXK0WDH/item.md @@ -2,7 +2,7 @@ title: 'Reject legacy Plugin runtime in manifest and CLI diagnostics' state: 'queued' created_at: '2026-06-24T19:51:56Z' -updated_at: '2026-06-24T20:11:58Z' +updated_at: '2026-06-24T20:13:35Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-24T20:11:58Z' diff --git a/.yoi/tickets/00001KVXK0WDQ/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVXK0WDQ/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..17d18943 --- /dev/null +++ b/.yoi/tickets/00001KVXK0WDQ/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260624-201335-1","ticket_id":"00001KVXK0WDQ","kind":"blocked_by","related_ticket":"00001KVXK0WDH","note":"Queue review: `00001KVXK0WDQ` は Service lifecycle / ingress queue runtime slice だが、Component Model-only runtime authority / manifest rejection slice `00001KVXK0WDH` に depends_on している。prerequisite completion 後に再 routing する。","author":"yoi-orchestrator","at":"2026-06-24T20:13:35Z"} diff --git a/.yoi/tickets/00001KVXK0WDQ/item.md b/.yoi/tickets/00001KVXK0WDQ/item.md index 0e6a174c..957ae605 100644 --- a/.yoi/tickets/00001KVXK0WDQ/item.md +++ b/.yoi/tickets/00001KVXK0WDQ/item.md @@ -2,7 +2,7 @@ title: 'Define Plugin Service lifecycle and ingress queue runtime' state: 'queued' created_at: '2026-06-24T19:51:56Z' -updated_at: '2026-06-24T20:12:00Z' +updated_at: '2026-06-24T20:13:35Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-24T20:12:00Z' diff --git a/.yoi/tickets/00001KVXK0WDX/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVXK0WDX/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..b85a9c6d --- /dev/null +++ b/.yoi/tickets/00001KVXK0WDX/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260624-201335-1","ticket_id":"00001KVXK0WDX","kind":"blocked_by","related_ticket":"00001KVXK0WDQ","note":"Queue review: `00001KVXK0WDX` は service output command model slice だが、output commands are returned by service ingress dispatch のため `00001KVXK0WDQ` に depends_on している。prerequisite completion 後に再 routing する。","author":"yoi-orchestrator","at":"2026-06-24T20:13:35Z"} diff --git a/.yoi/tickets/00001KVXK0WDX/item.md b/.yoi/tickets/00001KVXK0WDX/item.md index 154986c1..d444cfba 100644 --- a/.yoi/tickets/00001KVXK0WDX/item.md +++ b/.yoi/tickets/00001KVXK0WDX/item.md @@ -2,7 +2,7 @@ title: 'Add Plugin service output command model' state: 'queued' created_at: '2026-06-24T19:51:56Z' -updated_at: '2026-06-24T20:12:02Z' +updated_at: '2026-06-24T20:13:35Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-24T20:12:02Z' diff --git a/.yoi/tickets/00001KVXK0WE4/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVXK0WE4/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..66d80a4b --- /dev/null +++ b/.yoi/tickets/00001KVXK0WE4/artifacts/orchestration-plan.jsonl @@ -0,0 +1,2 @@ +{"id":"orch-plan-20260624-201335-1","ticket_id":"00001KVXK0WE4","kind":"blocked_by","related_ticket":"00001KVXK0WDQ","note":"Queue review: `00001KVXK0WE4` は WebSocket driver slice だが、service ingress queue `00001KVXK0WDQ` と output command model `00001KVXK0WDX` に depends_on している。両 prerequisite completion 後に再 routing する。","author":"yoi-orchestrator","at":"2026-06-24T20:13:35Z"} +{"id":"orch-plan-20260624-201341-2","ticket_id":"00001KVXK0WE4","kind":"blocked_by","related_ticket":"00001KVXK0WDX","note":"Queue review: `00001KVXK0WE4` は output command dispatch/grant model `00001KVXK0WDX` にも depends_on している。`00001KVXK0WDQ` と `00001KVXK0WDX` の両方が完了するまで acceptance しない。","author":"yoi-orchestrator","at":"2026-06-24T20:13:41Z"} diff --git a/.yoi/tickets/00001KVXK0WE4/item.md b/.yoi/tickets/00001KVXK0WE4/item.md index 8cef2761..0788ffe9 100644 --- a/.yoi/tickets/00001KVXK0WE4/item.md +++ b/.yoi/tickets/00001KVXK0WE4/item.md @@ -2,7 +2,7 @@ title: 'Add host-owned WebSocket driver for Plugin services' state: 'queued' created_at: '2026-06-24T19:51:56Z' -updated_at: '2026-06-24T20:12:03Z' +updated_at: '2026-06-24T20:13:41Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-24T20:12:03Z' diff --git a/.yoi/tickets/00001KVXK0WEA/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVXK0WEA/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..af9a6809 --- /dev/null +++ b/.yoi/tickets/00001KVXK0WEA/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260624-201335-1","ticket_id":"00001KVXK0WEA","kind":"blocked_by","related_ticket":"00001KVXK0WE4","note":"Queue review: `00001KVXK0WEA` は WIT/PDK/templates finishing slice で、implemented WebSocket event/command model `00001KVXK0WE4` に depends_on している。prerequisite completion 後に再 routing する。","author":"yoi-orchestrator","at":"2026-06-24T20:13:35Z"} diff --git a/.yoi/tickets/00001KVXK0WEA/item.md b/.yoi/tickets/00001KVXK0WEA/item.md index d3fa144c..6f495bfe 100644 --- a/.yoi/tickets/00001KVXK0WEA/item.md +++ b/.yoi/tickets/00001KVXK0WEA/item.md @@ -2,7 +2,7 @@ title: 'Update Plugin WIT PDK templates for service event runtime' state: 'queued' created_at: '2026-06-24T19:51:56Z' -updated_at: '2026-06-24T20:12:05Z' +updated_at: '2026-06-24T20:13:35Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-24T20:12:05Z'