Reconnect quietly when the connection drops #52

Closed
opened 2026-10-17 17:29:50 +00:00 by littlefox · 1 comment
Owner

Sleep, a train tunnel or a Wi-Fi change drops the connection, and today the user starts over at the login page. On iPhone this happens every time the app goes to the background for more than a few seconds, so this is a must for the phone layout.

What:

  • Detect the drop (socket closed, or a keepalive timeout).
  • Reconnect with backoff, log in again with the password kept in memory for this session, and restore the place: current conference, the text on screen, the reading position.
  • A small "reconnecting…" banner, not a modal; after a few failures, a button to retry.
  • Same TLS rules as at login (D-026): never fall back to plain text silently.

Done when:

  • An e2e spec kills the relay connection mid-read and the reader carries on after reconnect, without the user doing anything.
  • A desktop test does the same over TCP.
  • Unread counts are right after reconnect (no double-read, no lost texts).

From docs/ROADMAP.md, 0.2 "Feels like an app".

Sleep, a train tunnel or a Wi-Fi change drops the connection, and today the user starts over at the login page. On iPhone this happens every time the app goes to the background for more than a few seconds, so this is a must for the phone layout. What: - Detect the drop (socket closed, or a keepalive timeout). - Reconnect with backoff, log in again with the password kept in memory for this session, and restore the place: current conference, the text on screen, the reading position. - A small "reconnecting…" banner, not a modal; after a few failures, a button to retry. - Same TLS rules as at login (D-026): never fall back to plain text silently. Done when: - An e2e spec kills the relay connection mid-read and the reader carries on after reconnect, without the user doing anything. - A desktop test does the same over TCP. - Unread counts are right after reconnect (no double-read, no lost texts). From docs/ROADMAP.md, 0.2 "Feels like an app".
Author
Owner

Merged in #84. Reconnects with backoff after an unexpected drop (password in memory only, TLS rules kept), back to the same channel and post. reconnect.spec.ts closes the app's WebSocket and checks banner, place, counts. Hanging connections: #81.

Merged in #84. Reconnects with backoff after an unexpected drop (password in memory only, TLS rules kept), back to the same channel and post. reconnect.spec.ts closes the app's WebSocket and checks banner, place, counts. Hanging connections: #81.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
littlefox/neokom#52
No description provided.