'Connecting…' strip stays about 30 s after the app is already usable #274

Closed
opened 2026-10-04 17:41:31 -04:00 by jared · 0 comments
Owner

What happens
After every load, the green "Connecting…" strip stays at the top until the first incremental /sync returns. On a quiet account that request long-polls for up to 30 s. Meanwhile the app is fully usable: rooms are loaded, messages send, and calls can be joined.

Measured locally: room usable at 7 s, strip gone at 36 s. Users see "Connecting…" while everything works, which undermines the strips that do mean trouble (the #124 server status banner, "Connection lost").

Why
SyncStatus shows the strip while current ∈ {Prepared, Syncing, Catchup} and previous !== Syncing (src/app/pages/client/SyncStatus.tsx:37-58). Prepared counts as "connecting". This logic comes from upstream Cinny.

Fix ideas

  • Don't show the strip for Prepared (the initial sync is already done).
  • Or only show it if the state hasn't reached Syncing within a few seconds and the last sync attempt failed.

Screenshot

F16-connecting-strip.png

More context

Upstream: Cinny's SyncStatus has the same condition, so this isn't Lotus-introduced. Lotus makes it more visible because the status-banner/nudge strips share the slot and SecurityBanner waits for "two SYNCING in a row".

Who: everyone on load. It's worst on quiet accounts, and on the desktop app after resume from the tray.

Acceptance criteria: the strip disappears once the room list is usable (within ~2 s of PREPARED) unless the next sync actually fails.


Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny 30e2dbcd, cinny-desktop 8f67ec7, element-call 3b0050e8.

**What happens** After every load, the green **"Connecting…"** strip stays at the top until the first *incremental* `/sync` returns. On a quiet account that request long-polls for up to 30 s. Meanwhile the app is fully usable: rooms are loaded, messages send, and calls can be joined. Measured locally: room usable at **7 s**, strip gone at **36 s**. Users see "Connecting…" while everything works, which undermines the strips that *do* mean trouble (the #124 server status banner, "Connection lost"). **Why** `SyncStatus` shows the strip while `current ∈ {Prepared, Syncing, Catchup}` and `previous !== Syncing` (src/app/pages/client/SyncStatus.tsx:37-58). `Prepared` counts as "connecting". This logic comes from upstream Cinny. **Fix ideas** - Don't show the strip for `Prepared` (the initial sync is already done). - Or only show it if the state hasn't reached `Syncing` within a few seconds and the last sync attempt failed. **Screenshot** ![F16-connecting-strip.png](https://code.lotusguild.org/attachments/57aa3d0f-8cf5-4d46-b61a-cfaa19b47811) ### More context **Upstream:** Cinny's `SyncStatus` has the same condition, so this isn't Lotus-introduced. Lotus makes it more visible because the status-banner/nudge strips share the slot and `SecurityBanner` waits for "two SYNCING in a row". **Who:** everyone on load. It's worst on quiet accounts, and on the desktop app after resume from the tray. **Acceptance criteria:** the strip disappears once the room list is usable (within ~2 s of `PREPARED`) unless the next sync actually fails. --- _Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny `30e2dbcd`, cinny-desktop `8f67ec7`, element-call `3b0050e8`._
jared added the priority: lowuxarea: navigation labels 2026-10-04 17:41:31 -04:00
jared closed this issue 2026-10-19 16:15:39 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#274