From 971d2f832fa4459ffe609347fdf8f9eef6e35cc2 Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 27 Jun 2026 02:45:26 +0900 Subject: [PATCH] ticket: plan worker console redesign --- .yoi/tickets/00001KW2GCPYF/artifacts/.gitkeep | 0 .yoi/tickets/00001KW2GCPYF/item.md | 113 ++++++++++++++++++ .yoi/tickets/00001KW2GCPYF/thread.md | 24 ++++ 3 files changed, 137 insertions(+) create mode 100644 .yoi/tickets/00001KW2GCPYF/artifacts/.gitkeep create mode 100644 .yoi/tickets/00001KW2GCPYF/item.md create mode 100644 .yoi/tickets/00001KW2GCPYF/thread.md diff --git a/.yoi/tickets/00001KW2GCPYF/artifacts/.gitkeep b/.yoi/tickets/00001KW2GCPYF/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/.yoi/tickets/00001KW2GCPYF/item.md b/.yoi/tickets/00001KW2GCPYF/item.md new file mode 100644 index 00000000..1efc4606 --- /dev/null +++ b/.yoi/tickets/00001KW2GCPYF/item.md @@ -0,0 +1,113 @@ +--- +title: 'Workspace Worker Consoleを任意Worker attach前提で再設計する' +state: 'ready' +created_at: '2026-06-26T17:42:10Z' +updated_at: '2026-06-26T17:45:26Z' +assignee: null +--- + +## 背景 + +現在の Web Console は Companion MVP の延長として作られており、Workspace の正規 Console としては UX / 情報設計 / theme 統一 / attach model が不足している。Companion 専用 API と簡易チャット風 UI に寄っており、任意 Worker を `runtime_id + worker_id` で開く導線、TUI Console 相当の protocol event 表示、Workspace 全体と統一された visual design が弱い。 + +Runtime / Backend / Client の observation proxy と、Backend Runtime Worker API は既に任意 Worker attach の基盤になり得る。次は Companion 固定の Console を正規経路として延命せず、Workspace top の Worker list から任意 Worker Console を開ける UI として再設計する。 + +## 目的 + +- Workspace top の Worker list から任意 Worker の Console を開ける。 +- Sidebar に standalone `Console` category / navigation entry を置かない。 +- Console target は `runtime_id + worker_id` を authority とする。 +- Companion は特別な Console 実装ではなく、通常 Worker として表示・attach できる。 +- Companion は Backend 起動時の自動起動 Worker として Worker list に現れ、必要なら role badge / pinned display で識別する。 +- 現行 Web Console UX は置き換え前提とし、Workspace theme と情報設計に合わせて新規設計する。 +- TUI Console の見た目ではなく、`protocol::Event` を transcript / live UI state に落とす意味論を Web に移植する。 + +## 要件 + +### Navigation / route model + +- 正規導線は Workspace top の Worker list から Console を開く形にする。 +- Sidebar に standalone `Console` category / navigation entry を作らない。 +- 既存の Companion 固定 `/console` route がある場合は正規 route として残さず、削除または Worker Console route へ置き換える。 +- 旧 `/console` からの redirect / fallback は残さない。古い導線の互換維持より、正規 navigation と route authority を明確にする。 +- Companion 専用の quick action / drawer / global composer が必要になった場合は、この Ticket ではなく後続の UX 設計として扱う。 + +### Attach model / routing + +- Workspace top に Worker list を表示し、Worker row から Console を開ける。 +- Console route / state は `runtime_id + worker_id` を target identity として持つ。 +- Browser は Runtime endpoint / credential / socket path / session path を扱わない。 +- Console は Backend Worker API を使う。 + - Worker detail / capabilities。 + - bounded transcript / Snapshot 相当。 + - Backend client-facing observation WS。 + - input API。 +- Companion Worker は role / badge / pinned row などで識別してよいが、Console 実装は通常 Worker と共有する。 +- Companion 専用の route / sidebar entry / Console implementation は作らない。 + +### UX redesign + +- 現行 Companion Console UI を正規 Console として継続しない。 +- Console の主表示は conversation / run stream と composer に集中する。 +- runtime id、worker id、transport、capability、diagnostic などの metadata は常時幅を取らない。 + - 必要な情報は compact header、details drawer、inspector、collapsible diagnostics へ退避する。 +- Workspace 全体の theme / spacing / typography / color token と統一する。 +- narrow width / wide width の両方で transcript が読みやすい layout にする。 +- busy / unavailable / rejected / reconnecting / stale cursor などの状態は主導線を邪魔しない形で表示する。 + +### Protocol rendering model + +- Web Console は `protocol::Event` を UI state に変換して表示する。 +- TUI Console から移植する対象は rendering semantics と event handling であり、TUI の見た目や keybinding ではない。 +- 少なくとも以下を表示対象にする。 + - user message。 + - assistant text delta / done。 + - thinking block。 + - tool call lifecycle。 + - tool result。 + - status / run start / run end / error。 + - usage。 + - snapshot / transcript reconstruction。 + - in-flight output。 +- 既に protocol / Backend WS で届く情報を、簡易 chat message へ潰しすぎない。 +- 未実装の Runtime/permission/advanced control のための UI は作らない。 + +### Input / observation + +- Composer input は Backend Worker input API へ送る。 +- Live update は Backend client-facing observation WS から受ける。 +- Initial render は bounded transcript / Snapshot 相当から構築する。 +- WS reconnect / duplicate event / cursor resume は最低限破綻しない動作にするか、typed diagnostic として表示する。 +- Worker が event streaming 非対応の場合は、polling / manual refresh / transcript-only などの degrade path を明示する。 + +## Non-goals + +- Full permission / auth / redaction policy implementation。 +- Runtime endpoint / credential を Browser に渡す direct Runtime attach。 +- TUI の見た目そのものの Web 再現。 +- 未実装 command / advanced control UI。 +- Multi-worker split view。 +- Full log viewer / raw provider trace viewer。 +- Companion 専用 Console の新規拡張。 +- Companion 専用 route / sidebar entry / quick action の設計。 +- 旧 `/console` route の redirect / fallback 互換維持。 + +## 受け入れ条件 + +- Workspace top の Worker list から任意 Worker Console を開ける。 +- Sidebar に standalone `Console` category / navigation entry が残っていない。 +- Console target が `runtime_id + worker_id` で表現される。 +- Companion Worker を通常 Worker として Console で開ける。 +- Companion 専用 route / sidebar entry / Console implementation が正規導線に残っていない。 +- 旧 `/console` route の redirect / fallback 互換が残っていない。 +- 現行 Companion Console 固定 UI が正規 Console 導線から置き換えられている。 +- Console UI が Workspace theme と統一され、metadata / diagnostics が主表示の幅を過剰に占有しない。 +- Backend transcript / input / observation WS を使って Console が動作する。 +- `protocol::Event` 由来の user / assistant / thinking / tool / status / error / usage が表示される。 +- Streaming 非対応 Worker の degrade path が明示されている。 +- Focused Web UI tests or component tests が追加されている。 +- `cd web/workspace && deno task check` が通る。 +- `cd web/workspace && deno task build` が通る。 +- `cargo check -p yoi` が通る。 +- `git diff --check` が通る。 +- `nix build .#yoi --no-link` が通る。 diff --git a/.yoi/tickets/00001KW2GCPYF/thread.md b/.yoi/tickets/00001KW2GCPYF/thread.md new file mode 100644 index 00000000..cadc6ee7 --- /dev/null +++ b/.yoi/tickets/00001KW2GCPYF/thread.md @@ -0,0 +1,24 @@ + + +## 作成 + +LocalTicketBackend によって作成されました。 + +--- + + + +## Intake summary + +Marked ready by `yoi ticket state`. + +--- + + + +## State changed + +Marked ready by `yoi ticket state`. + + +---