From 986ec4446dd5fd19c11f6b7f2cdd39711e52e3aa Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 9 Jun 2026 21:03:34 +0000 Subject: [PATCH] fix: Backfill-Stall-Guard gegen Endlosschleife am History-Ende --- src/server/scripts/backfill.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/server/scripts/backfill.ts b/src/server/scripts/backfill.ts index 8b19048..a8e571c 100644 --- a/src/server/scripts/backfill.ts +++ b/src/server/scripts/backfill.ts @@ -10,6 +10,7 @@ const since = Date.now() - TARGET_MONTHS * 30 * 24 * 60 * 60 * 1000; for (const pair of PAIRS) { let endTs: number | undefined = undefined; let total = 0; + let prevOldest: number | undefined = undefined; for (;;) { const batch = await fetchCandles(pair, '15m', 300, endTs); if (batch.length === 0) break; @@ -23,7 +24,10 @@ for (const pair of PAIRS) { await insertCandles(pair, closed); total += closed.length; + // Cursor aus batch (nicht closed): auch die laufende Candle schiebt die Paginierung zurück const oldest = Math.min(...batch.map((c) => c.ts)); + if (prevOldest !== undefined && oldest >= prevOldest) break; // API-History-Ende erreicht + prevOldest = oldest; if (oldest <= since) break; endTs = oldest - 1; await Bun.sleep(200); // Rate-Limit-Schonung