From 9a09ebd9ac9114f59978c069eff1c779d90f334b Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 26 Jun 2026 15:34:24 +0900 Subject: [PATCH] ticket: accept runtime config bundle sync --- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVZ9JGK0/item.md | 2 +- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVZQHPNY/item.md | 4 +- .yoi/tickets/00001KVZQHPNY/thread.md | 81 +++++++++++++++++++ .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KW04A8K6/item.md | 2 +- 7 files changed, 88 insertions(+), 4 deletions(-) diff --git a/.yoi/tickets/00001KVZ9JGK0/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVZ9JGK0/artifacts/orchestration-plan.jsonl index 2ad7c50d..6463e53a 100644 --- a/.yoi/tickets/00001KVZ9JGK0/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KVZ9JGK0/artifacts/orchestration-plan.jsonl @@ -1,3 +1,4 @@ {"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"} +{"id":"orch-plan-20260626-063306-4","ticket_id":"00001KVZ9JGK0","kind":"waiting_capacity_note","note":"Web Console MVP is left queued while Profile/config bundle sync `00001KVZQHPNY` is accepted/inprogress. Web Console will likely touch worker creation/profile selection and Backend API surfaces; start after bundle sync branch is reviewed/merged/done.","author":"yoi-orchestrator","at":"2026-06-26T06:33:06Z"} diff --git a/.yoi/tickets/00001KVZ9JGK0/item.md b/.yoi/tickets/00001KVZ9JGK0/item.md index 730ed8ac..c03b5175 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-26T05:49:30Z' +updated_at: '2026-06-26T06:33:06Z' 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 e656a53c..a46c9f83 100644 --- a/.yoi/tickets/00001KVZQHPNY/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KVZQHPNY/artifacts/orchestration-plan.jsonl @@ -2,3 +2,4 @@ {"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"} +{"id":"orch-plan-20260626-063205-5","ticket_id":"00001KVZQHPNY","kind":"accepted_plan","note":"Worker-runtime core, embedded/remote Runtime Registry, REST/WS foundation are done. Previous waiting-capacity notes are resolved; no inprogress remains.","accepted_plan":{"summary":"Runtime へ同期可能な Profile/config bundle model、runtime-side bundle store/status/digest validation、worker create integration、Backend-to-Runtime sync/availability boundary を実装する。Secret values/raw paths/plugin execution/full package manager は扱わない。","branch":"work/00001KVZQHPNY-runtime-config-bundles","worktree":"/home/hare/Projects/yoi/.worktree/00001KVZQHPNY-runtime-config-bundles","role_plan":"Orchestrator が dedicated child worktree を作成し、coder Worker に `crates/worker-runtime` / `crates/workspace-server` と必要な Cargo/package files の write scope を委譲する。reviewer Worker は read-only で secret/path exclusion、digest/provenance, Runtime/Backend sync semantics, typed errors, fallback-vs-bundle boundary を確認する。merge/validation/done/cleanup は Orchestrator が行う。"},"author":"yoi-orchestrator","at":"2026-06-26T06:32:05Z"} diff --git a/.yoi/tickets/00001KVZQHPNY/item.md b/.yoi/tickets/00001KVZQHPNY/item.md index 69f4ba6f..be4c5065 100644 --- a/.yoi/tickets/00001KVZQHPNY/item.md +++ b/.yoi/tickets/00001KVZQHPNY/item.md @@ -1,8 +1,8 @@ --- title: 'RuntimeへProfile/config bundleを同期する' -state: 'queued' +state: 'inprogress' created_at: '2026-06-25T15:49:30Z' -updated_at: '2026-06-26T05:49:22Z' +updated_at: '2026-06-26T06:32:50Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-25T16:44:39Z' diff --git a/.yoi/tickets/00001KVZQHPNY/thread.md b/.yoi/tickets/00001KVZQHPNY/thread.md index c72f834a..211d1b23 100644 --- a/.yoi/tickets/00001KVZQHPNY/thread.md +++ b/.yoi/tickets/00001KVZQHPNY/thread.md @@ -60,3 +60,84 @@ Escalate if: - bundle sync のために REST server / FS store / Plugin manager 実装を同時に要求する形になりそうな場合。 --- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- `00001KVZBCQH4` worker-runtime core、Backend RuntimeRegistry foundation、embedded/remote Runtime connection、REST/WS foundation は done。 +- 前回の waiting-capacity reason は解消済みで、現在 `inprogress` は 0 件。 +- Ticket body は config bundle model、sync API、worker creation integration、Backend responsibility、Plugin/host policy boundary、Non-goals、acceptance criteria を明記している。 +- Plugin package bytes vs package ref の詳細などは実装時の local design latitude として扱える。Secret value sync / full Plugin manager / actual host mount path sync は Non-goals。 + +Evidence checked: +- Ticket body: digest/revision/provenance、bundle content model、secret/raw path exclusion、Runtime sync API、CreateWorkerRequest integration、typed errors、Backend responsibility、Non-goals、validation。 +- Relations: only blocking dependency `00001KVZBCQH4` is done。Remote Runtime integration has related relation only and is now done. +- Orchestration plan: accepted plan `orch-plan-20260626-063205-5` を記録。 +- Workspace state: orchestration worktree clean、no active inprogress。 + +IntentPacket: + +Intent: +- `worker-runtime` と Backend に Profile/config bundle sync boundary を追加し、Runtime が bundle digest / profile selector を検証して Worker creation に使えるようにする。 + +Binding decisions / invariants: +- Bundle に secret values、raw socket/session path、runtime-local mount actual path、host-local cache path を含めない。 +- Secret/mount/network/shell/git availability は host-local policy / grant / secret ref として表現し、Runtime host が最終判断する。 +- Backend は Runtime credential / direct endpoint / raw bundle storage path を Browser に渡さない。 +- Backend が巨大な fully-resolved WorkerSpec を毎回送る設計にはしない。Worker creation は intent + profile selector + bundle ref + capabilities の境界を保つ。 +- Builtin/default fallback は残すが、synced bundle mode と責務を区別する。 +- Full Plugin package manager / registry / signature policy / secret value sync / Web Console completion は実装しない。 + +Requirements / acceptance criteria: +- Config bundle domain type が digest / revision / workspace id / created_at / provenance を持つ。 +- Runtime は bundle を保存・一覧/確認し、digest を検証できる。 +- `CreateWorkerRequest` / worker creation path が profile selector + config bundle ref を扱う。 +- Missing bundle / digest mismatch / invalid profile / unsupported declaration は typed error。 +- Embedded Runtime は direct lib API で sync 可能。 +- Networked Runtime 用 REST sync API shape または endpoint がある。 +- Backend は Runtime へ bundle sync し、bundle availability を確認できる。 +- Tests distinguish builtin/default fallback vs synced bundle mode。 + +Implementation latitude: +- Module split, exact JSON/domain structs, digest computation details, minimal profile resolution depth, package ref vs inline descriptor representation are Coder choices within the invariants. +- For v0, `ResolvedWorkerSpec` / host-local policy enforcement may be a typed boundary with focused validation rather than full Plugin execution. +- If Profile/resource loading from existing project crates is too broad for this slice, define stable bundle structs and sync/validation semantics first, then escalate for deeper integration. + +Escalate if: +- Secret values or host-local actual paths appear necessary in bundle content. +- Full Plugin package manager/signature policy is required to satisfy acceptance. +- Existing `worker-runtime` / Backend API must be redesigned broadly. +- Browser-facing API would need to receive Runtime credentials or raw bundle storage paths. + +Validation: +- `cargo fmt --all` +- `cargo test -p worker-runtime` +- `cargo test -p yoi-workspace-server` +- `cargo check -p yoi` +- `git diff --check` +- 可能なら `nix build .#yoi --no-link` + +Critical risks / reviewer focus: +- Secret/raw path leakage。 +- Bundle digest/provenance instability or mismatch bugs。 +- Blurring builtin/default fallback with synced bundle mode。 +- Over-implementing Plugin manager / policy enforcement beyond v0 boundary。 +- Remote Runtime sync endpoint leaking endpoint/token/path details to Browser。 + +--- + + + +## State changed + +Routing decision: implementation_ready。 + +worker-runtime core / Registry foundation / embedded+remote Runtime connection / REST+WS foundation は done。Ticket body / relations / workspace state / accepted plan を確認し、Profile/config bundle sync slice は unblocked と判断した。accepted plan と IntentPacket は thread / orchestration plan に記録済み。 + +これ以降、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 f40509d8..5f0e2985 100644 --- a/.yoi/tickets/00001KW04A8K6/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KW04A8K6/artifacts/orchestration-plan.jsonl @@ -1,2 +1,3 @@ {"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"} +{"id":"orch-plan-20260626-063414-3","ticket_id":"00001KW04A8K6","kind":"waiting_capacity_note","note":"TUI migration is left queued while Profile/config bundle sync `00001KVZQHPNY` is accepted/inprogress. Runtime worker creation/profile semantics are still being finalized; start after bundle sync branch is reviewed/merged/done to avoid API churn.","author":"yoi-orchestrator","at":"2026-06-26T06:34:14Z"} diff --git a/.yoi/tickets/00001KW04A8K6/item.md b/.yoi/tickets/00001KW04A8K6/item.md index 09e7893f..5003c3b7 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-26T05:49:37Z' +updated_at: '2026-06-26T06:34:14Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-25T20:34:42Z'