Skip to content

fix: Gemini session output rendering, session resume after page refresh#179

Merged
everett4320 merged 1 commit intoOpenLAIR:redo-session-lifecycle-after-167-revertfrom
everett4320:topic/upstream/pr170-review-fixes
Apr 15, 2026
Merged

fix: Gemini session output rendering, session resume after page refresh#179
everett4320 merged 1 commit intoOpenLAIR:redo-session-lifecycle-after-167-revertfrom
everett4320:topic/upstream/pr170-review-fixes

Conversation

@everett4320
Copy link
Copy Markdown
Collaborator

  • Extend temporary session rebind logic to cover Gemini (previously Codex-only), fixing the race where gemini-response messages arrive before React updates activeViewSessionId from the new-session-* placeholder.

  • Add WebSocketWriter.replaceSocket() hot-swap method and store writer references in all provider session maps (Claude SDK, Codex, Gemini, OpenRouter, Local GPU, Nano). On check-session-status, if the session is still running, rebind the writer to the reconnected WebSocket so messages reach the new client.

  • Increase STATUS_VALIDATION_TIMEOUT_MS from 5s to 10s and guard the timeout effect with a !ws check so it only starts counting after the WebSocket connects.

- Extend temporary session rebind logic to cover Gemini (previously Codex-only),
  fixing the race where gemini-response messages arrive before React updates
  activeViewSessionId from the new-session-* placeholder.

- Add WebSocketWriter.replaceSocket() hot-swap method and store writer references
  in all provider session maps (Claude SDK, Codex, Gemini, OpenRouter, Local GPU,
  Nano). On check-session-status, if the session is still running, rebind the
  writer to the reconnected WebSocket so messages reach the new client.

- Increase STATUS_VALIDATION_TIMEOUT_MS from 5s to 10s and guard the timeout
  effect with a !ws check so it only starts counting after the WebSocket connects.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@everett4320 everett4320 merged commit 08f861c into OpenLAIR:redo-session-lifecycle-after-167-revert Apr 15, 2026
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.

1 participant