diff --git a/.yoi/tickets/00001KVXK0WEA/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVXK0WEA/artifacts/orchestration-plan.jsonl index af9a6809..cce5a7c5 100644 --- a/.yoi/tickets/00001KVXK0WEA/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KVXK0WEA/artifacts/orchestration-plan.jsonl @@ -1 +1,2 @@ {"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"} +{"id":"orch-plan-20260625-070739-2","ticket_id":"00001KVXK0WEA","kind":"accepted_plan","accepted_plan":{"summary":"Ticket `00001KVXK0WEA` は prerequisite `00001KVXK0WE4` が done になったため implementation_ready。専用 worktree `/home/hare/Projects/yoi/.worktree/00001KVXK0WEA-plugin-pdk-service-events` と branch `work/00001KVXK0WEA-plugin-pdk-service-events` で、Plugin WIT / Rust PDK / embedded templates / docs を Component Model-only Service ingress event + output command + host-owned WebSocket model に合わせて更新する。Runtime実装の再設計や protocol-specific integration は non-goal。","branch":"work/00001KVXK0WEA-plugin-pdk-service-events","worktree":"/home/hare/Projects/yoi/.worktree/00001KVXK0WEA-plugin-pdk-service-events","role_plan":"Orchestrator: accept/routing, worktree creation, final integration/validation/cleanup. Coder: update WIT/PDK/templates/docs/authoring CLI fixtures in dedicated child worktree. Reviewer: read-only review focusing on PDK/template consistency with implemented runtime, no legacy raw-wasm compatibility, and no runtime reimplementation."},"author":"yoi-orchestrator","at":"2026-06-25T07:07:39Z"} diff --git a/.yoi/tickets/00001KVXK0WEA/item.md b/.yoi/tickets/00001KVXK0WEA/item.md index 6f495bfe..fa30af76 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:13:35Z' +updated_at: '2026-06-25T07:08:09Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-24T20:12:05Z' diff --git a/.yoi/tickets/00001KVXK0WEA/thread.md b/.yoi/tickets/00001KVXK0WEA/thread.md index 3abe110d..a0a0f3c9 100644 --- a/.yoi/tickets/00001KVXK0WEA/thread.md +++ b/.yoi/tickets/00001KVXK0WEA/thread.md @@ -30,4 +30,80 @@ Marked ready by `yoi ticket state`. Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- ユーザーから「続けて」と明示 follow-up があり、queued dependency chain の最終 Ticket として再確認した。 +- `00001KVXK0WEA` は WIT / PDK / templates / docs を、既に実装済みの Component Model-only runtime、Service lifecycle / ingress queue、Service output commands、host-owned WebSocket driver に合わせる finishing slice である。 +- outgoing `depends_on` は `00001KVXK0WE4` だが、`00001KVXK0WE4` は done / merged / reviewed / validated 済み。`TicketShow` derived blockers は空で、implementation acceptance blocker は残っていない。 +- bounded context check で `resources/plugin/wit/*`, `crates/plugin-pdk`, `resources/plugin/templates/rust-component-tool`, `crates/yoi/src/plugin_cli.rs`, `docs/development/plugin-development.md` 周辺に authoring-facing surfaces があることを確認した。Ticket は runtime 実装ではなく authoring surface alignment に限定されており、残る不確実性は local implementation / fixture update に閉じる。 + +Evidence checked: +- Ticket body / thread: `item.md`, `thread.md`。未解決 planning question は記録されていない。 +- Relations / orchestration plan: outgoing depends_on `00001KVXK0WE4` は done。routing 前 plan は historical blocked_by `00001KVXK0WE4` のみで、prerequisite 完了により解消済み。accepted plan `orch-plan-20260625-070739-2` を記録済み。 +- Related Tickets: `00001KVXK0WD3`, `00001KVXK0WDH`, `00001KVXK0WDQ`, `00001KVXK0WDX`, `00001KVXK0WE4` are done. +- Code/docs context: `resources/plugin/wit/*.wit`, `crates/plugin-pdk`, `resources/plugin/templates/rust-component-tool`, `crates/yoi/src/plugin_cli.rs`, `docs/development/plugin-development.md`。 +- Workspace state: `/home/hare/Projects/yoi/.worktree/orchestration` は clean。inprogress Ticket は 0 件。 + +IntentPacket: + +Intent: +- Plugin authoring surface (WIT, Rust PDK, embedded templates, docs, `yoi plugin new/check/pack` fixtures) を、Component Model-only runtime と Service ingress event / output command / host-owned WebSocket model に合わせて更新する。 + +Binding decisions / invariants: +- `plugin.toml` template は `wasm-component` runtime のみを生成する。 +- Service/WebSocket authoring pattern は polling `recv(timeout)` loop ではなく、ingress event handler + output command (`websocket_send`) を正とする。 +- Tool Plugin authoring support must continue to work. +- Runtime implementation from previous Tickets is not redesigned here; this Ticket updates WIT/PDK/templates/docs/tests to match it. +- No raw core-Wasm compatibility template or legacy runtime alias is introduced. +- No protocol-specific Discord/Slack integration, secret store/auth injection, or full reconnect policy is implemented. + +Requirements / acceptance criteria: +- WIT expresses Service ingress event payloads and output command model enough for authoring/tests. +- `yoi-plugin-pdk` exposes ergonomic Tool and Service/Ingress helpers aligned with runtime JSON envelopes. +- Embedded templates include current Tool template and a service-oriented template or equivalent examples using ingress event / output command pattern. +- `yoi plugin new` / `check` / `pack` are consistent with new templates/schema. +- Docs no longer recommend long-running `recv(timeout)` loop for Service WebSocket integration. +- Tests cover PDK helpers, template generation/check/pack, and docs/manifest fixture consistency. + +Implementation latitude: +- Exact WIT/interface names and Rust PDK helper APIs may follow existing PDK style, as long as runtime envelopes and docs are consistent. +- If a full new `plugin new` template name is too large, coder may add minimal service template/example plus CLI support needed to satisfy acceptance, but must keep scope bounded. +- Template wasm build/check may use existing test helpers and temporary target dirs. + +Escalate if: +- WIT/PDK update requires changing runtime JSON envelope semantics from previous Tickets. +- `yoi plugin new/check/pack` requires broad CLI redesign. +- Real WebSocket network/protocol integration or secret handling is needed. +- Legacy raw-WASM compatibility has to be restored for templates/tests. + +Validation: +- `cargo test -p yoi-plugin-pdk` +- `cargo test -p yoi plugin` or focused plugin CLI/template tests +- `cargo check -p yoi` +- `git diff --check` +- `nix build .#yoi --no-link` +- Template cargo-check if applicable, with cleanup of generated template artifacts. + +Current code/docs map: +- Primary: `resources/plugin/wit/*.wit`, `crates/plugin-pdk`, `resources/plugin/templates/rust-component-tool`, possible new template under `resources/plugin/templates/`, `crates/yoi/src/plugin_cli.rs`, `docs/development/plugin-development.md`。 +- Secondary: manifest tests/fixtures only as needed. +- Avoid: Pod runtime reimplementation, WebSocket driver changes unless minor doc/test alignment, protocol-specific integrations, secret store/auth injection, raw-WASM compatibility。 + +Critical risks / reviewer focus: +- PDK/template API drift from runtime JSON envelopes。 +- Tool template regression while adding Service support。 +- reintroducing `recv(timeout)` as recommended Service pattern。 +- template generation/check/pack writing outside destination or leaving build artifacts。 +- accidental legacy raw-WASM runtime compatibility in examples。 + +Next action: +- `queued -> inprogress` を記録してから worktree-workflow で `/home/hare/Projects/yoi/.worktree/00001KVXK0WEA-plugin-pdk-service-events` を作成し、multi-agent-workflow で Coder/Reviewer sibling loop に進める。 + ---