Repository navigation
RayRAG 0.4.47 — bounded downloads, host-sized ingestion (parity v0.3.8y)
RayRAG 0.4.47 — every download is bounded, and the app sizes itself to your machine
No more unbounded waits or downloads
RayRAG talks to embedding servers, vision models, OCR services, crawlers and object
storage. Every one of those reads is now capped:
- Timeouts on model calls.
RAYRAG_MODEL_TIMEOUT(default 300 s) replaces
"wait up to two hours" for embedding, vision and OCR requests. - A size limit on every response body.
RAYRAG_HTTP_BODY_LIMIT_BYTES
(default 32 MiB). The limit is enforced while the body is being read, so a server
that streams forever, lies about its length, or uses chunked transfer cannot make
RayRAG grow. Previously a crawler comment said "limit the response body (anti-OOM)"
— now it actually does.
Smaller memory during indexing
Committing a document used to hold three full copies of the search index
(including every embedding). It now holds one, the pre-image it needs to roll back.
The bigger your library, the more this matters.
The app measures your machine and adapts
At startup RayRAG reads your CPU count and free memory and decides how many
documents to index at once — half your cores, limited by what memory can hold, capped
at 8. This host reports:
Host resources detected; ingestion concurrency derived from them
host=12 cpus, 110.4 GiB available document_tasks=6
The same numbers appear in the admin console (GET /api/v1/system/status, host).
A small NAS now indexes one document at a time instead of running a workstation
default; a big machine is not throttled by a fixed guess. Set
RAYRAG_MAX_CONCURRENT_TASKS to override it.
Upgrading
git pull
docker compose build rayrag
docker compose up -d rayragNothing to migrate. New optional settings, all with safe defaults:
RAYRAG_MODEL_TIMEOUT, RAYRAG_HTTP_BODY_LIMIT_BYTES, RAYRAG_MAX_CONCURRENT_TASKS.
Verified with 1601 Rust tests and a real-browser walkthrough of every previewer
(14/14) on the running container.