From c6aac574ee9401659eb75c0541b1f048afa2734b Mon Sep 17 00:00:00 2001 From: Lotus CI Date: Mon, 19 Oct 2026 15:14:38 -0400 Subject: [PATCH] =?UTF-8?q?fix(sync):=20"Connecting=E2=80=A6"=20only=20whi?= =?UTF-8?q?le=20catching=20up,=20not=20for=2030=20s=20after=20load=20(#274?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The strip showed for PREPARED and for the first SYNCING after it (or after RECONNECTING), i.e. until the next /sync returned: ~30 s of long-poll on a quiet account while the app already worked. A SYNCING means a sync just succeeded, so the strip now shows only during CATCHUP; failures still show as Reconnecting / Connection lost. Fixes #274 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5 --- src/app/pages/client/SyncStatus.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app/pages/client/SyncStatus.tsx b/src/app/pages/client/SyncStatus.tsx index a6ae01056..d21088388 100644 --- a/src/app/pages/client/SyncStatus.tsx +++ b/src/app/pages/client/SyncStatus.tsx @@ -65,12 +65,12 @@ export function SyncStatus({ mx }: SyncStatusProps) { ); } - if ( - (stateData.current === SyncState.Prepared || - stateData.current === SyncState.Syncing || - stateData.current === SyncState.Catchup) && - stateData.previous !== SyncState.Syncing - ) { + // [Gitea #274] Only while catching up after a drop. Upstream also showed it + // for PREPARED and for the first SYNCING after PREPARED/RECONNECTING, i.e. + // until the NEXT /sync returned: on a quiet account that long-polls ~30 s + // while the app already works (a SYNCING means a sync just succeeded). + // A real failure still surfaces as Reconnecting / Connection lost. + if (stateData.current === SyncState.Catchup) { return (