fix: preserve clarify fallback ownership
This commit is contained in:
1 parent
5528e2c579
commit
0f26b99a11
3 files changed
+22
-1
No files matched your search
@@ -3,6 +3,10 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed
|
||||
|
||||
- Clarify prompt SSE fallback polling now preserves its owner session id, matching approval polling behavior so terminal events from another session cannot stop the active clarify fallback poller.
|
||||
|
||||
## [v0.51.152] — 2026-05-28 — Release DX (stage-batch34 — single-PR optional gateway-backed browser chat)
|
||||
|
||||
### Added
|
||||
|
||||
+3
-1
@@ -3147,7 +3147,8 @@ function startClarifyPolling(sid) {
|
||||
});
|
||||
|
||||
_clarifyEventSource.onerror = function() {
|
||||
stopClarifyPolling();
|
||||
if (_clarifyEventSource) { try { _clarifyEventSource.close(); } catch(_){} _clarifyEventSource = null; }
|
||||
if (_clarifyHealthTimer) { clearInterval(_clarifyHealthTimer); _clarifyHealthTimer = null; }
|
||||
_startClarifyFallbackPoll(sid);
|
||||
};
|
||||
|
||||
@@ -3177,6 +3178,7 @@ function startClarifyPolling(sid) {
|
||||
}
|
||||
|
||||
function _startClarifyFallbackPoll(sid) {
|
||||
_clarifyPollingSessionId = sid || null;
|
||||
_clarifyFallbackTimer = setInterval(async () => {
|
||||
if (!S.session || S.session.session_id !== sid) {
|
||||
stopClarifyPolling(); _hideClarifyCardIfOwner(sid, true, 'session'); return;
|
||||
|
||||
@@ -117,6 +117,21 @@ class TestSessionOwnedRuntimeInvariants:
|
||||
"the active pane currently owns."
|
||||
)
|
||||
|
||||
def test_clarify_sse_fallback_preserves_owner_session_id(self):
|
||||
messages = read("static/messages.js")
|
||||
start_clarify = _function_body(messages, "startClarifyPolling")
|
||||
fallback = _function_body(messages, "_startClarifyFallbackPoll")
|
||||
|
||||
assert "_clarifyPollingSessionId = sid || null" in fallback, (
|
||||
"Any clarify fallback poller should retain its owner session id."
|
||||
)
|
||||
onerror_idx = start_clarify.index("_clarifyEventSource.onerror")
|
||||
onerror_body = start_clarify[onerror_idx:start_clarify.index("};", onerror_idx)]
|
||||
assert "stopClarifyPolling();" not in onerror_body, (
|
||||
"SSE fallback must not clear _clarifyPollingSessionId before starting the fallback poller."
|
||||
)
|
||||
assert "_startClarifyFallbackPoll(sid)" in onerror_body
|
||||
|
||||
def test_live_stream_transport_and_inflight_state_remain_session_keyed(self):
|
||||
messages = read("static/messages.js")
|
||||
close_live = _function_body(messages, "closeLiveStream")
|
||||
|
||||
Reference in new issue
Block a user