ticket: remove observation replay

This commit is contained in:
Keisuke Hirata 2026-07-11 08:35:04 +09:00
parent 0e01e5c84b
commit 3a0600be0f
No known key found for this signature in database
3 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,30 @@
---
title: 'Remove backend worker observation replay'
state: 'inprogress'
created_at: '2026-07-10T23:34:39Z'
updated_at: '2026-07-10T23:35:04Z'
assignee: null
queued_by: 'yoi ticket'
queued_at: '2026-07-10T23:35:04Z'
---
## 背景
Workspace Console の worker observation WebSocket は、BackendObservationProxy の保存済み history を接続時に replay している。そのためページ読み込み直後に Snapshot の後で過去の `user_message` などが WS frame として流れ、Console では「過去イベントがストリームされている」ように見える。
Console attach は現在状態の Snapshot と以後の live observation を見たいのであって、backend-local replay は不要。Snapshot は bootstrap、以後の event は live のみとする。
## 要件
- workspace-server の worker observation WebSocket から backend-local replay を削除する。
- BackendObservationProxy は replay history を持たず、必要なら runtime cursor の引き継ぎだけを扱う。
- Snapshot を backend history として保存・再送しない。
- Frontend Console 接続時に、Snapshot 後に過去の `user_message` / `tool_result` 等が replay されない。
- Runtime から live に届く observation event は従来通り browser に転送される。
## 受け入れ条件
- worker observation WS 接続時、最初に Snapshot が1回届き、その後は接続後に発生した live events のみ届く。
- backend-local replay 用の history / cursor validation / cursor unknown handling が削除または無効化される。
- 既存の proxy WS tests を replay 前提から snapshot + live 前提に更新する。
- `cargo test``nix build .#yoi` が通る。

View File

@ -0,0 +1,42 @@
<!-- event: create author: "yoi ticket" at: 2026-07-10T23:34:39Z -->
## 作成
LocalTicketBackend によって作成されました。
---
<!-- event: intake_summary author: hare at: 2026-07-10T23:35:04Z -->
## Intake summary
Marked ready by `yoi ticket state`.
---
<!-- event: state_changed author: "yoi ticket" at: 2026-07-10T23:35:04Z 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-10T23:35:04Z from: ready to: queued reason: queued field: state -->
## State changed
Ticket を `yoi ticket` が queued にしました。
---
<!-- event: state_changed author: "yoi ticket" at: 2026-07-10T23:35:04Z from: queued to: inprogress reason: cli_state field: state -->
## State changed
State changed to `inprogress`.
---