From 5b8e78940a39c052e19ba242d17b4aaf519b8621 Mon Sep 17 00:00:00 2001 From: Fisto Date: Thu, 17 Sep 2026 09:08:59 +0200 Subject: [PATCH] Show the effective backfill rate beside the ETA --- CURRENT.md | 8 ++++++-- poc/public/media.js | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CURRENT.md b/CURRENT.md index 5ff8828..dd738b8 100644 --- a/CURRENT.md +++ b/CURRENT.md @@ -52,8 +52,12 @@ mobile draft at 390px. scrape, dismisses a paused one on Stop without stopping it, turns red while limited, and shows a session-only `N scrapes completed` note. The old `VESKSLOP_MEDIA_*` tuning env vars are gone. New unit tests cover batching, the cooldown, live retuning, and queue grouping/finish/pause; - the Playwright smoke test covers the Bot tab. Live: daemon restarted, 6018 pending / 13321 - cached / 652 failed, ETA 4h 7m at 21.4 rows/min, settings round-trip verified. + the Playwright smoke test covers the Bot tab. Also fixed a real stall the queue exposed: + `pendingPreviews` never returned thumbnail-less embeds, so they sat pending forever and stalled + the job; the store now includes them and the resolver handles Discord CDN unfurls through the + proxy frame, with a content-type guard so the og:image fallback never reads media bytes. Live: + daemon restarted, pending falling (6018 → ~5900), cached rising, dead CDN unfurls closed as 404, + jobs queue smallest-first, settings round-trip verified (21.4 → 37.5 rows/min at 30 s cooldown). - [x] C42 Preview attempts cap. The restart log showed the backfill retrying dead hosts (Gfycat DNS is gone, Streamable answers 400) forever as "transient". Rows now carry `preview_attempts`; after `VESKSLOP_MEDIA_PREVIEW_MAX_ATTEMPTS` (3) the row is marked diff --git a/poc/public/media.js b/poc/public/media.js index da17c23..d589fa7 100644 --- a/poc/public/media.js +++ b/poc/public/media.js @@ -563,8 +563,8 @@ el( "div", "vk-bot-summary-line", - `ETA ${formatEta(totals.etaMs)} at ${status.estimatedPerMinute ?? 0} rows/min ` + - `(current settings)` + `ETA ${formatEta(totals.etaMs)} at ${totals.perMinute ?? 0} rows/min ` + + `(settings estimate ${status.estimatedPerMinute ?? 0}/min)` ), el( "div",