-
released this
2026-07-10 19:39:09 -07:00 | 1 commits to main since this releaseHighlights
Document and spreadsheet format support
Shelving (the extract→chunk→store→embed pipeline, renamed from "ingest" — see below) now covers: PDF, EPUB, DOCX, ODT, Apple Pages, XLSX, ODS, and Apple Numbers. Pages and Numbers convert via headless LibreOffice, since no maintained Python library parses Apple's iWork formats directly.
Semantic search: Agent-ModernColBERT replaces nomic-embed-text
Hybrid search's semantic half now uses a late-interaction retriever (
lightonai/Agent-ModernColBERT, viapylate) instead of a bi-encoder + cosine similarity. Late-interaction scoring keeps per-token embeddings and computes relevance at query time, which holds up much better on multi-part questions than collapsing a whole query into one vector. Existing BYOK tier gating is unchanged.Naming: ingest → shelve
The document pipeline is now called "shelve" throughout (API routes, scripts, UI) instead of "ingest" — a library/bookshelf metaphor that fits Pagepiper's actual job, versus "ingest"'s vaguer connotation.
/api/library/{id}/reingestis now/api/library/{id}/reshelve;/api/ingest/{task_id}is now/api/shelve/{task_id}.Config: CF_ORCH_URL → GPU_SERVER_URL
The GPU/cf-orch coordinator env var is now
GPU_SERVER_URL— clearer for self-hosters running their own GPU rig.CF_ORCH_URLis still honored as a legacy alias.Breaking changes
/api/library/{id}/reingest→/api/library/{id}/reshelve/api/ingest/{task_id}→/api/shelve/{task_id}- If you scripted against either endpoint directly, update the path. The web UI is unaffected.
Known follow-ups (tracked, not in this release)
- No live Windchill/DocPortal document connector yet (recon only)
- Shelve scripts still compute and store now-unused Ollama embeddings into
page_vecsat shelve time — cleanup pending circuitforge_core.tasks.dispatch_task/get_task_statusdon't exist yet in circuitforge-core (tracked as circuitforge-core#67) — cf-orch dispatch silently falls back to localBackgroundTasks
Stats
103 tests passing. Freeze-tested (PR #12 + #14 + #15 merged together and validated as a unit, including a real Playwright pass and a Docker build) before merging to main — caught and fixed one cross-PR test-isolation bug in the process.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads