fix: gate idle recovery on exact runtime status

(cherry picked from commit 35597715018e598bf24f0b708cbd32b039533a99)
This commit is contained in:
Frank Song committed 2026-09-23 11:57:31 +08:00
1 parent ca2153ec54
commit bbca954c5c
5 files changed
+172 -12

No files matched your search

+7 -3
View File
@@ -476,9 +476,13 @@ Expected behavior:
Missing, connecting, closed, or mismatched transports keep the normal stale
state recovery path; a cached stream ID or busy flag is insufficient.
OPEN is not proof that a terminal frame will arrive: an idle hint must also
schedule bounded canonical snapshot recovery without erasing the live scene.
A newer turn, replacement source, or received terminal event invalidates that
request; a still-active server snapshot is not permission to terminate work.
schedule bounded recovery without erasing the live scene. Before reading a
settled session snapshot, that recovery must check the exact stream's runtime
status. A runtime-active stream retains ownership even when persisted
`active_stream_id` and pending fields are already clear; only explicit
runtime inactivity permits canonical snapshot settlement. Probe failure is a
degraded/interrupted state, not evidence of successful completion. A newer
turn, replacement source, or received terminal event invalidates the request.
- Background completion, cancellation, or failure should be represented without
stealing the visible pane from the user.
- Session switching should not erase pending live context, in-flight snapshots,