project-nomad/admin/app/jobs
Chris Sherwood ea72ebbd9b fix(KB): stop ZIM ingestion progress freezing at 99% on multi-page archives
On ZIMs that pack one logical article as several sub-pages (e.g. iFixit),
iterByPath yields more entries passing our isArticleEntry() filter than
archive.articleCount reports. The inter-batch progress used nextOffset /
articleCount, so the numerator outran the denominator, the ratio overflowed past
100%, and the UI (which clamps at 99%) pinned the file at 99% for the entire
remaining tail, making it look hung.

Grow the denominator to max(articleCount, nextOffset + ZIM_BATCH_SIZE) once we
pass the reported article count, so progress keeps creeping forward monotonically
instead of freezing, and clamp to 99% so only the genuinely-final batch reports
100%.

This is a graceful heuristic, not exact progress (true accuracy would require a
pre-scan to count isArticleEntry matches up front); it removes the user-visible
"stuck at 99%" symptom with no change to batch semantics.

Closes #903

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:29:32 -07:00
..
app_auto_update_job.ts feat(supply-depot): opt-in automatic updates for installed apps 2026-06-07 15:56:42 -07:00
auto_update_job.ts feat(system): add opt-in automatic updates for the core NOMAD app 2026-06-07 15:52:56 -07:00
check_service_updates_job.ts feat(supply-depot): opt-in automatic updates for installed apps 2026-06-07 15:56:42 -07:00
check_update_job.ts fix(queue): singleton QueueService to stop ioredis connection leak 2026-05-20 10:16:00 -07:00
download_model_job.ts fix(queue): singleton QueueService to stop ioredis connection leak 2026-05-20 10:16:00 -07:00
embed_file_job.ts fix(KB): stop ZIM ingestion progress freezing at 99% on multi-page archives 2026-06-08 14:29:32 -07:00
run_benchmark_job.ts fix(queue): singleton QueueService to stop ioredis connection leak 2026-05-20 10:16:00 -07:00
run_download_job.ts fix(KB): respect Manual ingest policy on post-download dispatch 2026-05-20 10:16:00 -07:00
run_extract_pmtiles_job.ts fix(queue): singleton QueueService to stop ioredis connection leak 2026-05-20 10:16:00 -07:00