ticket: route websocket runtime queue chain
This commit is contained in:
@@ -1,2 +1,3 @@
|
||||
{"id":"orch-plan-20260625-164410-1","ticket_id":"00001KVZKSTE2","kind":"blocked_by","related_ticket":"00001KVZBCQH4","note":"Queue routing checked after Dashboard Queue. REST command server depends on worker-runtime core `00001KVZBCQH4`, which is currently inprogress and under review. Do not start HTTP/server implementation until core API is reviewed/merged/done.","author":"yoi-orchestrator","at":"2026-06-25T16:44:10Z"}
|
||||
{"id":"orch-plan-20260625-165601-2","ticket_id":"00001KVZKSTE2","kind":"waiting_capacity_note","note":"Core dependency is now done, but this REST/http-server Ticket is left queued in this acceptance pass because FS store and Backend Registry foundation were accepted first. `http-server` is likely to modify `crates/worker-runtime` feature/dependency/package surfaces and conflict with FS store work; start after FS store branch stabilizes or Orchestrator explicitly serializes merge conflict handling.","author":"yoi-orchestrator","at":"2026-06-25T16:56:01Z"}
|
||||
{"id":"orch-plan-20260625-203533-3","ticket_id":"00001KVZKSTE2","kind":"accepted_plan","note":"Core dependency `00001KVZBCQH4` は done、FS store branch も done/merged 済みで previous waiting-capacity reason は解消。現在の inprogress `00001KVZKSV6C` は workspace-server foundation で主変更面が分離しているため並行受理可能。","accepted_plan":{"summary":"worker-runtime core/FS store done 後の optional `http-server` feature slice。REST command API と最小 process wrapper を worker-runtime に追加し、observation stream / Backend client integration / WebSocket は扱わない。","branch":"work/00001KVZKSTE2-worker-runtime-rest-server","worktree":"/home/hare/Projects/yoi/.worktree/00001KVZKSTE2-worker-runtime-rest-server","role_plan":"Orchestrator が dedicated child worktree を作成し、coder Worker に `crates/worker-runtime` と必要な Cargo/package files の write scope を委譲する。reviewer Worker は read-only で feature gating、REST handler delegation、Browser direct access exclusion、typed errors、scope creep absence を確認する。merge/validation/done/cleanup は Orchestrator が行う。"},"author":"yoi-orchestrator","at":"2026-06-25T20:35:33Z"}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
title: 'worker-runtimeにREST command serverを追加する'
|
||||
state: 'queued'
|
||||
state: 'inprogress'
|
||||
created_at: '2026-06-25T14:44:02Z'
|
||||
updated_at: '2026-06-25T16:56:01Z'
|
||||
updated_at: '2026-06-25T20:36:02Z'
|
||||
assignee: null
|
||||
queued_by: 'workspace-panel'
|
||||
queued_at: '2026-06-25T16:39:39Z'
|
||||
|
||||
@@ -59,3 +59,79 @@ Escalate if:
|
||||
- REST server concerns を core crate に混ぜないと acceptance を満たせないように見える。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: yoi-orchestrator at: 2026-06-25T20:35:55Z -->
|
||||
|
||||
## Decision
|
||||
|
||||
Routing decision: implementation_ready
|
||||
|
||||
Reason:
|
||||
- Dashboard Queue された dependent chain を再確認した。
|
||||
- `00001KVZBCQH4` worker-runtime core は done、`00001KVZKST83` FS store feature も done/merged/validated 済み。以前の dependency/capacity blocker は解消した。
|
||||
- 本 Ticket は REST command server であり、Non-goals に SSE / WebSocket event stream server が明記されている。WebSocket transport decision は `00001KVZKSTJT` 側で扱い、本 Ticket の implementation latitude には含めない。
|
||||
- 現在の inprogress `00001KVZKSV6C` は `crates/workspace-server` foundation、こちらは `crates/worker-runtime` http-server feature が主対象で、conflict risk は bounded。
|
||||
|
||||
Evidence checked:
|
||||
- Ticket body: `http-server` feature、Runtime process wrapper、REST command endpoints、typed JSON/errors、Browser direct Runtime access exclusion、Non-goals。
|
||||
- Relations: outgoing dependency `00001KVZBCQH4` は done。incoming `00001KVZKSTJT`, `00001KVZSGT14` は後続。
|
||||
- Orchestration plan: accepted plan `orch-plan-20260625-203533-3` を記録。
|
||||
- Workspace state: orchestration worktree clean; current active foundation branch is separate surface.
|
||||
|
||||
IntentPacket:
|
||||
|
||||
Intent:
|
||||
- `worker-runtime` に optional `http-server` feature と最小 Runtime process REST command API を追加する。
|
||||
|
||||
Binding decisions / invariants:
|
||||
- REST handlers は `Runtime` lib API を呼ぶ wrapper とし、Worker semantics を二重実装しない。
|
||||
- Browser は Runtime process に直接接続せず、Backend 経由の前提を docs/comments/API comments に残す。
|
||||
- SSE / WebSocket event stream server、Backend HTTP client integration、dynamic Runtime registration、Web Console、full auth model は実装しない。
|
||||
- `http-server` disabled 時に core library は HTTP server dependency を強制しない。
|
||||
- Runtime authority は Runtime/Worker identity。legacy pod/socket/session path を public REST authority として設計しない。
|
||||
|
||||
Requirements / acceptance criteria:
|
||||
- `http-server` feature と binary/process wrapper がある。
|
||||
- `GET /v1/runtime`, `GET /v1/workers`, `GET /v1/workers/{worker_id}`, `POST /v1/workers`, `POST /v1/workers/{worker_id}/input`, `stop`, `cancel`, `GET transcript` を扱う。
|
||||
- typed request/response/error shapes を持つ。
|
||||
- runtime id / bind address / store selection を v0 config として扱える。
|
||||
- minimal local token placeholder は可。ただし Browser に Runtime credential を渡す前提にしない。
|
||||
|
||||
Implementation latitude:
|
||||
- HTTP framework/dependency、binary/module split、test helper、typed response shapes の詳細は Coder が選べる。
|
||||
- FS store 使用は既存 feature を使う範囲まで。新しい persistence design は不要。
|
||||
|
||||
Escalate if:
|
||||
- WebSocket/SSE observation 実装が必要になりそうな場合。
|
||||
- Backend integration や dynamic runtime registration を同時に実装しないと REST command server が成立しない場合。
|
||||
- Core Runtime API の大幅変更が必要になる場合。
|
||||
|
||||
Validation:
|
||||
- `cargo fmt --all`
|
||||
- `cargo test -p worker-runtime --no-default-features`
|
||||
- `cargo test -p worker-runtime --features http-server`
|
||||
- 必要に応じて `cargo test -p worker-runtime --features fs-store,http-server`
|
||||
- `cargo check -p yoi`
|
||||
- `git diff --check`
|
||||
- 可能なら `nix build .#yoi --no-link`
|
||||
|
||||
Critical risks / reviewer focus:
|
||||
- Feature gating/dependency leakage。
|
||||
- REST handler が Runtime semantics を複製すること。
|
||||
- Browser direct Runtime access や credential leakage。
|
||||
- WebSocket/SSE scope creep。
|
||||
- package.nix cargoHash / lock consistency。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: yoi-orchestrator at: 2026-06-25T20:36:02Z from: queued to: inprogress reason: routing_accepted_after_core_and_fs_store_done field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Routing decision: implementation_ready。
|
||||
|
||||
Dependency `00001KVZBCQH4` worker-runtime core は done。以前の waiting-capacity reason だった FS store branch も done/merged/validated 済み。Ticket body / relations / workspace state / accepted plan を確認し、REST command server slice は unblocked と判断した。
|
||||
|
||||
これ以降、worktree creation / coder Worker routing などの implementation side effect に進める。
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user