ticket: complete inflight snapshot fix
This commit is contained in:
parent
b21638f56c
commit
77b5276fd3
|
|
@ -1,8 +1,8 @@
|
||||||
---
|
---
|
||||||
title: 'Pod protocol: in-flight LLM response reconnect snapshot should include unfinished blocks'
|
title: 'Pod protocol: in-flight LLM response reconnect snapshot should include unfinished blocks'
|
||||||
state: 'inprogress'
|
state: 'closed'
|
||||||
created_at: '2026-06-21T10:02:01Z'
|
created_at: '2026-06-21T10:02:01Z'
|
||||||
updated_at: '2026-06-21T11:56:44Z'
|
updated_at: '2026-06-21T12:00:02Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
readiness: 'implementation_ready'
|
readiness: 'implementation_ready'
|
||||||
risk_flags: ['protocol', 'session-history', 'persistence', 'tui-reconnect', 'stream-state']
|
risk_flags: ['protocol', 'session-history', 'persistence', 'tui-reconnect', 'stream-state']
|
||||||
|
|
|
||||||
20
.yoi/tickets/00001KVMT2J25/resolution.md
Normal file
20
.yoi/tickets/00001KVMT2J25/resolution.md
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
In-flight LLM response 中の reconnect / late attach snapshot に unfinished blocks を含める protocol/pod/TUI 実装を統合した。
|
||||||
|
|
||||||
|
主な成果:
|
||||||
|
- `Event::Snapshot` に typed `InFlightSnapshot` / `InFlightBlock` を追加。
|
||||||
|
- Pod 側に assistant text / thinking / tool-call args の in-flight accumulator を追加。
|
||||||
|
- Streaming callbacks が accumulator 更新と live delta broadcast を同じ stream path で行うようにした。
|
||||||
|
- Connect-time snapshot が in-flight stream state を含むようにした。
|
||||||
|
- Session-log mirror snapshot と in-flight snapshot、および finalized `AssistantItem` publish/clear の critical section を揃え、mirror-only assistant commit が snapshot/live boundary で消える race を防止した。
|
||||||
|
- Finalized assistant item が committed snapshot に含まれる場合は matching in-flight state を clear して duplicate を防ぐ。
|
||||||
|
- TUI snapshot restore が unfinished text/thinking/tool-call args blocks を seed し、後続 live deltas が同じ logical block に continuation されるようにした。
|
||||||
|
- Serialization/default compatibility、snapshot/live no-gap/no-duplicate、TUI continuation の focused regression tests を追加。
|
||||||
|
|
||||||
|
統合・検証:
|
||||||
|
- Merge commit: `b21638f5 merge: inflight reconnect snapshot`
|
||||||
|
- Implementation commits: `74aca6f6`, `061136d7`
|
||||||
|
- Reviewer final verdict: approve
|
||||||
|
- Validation passed: `cargo fmt --all --check`, `git diff --check HEAD^1..HEAD`, `cargo test -p protocol`, `cargo test -p pod --lib in_flight`, `cargo test -p pod session_log_and_in_flight_snapshot_prevents_mirror_only_assistant_gap`, `cargo test -p pod committed_assistant_snapshot_does_not_duplicate_in_flight_block`, `cargo test -p tui snapshot_in_flight_blocks_continue_with_live_deltas`, `cargo test -p tui`, `cargo check -p protocol -p pod -p tui`, and `cargo run -p yoi -- ticket doctor`。
|
||||||
|
|
||||||
|
既知の無関係事項:
|
||||||
|
- Full `cargo test -p pod` は既存の prompt-resource assertion 2 件で失敗することが reviewer により確認済み。この Ticket の差分とは無関係。
|
||||||
|
|
@ -486,3 +486,79 @@ Worktree status:
|
||||||
- Clean on `impl/00001KVMT2J25-inflight-snapshot` at `061136d7`。
|
- Clean on `impl/00001KVMT2J25-inflight-snapshot` at `061136d7`。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-21T11:59:39Z -->
|
||||||
|
|
||||||
|
## Implementation report
|
||||||
|
|
||||||
|
Reviewer r2 approvalを受けて、実装ブランチを Orchestrator worktree の `orchestration` branch に統合した。
|
||||||
|
|
||||||
|
統合:
|
||||||
|
- Merge commit: `b21638f5 merge: inflight reconnect snapshot`
|
||||||
|
- Merged branch: `impl/00001KVMT2J25-inflight-snapshot`
|
||||||
|
- Implementation commits:
|
||||||
|
- `74aca6f6 fix: snapshot in-flight stream state`
|
||||||
|
- `061136d7 fix: close in-flight snapshot commit race`
|
||||||
|
|
||||||
|
Orchestrator worktree validation:
|
||||||
|
- `cargo fmt --all --check`: passed
|
||||||
|
- `git diff --check HEAD^1..HEAD`: passed
|
||||||
|
- `cargo test -p protocol`: passed (`40 passed`)
|
||||||
|
- `cargo test -p pod --lib in_flight`: passed (`5 selected tests`)
|
||||||
|
- `cargo test -p pod session_log_and_in_flight_snapshot_prevents_mirror_only_assistant_gap`: passed
|
||||||
|
- `cargo test -p pod committed_assistant_snapshot_does_not_duplicate_in_flight_block`: passed
|
||||||
|
- `cargo test -p tui snapshot_in_flight_blocks_continue_with_live_deltas`: passed
|
||||||
|
- `cargo test -p tui`: passed (`367 passed`)
|
||||||
|
- `cargo check -p protocol -p pod -p tui`: passed
|
||||||
|
- `cargo run -p yoi -- ticket doctor`: passed (`doctor: ok`)
|
||||||
|
|
||||||
|
Known unrelated validation note:
|
||||||
|
- Full `cargo test -p pod` was not repeated in Orchestrator after merge because Reviewer confirmed it still fails only on pre-existing prompt-resource assertions unrelated to this diff。
|
||||||
|
|
||||||
|
Final Orchestrator worktree status after validation: clean on `orchestration` at `b21638f5`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: yoi-orchestrator at: 2026-06-21T11:59:47Z from: inprogress to: done reason: implementation_merged_and_validated field: state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Reviewer approval、Orchestrator worktree への統合、protocol/pod/TUI focused tests、cargo check、Ticket doctor が完了したため `done` に遷移する。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: hare at: 2026-06-21T12:00:02Z from: done to: closed reason: closed field: state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Ticket を closed にしました。
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: close author: hare at: 2026-06-21T12:00:02Z status: closed -->
|
||||||
|
|
||||||
|
## 完了
|
||||||
|
|
||||||
|
In-flight LLM response 中の reconnect / late attach snapshot に unfinished blocks を含める protocol/pod/TUI 実装を統合した。
|
||||||
|
|
||||||
|
主な成果:
|
||||||
|
- `Event::Snapshot` に typed `InFlightSnapshot` / `InFlightBlock` を追加。
|
||||||
|
- Pod 側に assistant text / thinking / tool-call args の in-flight accumulator を追加。
|
||||||
|
- Streaming callbacks が accumulator 更新と live delta broadcast を同じ stream path で行うようにした。
|
||||||
|
- Connect-time snapshot が in-flight stream state を含むようにした。
|
||||||
|
- Session-log mirror snapshot と in-flight snapshot、および finalized `AssistantItem` publish/clear の critical section を揃え、mirror-only assistant commit が snapshot/live boundary で消える race を防止した。
|
||||||
|
- Finalized assistant item が committed snapshot に含まれる場合は matching in-flight state を clear して duplicate を防ぐ。
|
||||||
|
- TUI snapshot restore が unfinished text/thinking/tool-call args blocks を seed し、後続 live deltas が同じ logical block に continuation されるようにした。
|
||||||
|
- Serialization/default compatibility、snapshot/live no-gap/no-duplicate、TUI continuation の focused regression tests を追加。
|
||||||
|
|
||||||
|
統合・検証:
|
||||||
|
- Merge commit: `b21638f5 merge: inflight reconnect snapshot`
|
||||||
|
- Implementation commits: `74aca6f6`, `061136d7`
|
||||||
|
- Reviewer final verdict: approve
|
||||||
|
- Validation passed: `cargo fmt --all --check`, `git diff --check HEAD^1..HEAD`, `cargo test -p protocol`, `cargo test -p pod --lib in_flight`, `cargo test -p pod session_log_and_in_flight_snapshot_prevents_mirror_only_assistant_gap`, `cargo test -p pod committed_assistant_snapshot_does_not_duplicate_in_flight_block`, `cargo test -p tui snapshot_in_flight_blocks_continue_with_live_deltas`, `cargo test -p tui`, `cargo check -p protocol -p pod -p tui`, and `cargo run -p yoi -- ticket doctor`。
|
||||||
|
|
||||||
|
既知の無関係事項:
|
||||||
|
- Full `cargo test -p pod` は既存の prompt-resource assertion 2 件で失敗することが reviewer により確認済み。この Ticket の差分とは無関係。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user