From ec4ada946494b069092489dffe516f4e05541981 Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 26 Jun 2026 14:49:45 +0900 Subject: [PATCH] ticket: accept remote runtime registry --- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVZ9JGK0/item.md | 2 +- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVZQHPNY/item.md | 2 +- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVZSGT14/item.md | 4 +- .yoi/tickets/00001KVZSGT14/thread.md | 74 +++++++++++++++++++ .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KW04A8K6/item.md | 2 +- 9 files changed, 83 insertions(+), 5 deletions(-) diff --git a/.yoi/tickets/00001KVZ9JGK0/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVZ9JGK0/artifacts/orchestration-plan.jsonl index 340ec974..2ad7c50d 100644 --- a/.yoi/tickets/00001KVZ9JGK0/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KVZ9JGK0/artifacts/orchestration-plan.jsonl @@ -1,2 +1,3 @@ {"id":"orch-plan-20260625-164513-1","ticket_id":"00001KVZ9JGK0","kind":"blocked_by","related_ticket":"00001KVZSGT0Q","note":"Queue routing checked after Dashboard Queue. Backend internal Companion Runtime/Web Console depends on embedded worker-runtime Backend Registry connection `00001KVZSGT0Q`, which is still queued and itself blocked by earlier worker-runtime/core/Backend foundation dependencies. Do not start MVP implementation until that dependency chain is completed.","author":"yoi-orchestrator","at":"2026-06-25T16:45:13Z"} {"id":"orch-plan-20260625-203613-2","ticket_id":"00001KVZ9JGK0","kind":"blocked_by","related_ticket":"00001KVZKSTJT","note":"Queue routing checked after requeue. Companion Web Console MVP depends on WebSocket/event-stream transport decision/proxy `00001KVZKSTJT` and backend embedded runtime connection. `00001KVZKSTJT` is queued/blocked by REST command server, so this Ticket remains queued.","author":"yoi-orchestrator","at":"2026-06-25T20:36:13Z"} +{"id":"orch-plan-20260626-054930-3","ticket_id":"00001KVZ9JGK0","kind":"waiting_capacity_note","note":"Web Console MVP is left queued while remote Runtime process connection `00001KVZSGT14` is accepted/inprogress. Although embedded Runtime and WS proxy are done, Web Console work would touch similar Backend/API surfaces and should wait until remote source routing stabilizes.","author":"yoi-orchestrator","at":"2026-06-26T05:49:30Z"} diff --git a/.yoi/tickets/00001KVZ9JGK0/item.md b/.yoi/tickets/00001KVZ9JGK0/item.md index 9355cde6..730ed8ac 100644 --- a/.yoi/tickets/00001KVZ9JGK0/item.md +++ b/.yoi/tickets/00001KVZ9JGK0/item.md @@ -2,7 +2,7 @@ title: 'Backend内蔵Companion RuntimeとWeb Console MVP' state: 'queued' created_at: '2026-06-25T11:45:17Z' -updated_at: '2026-06-25T20:36:54Z' +updated_at: '2026-06-26T05:49:30Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-25T20:34:27Z' diff --git a/.yoi/tickets/00001KVZQHPNY/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVZQHPNY/artifacts/orchestration-plan.jsonl index 4453977e..e656a53c 100644 --- a/.yoi/tickets/00001KVZQHPNY/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KVZQHPNY/artifacts/orchestration-plan.jsonl @@ -1,3 +1,4 @@ {"id":"orch-plan-20260625-164457-1","ticket_id":"00001KVZQHPNY","kind":"blocked_by","related_ticket":"00001KVZBCQH4","note":"Queue routing checked after Dashboard Queue. Profile/config bundle sync depends on worker-runtime core `00001KVZBCQH4`, which is currently inprogress and under review. Do not start sync implementation until core CreateWorkerRequest/Profile boundary is reviewed/merged/done.","author":"yoi-orchestrator","at":"2026-06-25T16:44:57Z"} {"id":"orch-plan-20260625-165606-2","ticket_id":"00001KVZQHPNY","kind":"waiting_capacity_note","note":"Core dependency is now done, but this bundle-sync Ticket is left queued in this acceptance pass because Backend Registry foundation and FS store were accepted first. Bundle sync likely touches `worker-runtime` creation/profile boundary and Backend Registry availability semantics, so it should start after at least the foundation branch shape is reviewed or merged to avoid design/API churn.","author":"yoi-orchestrator","at":"2026-06-25T16:56:06Z"} {"id":"orch-plan-20260626-051843-3","ticket_id":"00001KVZQHPNY","kind":"waiting_capacity_note","note":"Core/foundation dependencies are now done, but config bundle sync is left queued while embedded Backend RuntimeRegistry connection `00001KVZSGT0Q` is accepted/inprogress. Bundle sync likely touches worker creation/profile boundary and Backend Registry availability semantics; start after embedded connection branch shape is reviewed or merged to avoid API churn.","author":"yoi-orchestrator","at":"2026-06-26T05:18:43Z"} +{"id":"orch-plan-20260626-054922-4","ticket_id":"00001KVZQHPNY","kind":"waiting_capacity_note","note":"Config bundle sync is left queued while remote Runtime process connection `00001KVZSGT14` is accepted/inprogress. The relation says v0 remote integration can use builtin/default fallback, and starting both would risk churn in worker creation/config routing surfaces.","author":"yoi-orchestrator","at":"2026-06-26T05:49:22Z"} diff --git a/.yoi/tickets/00001KVZQHPNY/item.md b/.yoi/tickets/00001KVZQHPNY/item.md index 3260433b..69f4ba6f 100644 --- a/.yoi/tickets/00001KVZQHPNY/item.md +++ b/.yoi/tickets/00001KVZQHPNY/item.md @@ -2,7 +2,7 @@ title: 'RuntimeへProfile/config bundleを同期する' state: 'queued' created_at: '2026-06-25T15:49:30Z' -updated_at: '2026-06-26T05:18:43Z' +updated_at: '2026-06-26T05:49:22Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-25T16:44:39Z' diff --git a/.yoi/tickets/00001KVZSGT14/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVZSGT14/artifacts/orchestration-plan.jsonl index fa6195d1..94c69243 100644 --- a/.yoi/tickets/00001KVZSGT14/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KVZSGT14/artifacts/orchestration-plan.jsonl @@ -1 +1,2 @@ {"id":"orch-plan-20260625-203613-1","ticket_id":"00001KVZSGT14","kind":"blocked_by","related_ticket":"00001KVZKSTJT","note":"Queue routing checked. Remote worker-runtime process connection depends on WebSocket observation proxy `00001KVZKSTJT` and REST command server `00001KVZKSTE2`; REST is now inprogress and WS proxy remains queued, so this Ticket should wait.","author":"yoi-orchestrator","at":"2026-06-25T20:36:13Z"} +{"id":"orch-plan-20260626-054840-2","ticket_id":"00001KVZSGT14","kind":"accepted_plan","note":"Dependencies are now done: FS store, REST command server, WebSocket observation proxy, and RuntimeRegistry foundation. Related profile/config sync is not a blocking relation for v0, per existing relation note.","accepted_plan":{"summary":"Backend RuntimeRegistry に remote worker-runtime process handle を追加し、REST command API と WS observation API を Backend-owned client として route/proxy できるようにする。Dynamic registration/full auth/Web Console/Profile sync は扱わない。","branch":"work/00001KVZSGT14-remote-runtime-registry","worktree":"/home/hare/Projects/yoi/.worktree/00001KVZSGT14-remote-runtime-registry","role_plan":"Orchestrator が dedicated child worktree を作成し、coder Worker に `crates/workspace-server` と必要な Cargo/package files の write scope を委譲する。reviewer Worker は read-only で remote endpoint/token non-leak、runtime_id+worker_id authority、REST/WS client error mapping、embedded/local separation を確認する。merge/validation/done/cleanup は Orchestrator が行う。"},"author":"yoi-orchestrator","at":"2026-06-26T05:48:40Z"} diff --git a/.yoi/tickets/00001KVZSGT14/item.md b/.yoi/tickets/00001KVZSGT14/item.md index 92275560..26fe3f68 100644 --- a/.yoi/tickets/00001KVZSGT14/item.md +++ b/.yoi/tickets/00001KVZSGT14/item.md @@ -1,8 +1,8 @@ --- title: 'Backend RuntimeRegistryにremote worker-runtime processを接続する' -state: 'queued' +state: 'inprogress' created_at: '2026-06-25T16:23:58Z' -updated_at: '2026-06-25T20:36:34Z' +updated_at: '2026-06-26T05:49:13Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-25T20:34:35Z' diff --git a/.yoi/tickets/00001KVZSGT14/thread.md b/.yoi/tickets/00001KVZSGT14/thread.md index fc8d57a6..b001af17 100644 --- a/.yoi/tickets/00001KVZSGT14/thread.md +++ b/.yoi/tickets/00001KVZSGT14/thread.md @@ -53,3 +53,77 @@ Next action: - REST command server と WebSocket observation proxy が done になった後に再 routing する。 --- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Dependencies are done: `00001KVZKST83` FS store、`00001KVZKSTE2` REST command server、`00001KVZKSTJT` WebSocket observation proxy、`00001KVZKSV6C` RuntimeRegistry foundation。 +- Existing relation to `00001KVZQHPNY` is `related`, not blocking, and says v0 can use builtin/default fallback where applicable. +- 本 Ticket は remote Runtime process connection / routing を主目的とし、Dynamic registration / full auth / Web Console / Profile config sync は Non-goals。 +- 現在 `inprogress` は 0 件。remote Runtime connection は TUI migration の blocker なので優先して受理する。 + +Evidence checked: +- Ticket body: remote Runtime client handle、REST command API client、Runtime event stream client/proxy、config/policy boundary、Non-goals、acceptance criteria。 +- Relations: outgoing dependencies to FS/REST/WS/Registry foundation are done。Incoming TUI dependency is downstream。 +- Orchestration plan: accepted plan `orch-plan-20260626-054840-2` を記録。 +- Workspace state: orchestration worktree clean、embedded Runtime registry Ticket done/cleanup 済み。 + +IntentPacket: + +Intent: +- Workspace Backend `RuntimeRegistry` に remote worker-runtime process handle を追加し、Backend-owned REST/WS client で remote Runtime operations を route/proxy できるようにする。 + +Binding decisions / invariants: +- Browser は remote Runtime base URL / token / direct endpoint を知らない。 +- Browser-facing authority は embedded/local と同じ `runtime_id + worker_id`。 +- Remote command は worker-runtime REST command API に対する Backend-owned client。 +- Remote observation は worker-runtime WS observation API に対する Backend-owned client/proxy。 +- Dynamic registration、full auth/permission model、Backend Web Console、Profile/config bundle sync は実装しない。 +- Embedded/local compatibility source の behavior を壊さず、remote source を implementation kind/diagnostics で区別する。 + +Requirements / acceptance criteria: +- Config-like data から remote Runtime client handle を登録できる。 +- Runtime summary/status/capabilities、worker list/detail/create/input/stop/cancel/transcript/event proxy を route できる。 +- Network/auth/timeout/remote unsupported/remote worker not found を typed Backend errors/diagnostics に map する。 +- Browser-facing API/WS envelope に remote base URL/token/direct endpoint/socket/session path を露出しない。 +- Focused workspace-server tests cover mocked remote routing and error mapping。 + +Implementation latitude: +- HTTP/WS client dependencies、mock remote test harness、internal source/handle trait shape、error type naming は Coder が既存 `workspace-server` pattern に合わせて選べる。 +- v0 config-like data は in-memory/static constructor/test fixture でよい。Dynamic registration は不要。 + +Escalate if: +- worker-runtime REST/WS public API 変更が必要になる。 +- Profile/config sync がないと remote Worker creation が成立しない場合。 +- Browser-facing API schema を大きく変える必要がある場合。 + +Validation: +- `cargo fmt --all` +- `cargo test -p yoi-workspace-server` +- `cargo check -p yoi` +- `git diff --check` +- 可能なら `nix build .#yoi --no-link` + +Critical risks / reviewer focus: +- remote endpoint/token/direct URL leak。 +- worker_id-only routing regression。 +- remote REST/WS client errors being collapsed into generic unavailable。 +- scope creep into dynamic registration/auth/Web Console/Profile sync。 + +--- + + + +## State changed + +Routing decision: implementation_ready。 + +FS store、REST command server、WebSocket observation proxy、RuntimeRegistry foundation は done。Ticket body / relations / workspace state / accepted plan を確認し、remote worker-runtime process connection slice は unblocked と判断した。Profile/config sync は related であり v0 builtin/default fallback が許容されているため blocker ではない。 + +これ以降、worktree creation / coder Worker routing などの implementation side effect に進める。 + +--- diff --git a/.yoi/tickets/00001KW04A8K6/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KW04A8K6/artifacts/orchestration-plan.jsonl index a770dafc..f40509d8 100644 --- a/.yoi/tickets/00001KW04A8K6/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KW04A8K6/artifacts/orchestration-plan.jsonl @@ -1 +1,2 @@ {"id":"orch-plan-20260625-203613-1","ticket_id":"00001KW04A8K6","kind":"blocked_by","related_ticket":"00001KVZSGT14","note":"Queue routing checked. TUI migration to Runtime API/WebSocket depends on remote/backend runtime connection and WebSocket observation proxy foundation. Those dependencies are not done; keep this Ticket queued.","author":"yoi-orchestrator","at":"2026-06-25T20:36:13Z"} +{"id":"orch-plan-20260626-054937-2","ticket_id":"00001KW04A8K6","kind":"blocked_by","related_ticket":"00001KVZSGT14","note":"TUI migration depends on remote Runtime process connection `00001KVZSGT14`, which is now inprogress. Keep queued until remote source routing is reviewed/merged/done.","author":"yoi-orchestrator","at":"2026-06-26T05:49:37Z"} diff --git a/.yoi/tickets/00001KW04A8K6/item.md b/.yoi/tickets/00001KW04A8K6/item.md index 2bc5d48b..09e7893f 100644 --- a/.yoi/tickets/00001KW04A8K6/item.md +++ b/.yoi/tickets/00001KW04A8K6/item.md @@ -2,7 +2,7 @@ title: 'TUIをRuntime API/WebSocket接続へ移行する' state: 'queued' created_at: '2026-06-25T19:32:38Z' -updated_at: '2026-06-25T20:36:43Z' +updated_at: '2026-06-26T05:49:37Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-25T20:34:42Z'