From f858e015b19e7c8ccc7e2c74c89befccce2e72a8 Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 26 Jun 2026 01:39:23 +0900 Subject: [PATCH] ticket: ready worker runtime followups --- .yoi/tickets/00001KVV01P5Z/item.md | 2 +- .yoi/tickets/00001KVV01P5Z/thread.md | 42 ++++++++++++++++++++++++++++ .yoi/tickets/00001KVZ9JGK0/item.md | 4 +-- .yoi/tickets/00001KVZ9JGK0/thread.md | 17 +++++++++++ .yoi/tickets/00001KVZKST83/item.md | 4 +-- .yoi/tickets/00001KVZKST83/thread.md | 17 +++++++++++ .yoi/tickets/00001KVZKSTE2/item.md | 4 +-- .yoi/tickets/00001KVZKSTE2/thread.md | 17 +++++++++++ .yoi/tickets/00001KVZKSTJT/item.md | 24 ++++++++-------- .yoi/tickets/00001KVZKSTJT/thread.md | 17 +++++++++++ .yoi/tickets/00001KVZQHPNY/item.md | 4 +-- .yoi/tickets/00001KVZQHPNY/thread.md | 17 +++++++++++ 12 files changed, 148 insertions(+), 21 deletions(-) diff --git a/.yoi/tickets/00001KVV01P5Z/item.md b/.yoi/tickets/00001KVV01P5Z/item.md index ebce0008..a3b29727 100644 --- a/.yoi/tickets/00001KVV01P5Z/item.md +++ b/.yoi/tickets/00001KVV01P5Z/item.md @@ -2,7 +2,7 @@ title: 'Planning Ticket API and UI without queue operations' state: 'planning' created_at: '2026-06-23T19:41:51Z' -updated_at: '2026-06-23T19:41:51Z' +updated_at: '2026-06-25T16:38:49Z' assignee: null --- diff --git a/.yoi/tickets/00001KVV01P5Z/thread.md b/.yoi/tickets/00001KVV01P5Z/thread.md index 0e5cf7db..eb737743 100644 --- a/.yoi/tickets/00001KVV01P5Z/thread.md +++ b/.yoi/tickets/00001KVV01P5Z/thread.md @@ -4,4 +4,46 @@ LocalTicketBackend によって作成されました。 +--- + + + +## Intake summary + +Marked ready by `yoi ticket state`. + +--- + + + +## State changed + +Marked ready by `yoi ticket state`. + + +--- + + + +## State changed + +State changed to `planning`. + + +--- + + + +## Decision + +Returned to planning because the ticket is too broad in the current Runtime direction. + +Planning Ticket creation from Web UI should not be a direct form-to-file mutation that bypasses Intake. The intended flow likely needs Backend embedded Runtime + Intake Worker first, then Web Intake/Planning UI on top. + +Suggested split: +1. Ticket read API / list-detail UI only. +2. Backend embedded Intake Worker on worker-runtime. +3. Web Intake Console / Planning Ticket creation through Intake. + + --- diff --git a/.yoi/tickets/00001KVZ9JGK0/item.md b/.yoi/tickets/00001KVZ9JGK0/item.md index 7dbdf656..867b9cb6 100644 --- a/.yoi/tickets/00001KVZ9JGK0/item.md +++ b/.yoi/tickets/00001KVZ9JGK0/item.md @@ -1,8 +1,8 @@ --- title: 'Backend内蔵Companion RuntimeとWeb Console MVP' -state: 'planning' +state: 'ready' created_at: '2026-06-25T11:45:17Z' -updated_at: '2026-06-25T13:25:34Z' +updated_at: '2026-06-25T16:34:16Z' assignee: null --- diff --git a/.yoi/tickets/00001KVZ9JGK0/thread.md b/.yoi/tickets/00001KVZ9JGK0/thread.md index 06b52008..804eaf7b 100644 --- a/.yoi/tickets/00001KVZ9JGK0/thread.md +++ b/.yoi/tickets/00001KVZ9JGK0/thread.md @@ -4,4 +4,21 @@ LocalTicketBackend によって作成されました。 +--- + + + +## Intake summary + +Marked ready by `yoi ticket state`. + +--- + + + +## State changed + +Marked ready by `yoi ticket state`. + + --- diff --git a/.yoi/tickets/00001KVZKST83/item.md b/.yoi/tickets/00001KVZKST83/item.md index b1bfa159..f23fab5c 100644 --- a/.yoi/tickets/00001KVZKST83/item.md +++ b/.yoi/tickets/00001KVZKST83/item.md @@ -1,8 +1,8 @@ --- title: 'worker-runtimeにFS永続化featureを追加する' -state: 'planning' +state: 'ready' created_at: '2026-06-25T14:44:02Z' -updated_at: '2026-06-25T14:47:43Z' +updated_at: '2026-06-25T16:34:16Z' assignee: null --- diff --git a/.yoi/tickets/00001KVZKST83/thread.md b/.yoi/tickets/00001KVZKST83/thread.md index 75956083..aba86ab5 100644 --- a/.yoi/tickets/00001KVZKST83/thread.md +++ b/.yoi/tickets/00001KVZKST83/thread.md @@ -4,4 +4,21 @@ LocalTicketBackend によって作成されました。 +--- + + + +## Intake summary + +Marked ready by `yoi ticket state`. + +--- + + + +## State changed + +Marked ready by `yoi ticket state`. + + --- diff --git a/.yoi/tickets/00001KVZKSTE2/item.md b/.yoi/tickets/00001KVZKSTE2/item.md index 410dcd61..56f00714 100644 --- a/.yoi/tickets/00001KVZKSTE2/item.md +++ b/.yoi/tickets/00001KVZKSTE2/item.md @@ -1,8 +1,8 @@ --- title: 'worker-runtimeにREST command serverを追加する' -state: 'planning' +state: 'ready' created_at: '2026-06-25T14:44:02Z' -updated_at: '2026-06-25T14:47:43Z' +updated_at: '2026-06-25T16:34:16Z' assignee: null --- diff --git a/.yoi/tickets/00001KVZKSTE2/thread.md b/.yoi/tickets/00001KVZKSTE2/thread.md index 75956083..aba86ab5 100644 --- a/.yoi/tickets/00001KVZKSTE2/thread.md +++ b/.yoi/tickets/00001KVZKSTE2/thread.md @@ -4,4 +4,21 @@ LocalTicketBackend によって作成されました。 +--- + + + +## Intake summary + +Marked ready by `yoi ticket state`. + +--- + + + +## State changed + +Marked ready by `yoi ticket state`. + + --- diff --git a/.yoi/tickets/00001KVZKSTJT/item.md b/.yoi/tickets/00001KVZKSTJT/item.md index bd11b7a4..78d033d4 100644 --- a/.yoi/tickets/00001KVZKSTJT/item.md +++ b/.yoi/tickets/00001KVZKSTJT/item.md @@ -1,8 +1,8 @@ --- -title: 'worker-runtimeにevent stream serverを追加する' -state: 'planning' +title: 'worker-runtimeにWebSocket event stream serverを追加する' +state: 'ready' created_at: '2026-06-25T14:44:02Z' -updated_at: '2026-06-25T14:47:43Z' +updated_at: '2026-06-25T16:34:16Z' assignee: null --- @@ -10,16 +10,16 @@ assignee: null Runtime command は REST/HTTP でよいが、Worker output / status / transcript update を Backend が追うには observation transport が必要になる。Runtime から Backend へ能動接続する相互型は v0 では採用せず、Backend が Runtime の event stream に接続する形にする。Browser は Runtime event stream に直接接続せず、Backend が proxy / projection する。 -この Ticket では `worker-runtime` process に SSE または WebSocket based observation server を追加する。実装時に SSE / WebSocket のどちらを v0 にするか決めてよいが、command API とは分離する。 +この Ticket では `worker-runtime` process に WebSocket based observation server を追加する。SSE は将来追加してよいが、v0 の実装対象は Backend-owned WebSocket client が接続する Runtime event stream とする。command API とは分離する。 ## 要件 -- `worker-runtime` に `event-stream` または `ws-server` feature を追加する。 +- `worker-runtime` に `ws-server` feature を追加する。 - Feature disabled 時、core library は stream server dependency を強制しない。 -- Runtime process が Worker / Runtime events を observation endpoint で公開できる。 +- Runtime process が Worker / Runtime events を WebSocket observation endpoint で公開できる。 - Endpoint は少なくとも以下のどちらかを扱う。 - - `GET /v1/events?cursor=...` - - `GET /v1/workers/{worker_id}/events?cursor=...` + - `GET /v1/events/ws?cursor=...` + - `GET /v1/workers/{worker_id}/events/ws?cursor=...` - Event stream は Runtime lib の event bus / event log を元にする。 - Event cursor / event id は Runtime local opaque id とする。 - Reconnect / cursor resume / bounded backlog / unknown cursor の扱いを typed にする。 @@ -36,13 +36,13 @@ Runtime command は REST/HTTP でよいが、Worker output / status / transcript ## 受け入れ条件 -- `worker-runtime` に optional observation transport feature がある。 +- `worker-runtime` に optional `ws-server` feature がある。 - Feature disabled でも `worker-runtime` core が compile できる。 -- Runtime process exposes worker/runtime event stream endpoint. +- Runtime process exposes worker/runtime WebSocket event stream endpoint. - Backend client can reconnect with cursor / last event id semantics at the protocol level. - Unknown cursor / expired cursor / worker not found are typed errors or stream diagnostics. -- Event stream tests cover at least connect, event delivery, cursor resume, and worker-scoped filtering. -- `cargo test -p worker-runtime --features event-stream` または該当 feature が通る。 +- WebSocket event stream tests cover at least connect, event delivery, cursor resume, and worker-scoped filtering. +- `cargo test -p worker-runtime --features ws-server` が通る。 - `cargo check -p yoi` が通る。 - `git diff --check` が通る。 - `nix build .#yoi --no-link` が通る。 diff --git a/.yoi/tickets/00001KVZKSTJT/thread.md b/.yoi/tickets/00001KVZKSTJT/thread.md index 75956083..aba86ab5 100644 --- a/.yoi/tickets/00001KVZKSTJT/thread.md +++ b/.yoi/tickets/00001KVZKSTJT/thread.md @@ -4,4 +4,21 @@ LocalTicketBackend によって作成されました。 +--- + + + +## Intake summary + +Marked ready by `yoi ticket state`. + +--- + + + +## State changed + +Marked ready by `yoi ticket state`. + + --- diff --git a/.yoi/tickets/00001KVZQHPNY/item.md b/.yoi/tickets/00001KVZQHPNY/item.md index ac592b6e..b8b52261 100644 --- a/.yoi/tickets/00001KVZQHPNY/item.md +++ b/.yoi/tickets/00001KVZQHPNY/item.md @@ -1,8 +1,8 @@ --- title: 'RuntimeへProfile/config bundleを同期する' -state: 'planning' +state: 'ready' created_at: '2026-06-25T15:49:30Z' -updated_at: '2026-06-25T15:51:07Z' +updated_at: '2026-06-25T16:34:16Z' assignee: null --- diff --git a/.yoi/tickets/00001KVZQHPNY/thread.md b/.yoi/tickets/00001KVZQHPNY/thread.md index 2c4148db..8b7d847c 100644 --- a/.yoi/tickets/00001KVZQHPNY/thread.md +++ b/.yoi/tickets/00001KVZQHPNY/thread.md @@ -4,4 +4,21 @@ LocalTicketBackend によって作成されました。 +--- + + + +## Intake summary + +Marked ready by `yoi ticket state`. + +--- + + + +## State changed + +Marked ready by `yoi ticket state`. + + ---