yoi/.yoi/tickets/00001KVXK0WEA/thread.md

6.3 KiB

作成

LocalTicketBackend によって作成されました。


Intake summary

Marked ready by yoi ticket state.


State changed

Marked ready by yoi ticket state.


State changed

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_on00001KVXK0WE4 だが、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 に進める。