Skip to content

fix(app): recover SSE after mobile app resume - #44903

Open
cmt-t wants to merge 1 commit into
anomalyco:devfrom
cmt-t:mobile-sse-recovery
Open

fix(app): recover SSE after mobile app resume#44903
cmt-t wants to merge 1 commit into
anomalyco:devfrom
cmt-t:mobile-sse-recovery

Conversation

@cmt-t

@cmt-t cmt-t commented Aug 25, 2026

Copy link
Copy Markdown

Issue for this PR

Closes #39030

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

On iOS Safari, switching to another app can suspend the page and close the OpenCode SSE connection. When the user returns, the assistant may have finished on the server while the web UI remains stuck until a manual refresh.

This change reconnects the stream when the document becomes visible again. It also detects silently stalled streams and resynchronizes active session status and message timelines after reconnect. The implementation builds on the recovery work in #41299.

How did you verify your code works?

  • Focused tests: 27 passed, 0 failed.
  • bun run --cwd packages/app typecheck passed.
  • Production validation: an ARM64 OpenCode build recovered an iOS Safari session after the page stayed in the background for an extended period, without a manual refresh.

Screenshots / recordings

No UI surface changed; this is a connection recovery behavior change.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

If you do not follow this template your PR will be automatically rejected.

Copilot AI lite review requested due to automatic review settings August 25, 2026 06:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added the needs:compliance This means the issue will auto-close after 2 hours. label Aug 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Related Open PRs Found

#41299 - fix(app): auto-reconnect stale SSE streams and repair state drift

  • This is directly referenced in the current PR's description as prior recovery work that this PR builds upon

#39349 - fix(app): recover from a silently dead event stream

#43607 - fix(provider): ignore SSE comment heartbeats for chunk timeout

Note: PR #44903 is the current PR, so it's correctly excluded from the duplicates list. The other PRs are related but appear to be either prior work, complementary fixes, or addressing related aspects of SSE stream handling.

@github-actions github-actions Bot removed the needs:compliance This means the issue will auto-close after 2 hours. label Aug 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for updating your PR! It now meets our contributing guidelines. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mobile browser tab does not reconnect SSE stream after returning from another app

2 participants