Ingestion

Every answer starts with a traceable evidence object.

Authenticated uploads move through checksum, role, size, MIME, storage, extraction, chunking, and provenance controls before becoming retrievable evidence.

Document Ingestion Workflow
Document ingestion workflow

Guarded upload sequence

The browser calculates SHA-256, requests a site-scoped upload session through the Next.js server proxy, uploads to an expiring presigned URL, and confirms the object. The backend rechecks size and content type, records audit context, extracts readable content, and persists evidence regions and overlapping chunks.

PDF
Page-aware text extraction with retained page locators. Image-only files fail visibly because OCR is not currently available.
TXT and Markdown
Safe decoding, normalized line endings, and retained source context.
CSV
Bounded rows, columns, and cells with headers rendered into readable evidence excerpts.
DOCX
Paragraph extraction with heading context where the document exposes it.
XLSX
Bounded sheet and cell extraction with sheet names and row context.
Provider degradation
Lexical evidence remains available when embeddings, Neo4j, the reranker, or Groq are unavailable.

Truth boundaries

Public demo documents are synthetic and read-only. Authenticated workspace documents are listed from the backend and processed from the uploaded object.

Embeddings and graph enrichment are best-effort. A document is not described as vector-indexed or graph-enriched unless those stages complete.

Source locators, tenant, site, document revision, checksum, MIME type, and timestamps remain attached to persisted evidence.