ticket: split plugin runtime redesign
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"version": 1,
|
||||
"relations": [
|
||||
{
|
||||
"ticket_id": "00001KVXK0WDX",
|
||||
"kind": "depends_on",
|
||||
"target": "00001KVXK0WDQ",
|
||||
"note": "Output commands are returned by service ingress dispatch.",
|
||||
"author": "yoi ticket",
|
||||
"at": "2026-06-24T19:55:30Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: 'Add Plugin service output command model'
|
||||
state: 'ready'
|
||||
created_at: '2026-06-24T19:51:56Z'
|
||||
updated_at: '2026-06-24T19:55:30Z'
|
||||
assignee: null
|
||||
---
|
||||
|
||||
## 背景
|
||||
|
||||
Service / Ingress Plugin が外部 event を処理した後、WebSocket send、HTTP request、diagnostic update などの side effect を直接 ambient authority で実行すると、grant boundary と observability が曖昧になる。Plugin は event handler の戻り値として output commands を返し、Host が manifest declaration / enablement grant / runtime policy を検査して実行する形にしたい。
|
||||
|
||||
この Ticket では WebSocket driver 実装前に、Service Plugin の output command envelope と grant check 境界を追加する。
|
||||
|
||||
## 要件
|
||||
|
||||
- `handle-ingress` / service event handler の戻り値に output command list を表現できる型を追加する。
|
||||
- v0 command kind を最小集合で定義する。
|
||||
- diagnostic/status update。
|
||||
- host request dispatch placeholder。
|
||||
- websocket send placeholder。
|
||||
- Command は correlation id / source event id / command id / kind / payload / requested_at を持つ。
|
||||
- Host が command ごとに manifest declaration と enablement grant を検査する。
|
||||
- Unsupported / ungranted / malformed command は fail closed で diagnostic に残す。
|
||||
- Command execution result は service status / run overview / diagnostics から追える形にする。
|
||||
- Tool Plugin の ordinary ToolOutput path と混同しない。
|
||||
|
||||
## Non-goals
|
||||
|
||||
- WebSocket send の実 transport 実装。
|
||||
- HTTP request dispatch command の完全実装。
|
||||
- Domain operation command の完成。
|
||||
- LLM history への hidden context injection。
|
||||
- Unrestricted shell / filesystem command。
|
||||
|
||||
## 受け入れ条件
|
||||
|
||||
- Service Plugin ingress handler が output command envelope を返せる。
|
||||
- Host が output command を parse / validate / grant-check する。
|
||||
- Ungranted command は実行されず、typed diagnostic になる。
|
||||
- Diagnostic/status update command のような safe v0 command が実行または記録される。
|
||||
- WebSocket send / request dispatch は placeholder command として grant-check 可能で、実 transport が無くても安全に unsupported として扱える。
|
||||
- Tool Plugin output と Service Plugin output command が型・docs・testsで区別されている。
|
||||
- `cargo test -p pod`、`cargo check -p yoi`、`git diff --check`、`nix build .#yoi --no-link` が通る。
|
||||
@@ -0,0 +1,24 @@
|
||||
<!-- event: create author: "yoi ticket" at: 2026-06-24T19:51:56Z -->
|
||||
|
||||
## 作成
|
||||
|
||||
LocalTicketBackend によって作成されました。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: intake_summary author: hare at: 2026-06-24T19:55:29Z -->
|
||||
|
||||
## Intake summary
|
||||
|
||||
Marked ready by `yoi ticket state`.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: "yoi ticket" at: 2026-06-24T19:55:29Z from: planning to: ready reason: cli_state field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Marked ready by `yoi ticket state`.
|
||||
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user