System
Every ingestion attempt is recorded: latency, chunk yield, dedupe rate, and estimated embedding spend. Documents that exhaust their retries land in the dead letter queue below.
Runs
0
All attempts
Success
—
0 failed
p95 latency
—
Successful runs
Mean latency
—
Successful runs
Chunks written
0
0% deduped on retry
Est. spend
$0.00
0 tokens
Token counts are estimated locally — Gemini's batch embedding endpoint returns no usage metadata. The rate is configurable via EMBEDDING_USD_PER_MTOK.
Queue is empty
No document has exhausted its retry budget. Transient failures are retried automatically and never reach this queue.
No runs recorded yet
Upload a document and its ingestion run will appear here with full timing and cost breakdown.
fetch-and-chunkFetch the PDF, extract text, split, normalise, hash, and validate every chunk against a zod schema.embed-and-storeEach batch is embedded and written inside one step, so vectors never cross a step boundary. Writes use ON CONFLICT DO NOTHING against (documentId, contentHash).finalizeCount what actually landed, then close the run with latency, yield, and token spend.A failure retries up to three times. Only once the budget is exhausted does the document move to FAILED — so a transient rate limit never surfaces here as a broken document.