chore: update orchestration and plugin tickets

This commit is contained in:
2026-06-14 23:49:45 +09:00
parent adebedc021
commit d66dfbbbc2
35 changed files with 410 additions and 70 deletions
+9 -8
View File
@@ -2,7 +2,7 @@
title: 'Plugin distribution package format and discovery'
state: 'planning'
created_at: '2026-06-01T06:49:53Z'
updated_at: '2026-06-13T15:29:21Z'
updated_at: '2026-06-14T14:34:33Z'
---
## Background
@@ -13,8 +13,8 @@ MCP is intentionally not modeled as a Plugin package/runtime in this Ticket. MCP
The desired initial direction is a single-file plugin package that can be placed in user or workspace plugin stores, for example:
- `~/.config/yoi/plugins/<id>.yoi-plugin`
- `./.yoi/plugins/<id>.yoi-plugin`
- `${XDG_DATA_HOME:-~/.local/share}/yoi/plugins/<id>.yoi-plugin`
- `<workspace>/.yoi/plugins/<id>.yoi-plugin`
The package should be easy to copy, inspect, cache, and pin while preserving Yoi's scope, permission, history, prompt-context, and trust invariants. Workspace plugins may come from a repository checkout and must not execute merely because an archive exists under `./.yoi/plugins`.
@@ -26,10 +26,11 @@ The package should be easy to copy, inspect, cache, and pin while preserving Yoi
- Support packaged assets such as `module.wasm`, JSON schemas, README, and license files.
- Specify archive safety rules, including path traversal rejection, bounded extraction, and deterministic digest calculation.
- Define plugin stores and source/trust mapping.
- User plugin store: `~/.config/yoi/plugins/`.
- Workspace/project plugin store: `./.yoi/plugins/`.
- Map stores to the existing source vocabulary (`User`, `Project`/workspace, and future `Builtin`).
- Treat `user:<id>` and `project:<id>` as distinct plugin references; ambiguous unqualified IDs should fail closed.
- User plugin store: `${XDG_DATA_HOME:-~/.local/share}/yoi/plugins/`.
- Workspace/project plugin store: `<workspace>/.yoi/plugins/`.
- Builtin plugin source: Yoi-distributed `builtin:` registry.
- Map stores to the source vocabulary (`user`, `project`, `builtin`).
- Treat `user:<id>` and `project:<id>` as distinct plugin references; ambiguous unqualified IDs fail closed.
- Separate discovery from enablement.
- Yoi may discover plugin packages in configured stores.
- Discovered packages must not register Tools/Hooks, initialize WASM, start services, or start MCP servers until explicitly enabled by manifest/profile configuration.
@@ -80,7 +81,7 @@ The package should be easy to copy, inspect, cache, and pin while preserving Yoi
## Acceptance criteria
- The repository has a documented plugin distribution/package proposal covering user and workspace plugin stores, single-file archive format, manifest fields, archive safety, cache/digest behavior, and discovery vs enablement.
- The proposal explicitly states that placing a package in `~/.config/yoi/plugins/` or `./.yoi/plugins/` is discovery only, not execution or registration.
- The proposal explicitly states that placing a package in `${XDG_DATA_HOME:-~/.local/share}/yoi/plugins/` or `<workspace>/.yoi/plugins/` is discovery only, not execution or registration.
- The design maps package sources to user/project/builtin trust categories and defines how ID collisions and ambiguous selectors are handled.
- The design explains Plugin permission requests/grants as Plugin-layer policy, distinct from `pod::feature` authority/grant concepts.
- Runtime-specific notes cover declarative hooks and WASM packages; MCP is called out as a separate feature-backed integration, not part of initial Plugin packaging.
+13
View File
@@ -37,4 +37,17 @@ Distribution direction from user discussion:
- `00001KSXRQ4G8``00001KT0Z4BK8` は Plugin permission を Plugin layer として扱い、MCP を初期 Plugin packaging/runtime から分離する。
---
<!-- event: decision author: hare at: 2026-06-14T14:34:33Z -->
## Decision
決定:
- Plugin discovery stores, source-qualified identity, discovery/enablement separation, Pod-startup initialization timing, restore behavior, and MCP boundaryをこの `00001KT0Z4BK8` の安定 contract として統合した。
- User Plugin package store は `${XDG_DATA_HOME:-~/.local/share}/yoi/plugins/` とし、`~/.config/yoi/plugins/` は使わない。
- Package presence は discovery only であり、実行・登録・runtime initialization は explicit enablement 後の Pod startup に限定する。
- Restore は metadata snapshot の enabled Plugin plan を正本とし、fresh discovery で silent upgrade しない。
---