ticket: plan backend runtime worker list

This commit is contained in:
Keisuke Hirata 2026-07-18 11:46:39 +09:00
parent 7e43c10e2d
commit 60410f29a1
No known key found for this signature in database
3 changed files with 118 additions and 0 deletions

View File

@ -0,0 +1,42 @@
---
title: 'TUI backend runtime worker listを表面化する'
state: 'inprogress'
created_at: '2026-07-18T02:39:04Z'
updated_at: '2026-07-18T02:46:09Z'
assignee: null
queued_by: 'yoi ticket'
queued_at: '2026-07-18T02:39:40Z'
---
## 背景
TUI を backend runtime の client として接続する経路は基礎実装があるが、ユーザーが通常導線として worker を一覧し、既存 worker を選んで接続/確認する入口が表面化していない。
直近の調査では、backend/runtime の worker summary/detail は REST で取れる一方、会話内容は observation WebSocket snapshot を読む必要があり、CLI/TUI から人間向けに扱いづらいことも確認された。
この Ticket では、まず TUI backend runtime client 導線の worker list 実装から着手し、現行 staging/extract 実装が runtime/embedded 経路で破綻していないかの確認も含める。
## 実装要件
- TUI を backend runtime client として使う導線で、runtime worker list をユーザーに見える形にする。
- worker list は backend が公開している runtime/worker summary を authority とし、TUI 側で独自 scheduler や duplicate backend を作らない。
- list item には少なくとも runtime id、worker id、label/profile、status/state、working directory summary を表示できること。
- 既存 worker を選択して attach/read/inspect へ進めるための実装境界を整理する。今回の主作業は list で、attach/read の大規模実装は必要なら follow-up に分ける。
- backend/runtime は local/private boundary を維持し、frontend だけ外部 bind できる前提を壊さない。
- staging/extract 実装について、embedded/runtime 経路で staging write abstraction が破綻していないかを確認し、必要なら小修正する。
## 非目標
- worker scheduler を TUI に新設しない。
- backend/runtime REST API を無秩序に増やさない。必要な場合は bounded/read-only な endpoint として理由を明確にする。
- TUI の全面 redesign はしない。
- extract candidate tuning はこの Ticket の主目的ではない。
## 受け入れ条件
- backend runtime client mode で worker list が見える、またはそのための CLI/TUI 実装差分が明確に入る。
- list は backend/runtime authority 由来の worker identity を使う。
- 実装者が既存 worker `arc/3` 相当を確認し、動作確認結果を Ticket thread に残す。
- staging/extract の current implementation について、runtime/embedded 経路での確認結果を Ticket thread に残す。
- `cargo fmt --check` と relevant tests が通る。
- code/resource 変更がある場合は `nix build .#yoi` を通す。

View File

@ -0,0 +1,76 @@
<!-- event: create author: "yoi ticket" at: 2026-07-18T02:39:04Z -->
## 作成
LocalTicketBackend によって作成されました。
---
<!-- event: intake_summary author: hare at: 2026-07-18T02:39:40Z -->
## Intake summary
Marked ready by `yoi ticket state`.
---
<!-- event: state_changed author: "yoi ticket" at: 2026-07-18T02:39:40Z from: planning to: ready reason: cli_state field: state -->
## State changed
Marked ready by `yoi ticket state`.
---
<!-- event: state_changed author: "yoi ticket" at: 2026-07-18T02:39:40Z from: ready to: queued reason: queued field: state -->
## State changed
Ticket を `yoi ticket` が queued にしました。
---
<!-- event: state_changed author: "yoi ticket" at: 2026-07-18T02:39:40Z from: queued to: inprogress reason: cli_state field: state -->
## State changed
State changed to `inprogress`.
---
<!-- event: plan author: hare at: 2026-07-18T02:39:40Z -->
## Plan
Delegate implementation/recon to existing backend runtime Worker `arc/3`.
Requested focus:
- Surface the TUI-as-backend-runtime-client worker list route first.
- Inspect current TUI/backend runtime client implementation and make the smallest implementation that exposes worker list from backend/runtime authority.
- Include a staging/extract implementation check: verify the recent session-explore extract worker and flat staging writer still work through the runtime/embedded workspace abstraction; record findings and fix only concrete breakage.
- Leave attach/read/transcript UX as follow-up if it is larger than worker list.
---
<!-- event: decision author: hare at: 2026-07-18T02:46:09Z -->
## Decision
Paused before delegating work to Worker `arc/3`.
Reason:
- The current live Yoi session/runtime appears to be an older version that can emit obsolete/noisy memory staging records.
- Existing `.yoi/memory/_staging/*.json` from this session was quarantined without reading contents.
- No implementation prompt was sent to Worker `arc/3`; the Ticket is only prepared for continuation after restarting into the current build/runtime.
Resume condition:
- Restart with the current Yoi build/runtime/session.
- Confirm `.yoi/memory/_staging/` is clean or only contains new-format records.
- Then move this Ticket back through ready/queued/inprogress and delegate/implement.
---