From f64e11b854350f01f64d30f3f08f973ca7f2ad3a Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 27 Jun 2026 02:46:44 +0900 Subject: [PATCH] ticket: accept worker console redesign --- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KW2GCPYF/item.md | 4 +- .yoi/tickets/00001KW2GCPYF/thread.md | 84 +++++++++++++++++++ 3 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/00001KW2GCPYF/artifacts/orchestration-plan.jsonl diff --git a/.yoi/tickets/00001KW2GCPYF/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KW2GCPYF/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..2588bfd1 --- /dev/null +++ b/.yoi/tickets/00001KW2GCPYF/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260626-174605-1","ticket_id":"00001KW2GCPYF","kind":"accepted_plan","note":"Dashboard Queue accepted. No relation blockers, no inprogress work, orchestration worktree clean. Previous Runtime/Backend/TUI/WebConsole foundations are on develop/orchestration HEAD.","accepted_plan":{"summary":"Workspace Web Console を Companion 専用 route/sidebar から任意 Worker attach route へ再設計する。Worker list から `runtime_id + worker_id` で開き、Backend transcript/input/observation WS と protocol event rendering を使う。旧 `/console` route/fallback と standalone Console sidebar entry は残さない。","branch":"work/00001KW2GCPYF-worker-console-redesign","worktree":"/home/hare/Projects/yoi/.worktree/00001KW2GCPYF-worker-console-redesign","role_plan":"Orchestrator が dedicated child worktree を作成し、coder Worker に `web/workspace` と必要な Backend API support (`crates/workspace-server`)、Cargo/package files の write scope を委譲する。reviewer Worker は read-only で route/navigation authority、runtime_id+worker_id attach、protocol::Event rendering semantics、metadata/diagnostics layout、legacy `/console` removal、Browser credential/path non-leak を確認する。merge/validation/done/cleanup は Orchestrator が行う。"},"author":"yoi-orchestrator","at":"2026-06-26T17:46:05Z"} diff --git a/.yoi/tickets/00001KW2GCPYF/item.md b/.yoi/tickets/00001KW2GCPYF/item.md index 9ae4733a..449a15bb 100644 --- a/.yoi/tickets/00001KW2GCPYF/item.md +++ b/.yoi/tickets/00001KW2GCPYF/item.md @@ -1,8 +1,8 @@ --- title: 'Workspace Worker Consoleを任意Worker attach前提で再設計する' -state: 'queued' +state: 'inprogress' created_at: '2026-06-26T17:42:10Z' -updated_at: '2026-06-26T17:45:40Z' +updated_at: '2026-06-26T17:46:39Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-26T17:45:40Z' diff --git a/.yoi/tickets/00001KW2GCPYF/thread.md b/.yoi/tickets/00001KW2GCPYF/thread.md index c269f35f..0d06847d 100644 --- a/.yoi/tickets/00001KW2GCPYF/thread.md +++ b/.yoi/tickets/00001KW2GCPYF/thread.md @@ -30,4 +30,88 @@ Marked ready by `yoi ticket state`. Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Dashboard Queue により routing 許可済み。 +- Relations はなし、OrchestrationPlan も未設定だった。blocking dependency は見当たらない。 +- Current `inprogress` is 0。orchestration worktree is clean and current HEAD already contains Runtime/Backend/WebSocket/WebConsole/TUI foundations. +- Ticket body は navigation/route model、attach routing、UX redesign、protocol rendering model、input/observation、Non-goals、acceptance criteria が具体的。 + +Evidence checked: +- Ticket body: Workspace top Worker list から任意 Worker Console、`runtime_id + worker_id` authority、Companion を通常 Worker として扱う、standalone Console sidebar entry / old `/console` fallback removal、protocol::Event rendering semantics、degrade path、validation requirements。 +- Relations: none。 +- Orchestration plan: accepted plan `orch-plan-20260626-174605-1` recorded。 +- Workspace state: queued 1 / inprogress 0、orchestration clean、child spawned count 0。 + +IntentPacket: + +Intent: +- Workspace Web Console を Companion 固定 UI から、Worker list 起点の任意 Worker attach Console に再設計する。 + +Binding decisions / invariants: +- Console target authority は `runtime_id + worker_id`。 +- Browser は Runtime endpoint / credential / socket path / session path を扱わない。 +- Sidebar に standalone `Console` category / navigation entry を残さない。 +- Companion は通常 Worker として list から attach する。Companion 専用 route/sidebar/Console implementation は正規導線に残さない。 +- 旧 `/console` route redirect/fallback 互換は残さない。 +- Backend Worker API / Backend client-facing observation WS を使う。 +- TUI の見た目や keybinding は移植しない。移植対象は `protocol::Event` rendering semantics。 +- 未実装 Runtime/permission/advanced control UI、multi-worker split view、raw provider trace viewer は作らない。 + +Requirements / acceptance criteria: +- Workspace top Worker list から任意 Worker Console を開ける。 +- Console route/state は `runtime_id + worker_id` を持つ。 +- Worker detail/capabilities、bounded transcript/Snapshot相当、observation WS、input API を使う。 +- `protocol::Event` 由来の user / assistant / thinking / tool call/result / status / error / usage / snapshot / in-flight を表示する。 +- Metadata/diagnostics は compact header/details/collapsible area に逃がし、主 transcript 幅を過剰に占有しない。 +- Streaming 非対応 Worker は transcript-only/manual refresh等の degrade path を明示。 +- Focused Web UI tests/component tests を追加する。 +- `deno task check/build`, `cargo check -p yoi`, `git diff --check`, `nix build .#yoi --no-link` が通る。 + +Implementation latitude: +- Route naming、Worker list UI placement、component split、protocol event state model、degrade UI の詳細は Coder が existing `web/workspace` style に合わせて選べる。 +- Backend API に小さな不足があれば `crates/workspace-server` で最小 support を追加してよい。 +- Existing Companion provider-less backend can remain as a normal worker source, but no special Console UI path。 + +Escalate if: +- Browser に Runtime endpoint/token/socket/session path を渡す必要が出る。 +- old `/console` fallback を残さないと navigation が成立しないと判明する。 +- Full TUI parity / tool UI / raw provider trace viewer / multi-worker split view が必要になる。 +- Backend protocol/WS foundation の大幅 redesign が必要になる。 + +Validation: +- `cargo fmt --all` +- `cargo check -p yoi` +- `cd web/workspace && deno task check` +- `cd web/workspace && deno task build` +- `git diff --check` +- 可能なら `nix build .#yoi --no-link` + +Critical risks / reviewer focus: +- Companion special-case route/sidebar implementation が残ること。 +- Route target が `runtime_id + worker_id` ではなく worker_id-only になること。 +- Runtime endpoint/token/socket/session path leak。 +- `protocol::Event` を簡易 chat message に潰しすぎること。 +- Metadata/diagnostics が主 transcript を圧迫すること。 +- Old `/console` redirect/fallback compatibility が残ること。 + +--- + + + +## State changed + +Routing decision: implementation_ready。 + +Ticket body / relations / workspace state / accepted plan を確認し、Workspace Worker Console redesign は unblocked と判断した。Relations はなく、current `inprogress` は 0。accepted plan と IntentPacket は thread / orchestration plan に記録済み。 + +これ以降、worktree creation / coder Worker routing などの implementation side effect に進める。 + ---