feat(chat): desktop-parity session resume — warm cache + bounded retry (#766)
Bring the desktop's session reconnection UX to mobile: - Warm-cache fast-path: switchSession paints the cached Room transcript immediately instead of blanking the screen, then refreshes from the server in parallel (stale cache can't clobber a fresher server page) - Bounded auto-retry: a failed session.resume (WS reject or REST transcript failure) retries with exponential backoff 1s->2s->4s->8s, capped at 4 attempts; WS + REST failures in the same cycle count as one - Explicit error recovery: after exhaustion the chat shows an error card with a manual Retry instead of latching the spinner forever; manual retry resets the backoff cycle - Reconnect-aware resume: gateway (re)connect clears stale error state and re-resumes the current session on the new socket - Unit tests: warm-cache paint, bounded retry exhaustion, WS+REST dedupe, manual retry reset, reconnect restart Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
1 parent
982f8aec4e
commit
5e1ee0b4e5
5 files changed
+498
-6
No files matched your search
@@ -119,6 +119,7 @@
|
||||
<string name="chat_empty_title">Ready to chat</string>
|
||||
<string name="chat_empty_subtitle">Send a message to start a conversation</string>
|
||||
<string name="chat_status_connecting">Connecting to Hermes\u2026</string>
|
||||
<string name="chat_resume_error_title">Couldn\'t connect to this session</string>
|
||||
<string name="chat_status_reconnecting">Reconnecting\u2026</string>
|
||||
<string name="chat_status_disconnected">Disconnected</string>
|
||||
<string name="chat_status_no_network">No network</string>
|
||||
|
||||
Reference in new issue
Block a user