4.7 KiB
4.7 KiB
| title | state | created_at | updated_at | assignee | queued_by | queued_at |
|---|---|---|---|---|---|---|
| embedded worker-runtimeをworker crate実行に接続する | closed | 2026-06-27T18:26:46Z | 2026-06-28T06:02:16Z | null | workspace-panel | 2026-06-27T19:06:30Z |
背景
worker-runtime の embedded Runtime は Backend RuntimeRegistry / Worker Console から見える Worker を作れるが、実際の LLM agent 実行は既存 worker crate 側にある。現在はこの execution-plane が接続されていないため、embedded Worker は transcript / observation の箱としては見えるが、user input を実行できない。
この Ticket では、前段の execution backend 境界に対して、既存 worker crate を使う embedded execution adapter を実装する。Runtime が Worker を spawn したときに実 worker::Worker / WorkerController 相当を生成し、input を既存 Worker の run lifecycle に渡し、protocol::Event を Runtime observation bus に bridge する。
目的
- embedded Runtime Worker が既存
workercrate の実行 engine を使って動く。 - user input が fake response ではなく、実 Worker run / LLM execution に渡る。
- 既存
protocol::Eventが Runtime observation stream に流れる。 - Runtime / Backend / Web Console が Worker 実行の正規経路を共有する。
要件
Adapter placement / dependency boundary
worker-runtimeとworkercrate の依存関係を確認し、循環依存を作らない場所に adapter を置く。worker-runtimeの optional feature、別 adapter crate、または Backend 側 adapter のいずれかを選んで Ticket thread に理由を記録する。
- Adapter は
worker-runtimeの execution backend 境界に接続する。 - Runtime public API / Browser-facing API に
worker::Workerhandle、socket path、session path、secret、raw manifest path を露出しない。
Profile / config / authority resolution
- Runtime Worker spawn request の Profile selector / config bundle ref から、既存 Worker 実行に必要な config を解決する。
- prompt resources、model/provider config、SecretRef、ToolRegistry、HostAuthority、memory/session/history scope の扱いを明示する。
- Backend internal Companion 用であっても、暗黙の broad workspace authority を付けない。
- config / secret / provider が不足している場合は typed diagnostic として spawn/input を拒否し、fake response を返さない。
Input / run lifecycle
- Backend Worker input API からの user input を、既存 Worker の
Method::Run相当または同等の run API に渡す。 - Worker が busy の場合、二重 run を typed rejection / queue policy で扱う。v0 で queue しないなら明示する。
- run started / completed / errored / cancelled を Runtime Worker status と transcript projection に反映する。
- stop / cancel が実装できる場合は既存 Worker control に接続し、できない場合は typed unsupported とする。
Protocol event bridge
- 既存 Worker が出す
protocol::Eventを Runtime observation bus へ bridge する。 - Snapshot / transcript reconstruction / text delta / text done / thinking / tool call / tool result / usage / status / error を、既存 protocol semantics のまま流す。
- Runtime が event variant subset や別 output model を作らない。
- Worker history / session persistence と Runtime transcript projection が矛盾しないようにする。
Non-goals
- Workspace Companion 専用 UX の完成。
- Web Console の visual redesign。
- remote Runtime process の execution adapter 実装。
- Full multi-user auth / permission / redaction policy。
- Task scheduling / background queue。
受け入れ条件
- embedded Runtime に
workercrate 実行 adapter が接続されている。 - embedded Worker への user input が実 Worker run に渡る。
- provider / config が不足している場合、fake response ではなく typed diagnostic になる。
- 実行時の
protocol::Eventが Runtime observation bus と Backend client-facing WS に流れる。 - transcript projection が実 Worker run の user / assistant / tool / error output と整合する。
- raw execution handle / path / credential / session path が Browser-facing API に漏れない。
- Focused tests が fake provider または deterministic provider で user input -> assistant output -> protocol events -> transcript projection を確認する。
cargo test -p worker-runtime --features ws-serverが通る。cargo test -p yoi-workspace-serverが通る。cargo check -p yoiが通る。git diff --checkが通る。nix build .#yoi --no-linkが通る。