What's changed
Bug fixes
- Chat no longer times out on CPU-only hardware — the Ollama streaming request timeout was increased from 180 s to 600 s. On CPU-only machines, a 7B model can take several minutes to generate a first token; the previous limit caused blank answers with the spinner spinning indefinitely.
llama3.1:13b replaced with mistral-nemo:12b — Llama 3.1 has no 13B variant in Ollama's library (only 8B, 70B, 405B). The setup wizard and the GPU-based model recommendation in the server now correctly offer mistral-nemo:12b (~7 GB, 12 GB+ RAM recommended) for that tier.
- Scanned/image-only PDFs correctly reported — files with no extractable text (e.g. scanned certificates, passport photos) now print a clear
[SKIP] filename (no text found — likely a scanned/image-only PDF) message instead of the generic "no chunks embedded" message.
New features
- Ingestion error log — every failed or skipped file is now appended to
/opt/zettabrain/src/ingest_errors.log with a timestamp and the exact reason. Useful for diagnosing which files need OCR or are otherwise unreadable.
- "Sources" label in the chat UI — retrieved source document chips now appear under a clear SOURCES heading, making it obvious they are reference documents rather than part of the answer.
CI
- Install scripts deploy on every push to
main — the deploy-install.yml workflow path filter (paths: [install.sh, ...]) was removed so S3 and CloudFront are always kept in sync with the repo on every release.
Upgrade
# Linux / macOS
sudo pipx upgrade zettabrain-rag
# Windows
pipx upgrade zettabrain-rag