project-nomad/admin
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 fix(KB): stop ZIM ingestion progress freezing at 99% on multi-page archives 2026-06-08 14:29:32 -07:00
bin feat: curated content system overhaul 2026-02-11 15:44:46 -08:00
commands feat(supply-depot): opt-in automatic updates for installed apps 2026-06-07 15:56:42 -07:00
config feat(config): respect REDIS_DB env var for queue and transmit 2026-06-07 15:11:22 -07:00
constants feat(supply-depot): opt-in automatic updates for installed apps 2026-06-07 15:56:42 -07:00
database feat(supply-depot): opt-in automatic updates for installed apps 2026-06-07 15:56:42 -07:00
docs feat(supply-depot): per-app onboarding docs, install fixes, and in-app Docs links 2026-06-06 11:08:52 -07:00
inertia feat(supply-depot): opt-in automatic updates for installed apps 2026-06-07 15:56:42 -07:00
providers feat(GPU): auto-remediate nomad_ollama passthrough loss on admin boot (#755) 2026-05-20 10:16:00 -07:00
public feat: switch all PNG images to WEBP (#575) 2026-04-03 14:26:50 -07:00
resources feat(Maps): regional map downloads via go-pmtiles extract (#780) 2026-05-20 10:16:00 -07:00
scripts fix(supply-depot): correct Meshtastic Web internal port (80->8080); add catalog port audit script 2026-06-06 11:08:52 -07:00
start feat(supply-depot): opt-in automatic updates for installed apps 2026-06-07 15:56:42 -07:00
tests fix(KB): stop partial_stall warning firing on atypical ZIMs (link-out/PDF-heavy) 2026-06-08 14:23:40 -07:00
types feat(supply-depot): opt-in automatic updates for installed apps 2026-06-07 15:56:42 -07:00
util feat: display model download progress 2026-02-06 16:22:23 -08:00
views feat: initial commit 2025-06-29 15:51:08 -07:00
.editorconfig feat: initial commit 2025-06-29 15:51:08 -07:00
.env.example feat(config): respect REDIS_DB env var for queue and transmit 2026-06-07 15:11:22 -07:00
ace.js feat: initial commit 2025-06-29 15:51:08 -07:00
adonisrc.ts feat(GPU): auto-remediate nomad_ollama passthrough loss on admin boot (#755) 2026-05-20 10:16:00 -07:00
eslint.config.js feat: openwebui+ollama and zim management 2025-07-09 09:08:21 -07:00
package-lock.json chore: align package license with Apache-2.0 and fix README docs links/typos 2026-06-07 14:57:26 -07:00
package.json chore: align package license with Apache-2.0 and fix README docs links/typos 2026-06-07 14:57:26 -07:00
tailwind.config.ts feat: initial commit 2025-06-29 15:51:08 -07:00
tsconfig.json feat: initial commit 2025-06-29 15:51:08 -07:00
vite.config.ts fix(Maps): ensure proper parsing of hostnames (#640) 2026-04-03 14:26:50 -07:00