Switching away from a running session and back stops the view from updating (host keeps producing) #7101
Replies: 1 comment
|
The premise I'd correct first: there is no per-session subscription that is supposed to survive the switch. A main-view switch tears the whole Session down and a switch back builds a new one, so what you are looking at is a reopen that never settles — not a subscription that stopped being re-attached. What actually happens on a switch
Why you can sit at
|
Uh oh!
There was an error while loading. Please reload this page.
Summary
Switching away from a session that is actively streaming, then switching back to it, leaves the conversation view frozen at the state it had when I left. The host keeps producing the whole time — the missing output is only missing on the client.
Steps to reproduce
Reproduces reliably for me.
What makes it clear the host is fine
http://127.0.0.1:3080and in a Tauri WKWebView shell, so this is not a webview or rendering-layer issue.So the host side looks healthy; what does not survive is the client's event subscription for that session across the switch.
Environment
@deepseek-ai/dsh0.1.6-alpha.2,webprofile~/.dsh/sessions/, 38 MB compressed; largest single session 5.0 MB compressed / 18.2 MB decompressed / 4325 recordsNotes (offered as leads, not as a diagnosis)
I looked through the shipped bundles but could not pin the cause with confidence, so please treat the following as observations only:
openState === "loading"indsh-client-ui-chatwhile this happens, i.e.await events.open(...)inSessionController.doOpenhas not settled.doOpen's catch hasif (!isRemoteFailure(error)) throw errorbefore it can setopenState = "error". Any error that is not a normalised remote failure is rethrown and the state stays atloading— the user then sees neither a result nor an error. Whatever the root cause turns out to be, this path seems worth tightening: a failure that cannot present itself as a failure is hard to diagnose from the outside.SessionEventStream.followrequires assistant-stream revisions to be strictly contiguous and throwsRemoteStreamCarrierErroron a gap. Carrier errors are swallowed and retried without limit. Since the revision keeps advancing while I am away from the session, I wondered whether the reopened snapshot baseline and the following frames can disagree — but I could not confirm this, and it may well be unrelated.Happy to collect whatever runtime evidence would help (WS frames, host CPU, logs) — just say what would be useful.
All reactions