diff --git a/frontend/src/components/Channels.tsx b/frontend/src/components/Channels.tsx
index 32f4785..2e32004 100644
--- a/frontend/src/components/Channels.tsx
+++ b/frontend/src/components/Channels.tsx
@@ -444,7 +444,7 @@ function ChannelRow({
- {t("channels.row.fullHistoryQueued")}
+ {t("channels.row.fullHistoryComing")}
) : (
diff --git a/frontend/src/components/SyncStatus.tsx b/frontend/src/components/SyncStatus.tsx
index 447238e..2e5c368 100644
--- a/frontend/src/components/SyncStatus.tsx
+++ b/frontend/src/components/SyncStatus.tsx
@@ -57,6 +57,13 @@ export default function SyncStatus({
{t("header.sync.syncing", { count: syncing })}
+ ) : notFull > 0 ? (
+ // Recent uploads are in, but the scheduler is still backfilling full history —
+ // so "all synced" would be misleading. Reflect the deep work as active.
+
+
+ {t("header.sync.backfillingHistory")}
+
) : (
{t("header.sync.allSynced")}
)}
@@ -74,9 +81,10 @@ export default function SyncStatus({
>
)}
- {/* Pause only makes sense when there's work to pause; Resume must always show
- while paused so it can be lifted. Hidden entirely when idle and not paused. */}
- {isAdmin && (data.paused || syncing > 0) && (
+ {/* Pause only makes sense when there's work to pause (recent OR deep backfill);
+ Resume must always show while paused so it can be lifted. Hidden entirely when
+ idle and not paused. */}
+ {isAdmin && (data.paused || syncing > 0 || notFull > 0) && (
toggle.mutate()}
disabled={toggle.isPending}
diff --git a/frontend/src/i18n/locales/de/channels.json b/frontend/src/i18n/locales/de/channels.json
index e317808..8638c94 100644
--- a/frontend/src/i18n/locales/de/channels.json
+++ b/frontend/src/i18n/locales/de/channels.json
@@ -45,6 +45,7 @@
"full": "vollständig",
"fullHint": "Vollständiger Verlauf geladen.",
"fullHistoryQueued": "vollständiger Verlauf in Warteschlange",
+ "fullHistoryComing": "vollständiger Verlauf unterwegs",
"queuedRequestedHint": "Vollständiger Verlauf angefordert — der gesamte Katalog dieses Kanals wird nachgeladen, soweit das gemeinsame Kontingent es zulässt. Klicke, um deine Anforderung abzubrechen.",
"queuedByOtherHint": "Ein anderer Abonnent hat den vollständigen Verlauf dieses Kanals bereits angefordert, sein gesamter Katalog ist also für alle unterwegs — hier gibt es nichts zu tun.",
"getFullHistory": "vollständigen Verlauf laden",
diff --git a/frontend/src/i18n/locales/de/header.json b/frontend/src/i18n/locales/de/header.json
index b634f4f..1b4a765 100644
--- a/frontend/src/i18n/locales/de/header.json
+++ b/frontend/src/i18n/locales/de/header.json
@@ -25,6 +25,7 @@
"countTooltip": "Videos aus deinen Abos im Vergleich zur Gesamtzahl im gemeinsamen Katalog, den die Abos aller Nutzer gefüllt haben.",
"paused": "pausiert",
"syncing": "{{count}} werden synchronisiert",
+ "backfillingHistory": "Verlauf wird geladen",
"allSynced": "alles synchronisiert",
"withoutFullHistory": "{{count}} ohne vollständigen Verlauf",
"fullHistoryTooltip": "Einige deiner Kanäle haben nur ihre neuesten Uploads. Klicke, um die Kanalverwaltung (auf diese gefiltert) zu öffnen und ihren vollständigen Katalog anzufordern.",
diff --git a/frontend/src/i18n/locales/en/channels.json b/frontend/src/i18n/locales/en/channels.json
index 3fbbb72..9ecd280 100644
--- a/frontend/src/i18n/locales/en/channels.json
+++ b/frontend/src/i18n/locales/en/channels.json
@@ -45,6 +45,7 @@
"full": "full",
"fullHint": "Full history fetched.",
"fullHistoryQueued": "full history queued",
+ "fullHistoryComing": "full history coming",
"queuedRequestedHint": "Full history requested — this channel's whole back-catalog will backfill as the shared quota allows. Click to cancel your request.",
"queuedByOtherHint": "Another subscriber already requested this channel's full history, so its whole back-catalog is on its way to everyone — nothing to do here.",
"getFullHistory": "get full history",
diff --git a/frontend/src/i18n/locales/en/header.json b/frontend/src/i18n/locales/en/header.json
index d01e782..283ff0e 100644
--- a/frontend/src/i18n/locales/en/header.json
+++ b/frontend/src/i18n/locales/en/header.json
@@ -25,6 +25,7 @@
"countTooltip": "Videos from your subscriptions, against the total in the shared catalog that every user's subscriptions have pulled in.",
"paused": "paused",
"syncing": "{{count}} syncing",
+ "backfillingHistory": "fetching history",
"allSynced": "all synced",
"withoutFullHistory": "{{count}} without full history",
"fullHistoryTooltip": "Some of your channels only have their recent uploads. Click to open the channel manager (filtered to these) and request their full back-catalog.",
diff --git a/frontend/src/i18n/locales/hu/channels.json b/frontend/src/i18n/locales/hu/channels.json
index 6767ed4..30904eb 100644
--- a/frontend/src/i18n/locales/hu/channels.json
+++ b/frontend/src/i18n/locales/hu/channels.json
@@ -45,6 +45,7 @@
"full": "teljes",
"fullHint": "Teljes előzmény letöltve.",
"fullHistoryQueued": "teljes előzmény sorban",
+ "fullHistoryComing": "teljes előzmény úton",
"queuedRequestedHint": "Teljes előzmény kérve — a csatorna teljes archívuma letöltődik, ahogy a megosztott kvóta engedi. Kattints a kérés visszavonásához.",
"queuedByOtherHint": "Egy másik feliratkozó már kérte ennek a csatornának a teljes előzményét, így a teljes archívuma már úton van mindenkihez — itt nincs teendőd.",
"getFullHistory": "teljes előzmény lekérése",
diff --git a/frontend/src/i18n/locales/hu/header.json b/frontend/src/i18n/locales/hu/header.json
index 535fad8..cfd8726 100644
--- a/frontend/src/i18n/locales/hu/header.json
+++ b/frontend/src/i18n/locales/hu/header.json
@@ -25,6 +25,7 @@
"countTooltip": "A feliratkozásaidból származó videók száma a megosztott katalógus teljes számához képest, amelyet az összes felhasználó feliratkozásai gyűjtöttek össze.",
"paused": "szüneteltetve",
"syncing": "{{count}} szinkronizálás alatt",
+ "backfillingHistory": "előzmény letöltése",
"allSynced": "minden szinkronban",
"withoutFullHistory": "{{count}} teljes előzmény nélkül",
"fullHistoryTooltip": "Néhány csatornádnak csak a legutóbbi feltöltései vannak meg. Kattints a csatornakezelő megnyitásához (ezekre szűrve), és kérd le a teljes archívumukat.",