Uh oh!
There was an error while loading. Please reload this page.
fix(tui): rehydrate sessions after reconnect - #37957
Conversation
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This PR doesn't fully meet our contributing guidelines and PR template. What needs to be fixed:
Please edit this PR description to address the above within 2 hours, or it will be automatically closed. If you believe this was flagged incorrectly, please let a maintainer know. |
The following comment was made by an LLM, it may be inaccurate: Based on my search results, I found one potentially related PR: Related PR:
However, PR #34010 appears to focus on a different layer (core response streams) while PR #37957 specifically addresses TUI event delivery after SSE transport failures and session state reconciliation through reconnect epochs. These are related but distinct improvements—#34010 handles lower-level stream error retries, while #37957 provides comprehensive reconnection and rehydration for the TUI sync provider. |
This pull request has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window. Feel free to open a new pull request that follows our guidelines. |
Issue for this PR
Closes#32175
Type of change
What does this PR do?
The TUI could stop receiving events after a transient global SSE failure, and sessions already mounted before the gap remained stale after transport returned.
This change keeps those two concerns separate. The SDK provider retries rejected connections, iterator failures, and normal stream completion with bounded exponential backoff. Later
server.connectedepochs then reconcile the authoritative session list/status and atomically refresh already-loaded session metadata, messages, parts, todo, and diff state. Confirmed deletions are pruned, failed hydration preserves prior state, and reconnect storms are serialized without overlapping passes.How did you verify your code works?
--rerun-each 20.00470701974fa23189a34c63f61b1932f2a4f394: SHA-256a1ddeef525be970223b354706bf240728c07d961932a129b70bf2718c9c3953b.Screenshots / recordings
Not applicable. This fixes transport and store reconciliation behavior; the runtime check asserted the mounted TUI pane title before, during, and after each gap.
Checklist