Spaces:
Sleeping
Sleeping
Commit History
21 days ago
-
feat: 10 free upgrades — streaming upload, cache invalidation, hybrid search, ONNX reranker, SQLAlchemy pool tuning, batch embed cache, semantic chunking, Prometheus histograms, DLQ auto-retry, structured logging+OTel
AkshayM3e047b8
-
fix: use pdfplumber text for chunking to ensure accurate page numbers for citations
AkshayM247a9a5 -
fix: keep MarkItDown for chunking, pass pdfplumber page texts separately so page numbers align for bbox extraction
AkshayMe01df47 -
fix: swap reranker to BAAI/bge-reranker-base (v2-mini does not exist on HF)
AkshayM7108304 -
perf: replace reranker v2-m3 (1.1B) with v2-mini (100M) for 10x faster reranking
AkshayM3e3d43c
-
perf: 8 workers, 10 concurrent uploads, Qdrant wait=False + batch 2000
AkshayMe28a6da
-
perf: revert to all-MiniLM-L6-v2, query embed cache, fire-and-forget Cloudinary, pre-warm reranker, reduce top-k
AkshayM1476572
-
perf: upgrade embedding to all-mpnet-base-v2, add cross-encoder reranker, LRU cache, enable PII by default
AkshayM9147527
-
production hardening: circuit breakers, graceful degradation, health checks, parallel uploads, HF Spaces deploy config
AkshayMfc2fe9f
-
fix: search() replaced by query_points() in qdrant-client v1.9+
AkshayM21bc9b0 -
fix: auto-fallback to Qdrant :memory: when remote unavailable
AkshayM2636655 -
fix: upload pipeline completely dead - worker never started, processor never registered
AkshayMRoot cause: _on_startup handler missing 3 critical calls: 1. set_upload_processor() — processor was None, every job failed with 'no processor registered' 2. get_worker().start() — worker task never created, jobs sat in queue forever 3. get_vector_store() — model never pre-loaded, first upload paid load cost Also added batch progress logs (batch X/N during upsert).2942460 -
fix: 15 critical/high bugs across codebase
AkshayMCRITICAL: - Wrong import path .async_worker -> ..services.async_worker (Qdrant.py) - search() called run_sync() without await (always crashed) - CancelledError leaves jobs dangling in non-terminal stage HIGH: - circuit_breaker race: state mutations outside lock - llm.py: r.text on async httpx response crashes on error - llm.py: max_tokens=0 silently overridden to 2048 - llm.py: import json inside hot SSE loop - cache.py: MemoryBackend.set() ignores ttl parameter - cache.py: get_or_compute fails on sync callables - bootstrap.py: DB init runs twice (first attempt crashes) - shutdown.py: begin_shutdown races with begin_request - document_agent.py: cost double-counts answer tokens - document_agent.py: multi-hop retrieval asks same question every hop - document_agent.py: stream_query lacks multi-hop and cost_usd - main.py: json.dumps empty list stored as None - main.py: response uses request data instead of DB data - main.py: cloudinary 'skipped' mislabels actual failures - job_queue.py: l…da3be01 -
fix upload pipeline: await add_document, pre-load model eagerly, add verbose UPLOAD/VectorStore logging; remove unused deployment configs
AkshayM90c440b
-
fix models.py: match Neon schema varchar sizes, add email unique constraint
AkshayM167c070