pagepiper/docs/reference/tier-system.md
pyr0ball f941ebdeeb feat: add ODT and Apple Pages document support, wire DOCX into UI
Extends Pagepiper's document shelving pipeline (renamed from "ingest" —
see below) to cover the formats most likely to appear in a real-world
engineering document corpus, prompted by scoping a STERIS licensing pitch
that needs DOCX/ODT coverage.

- Rename the ingest pipeline to "shelve" throughout (scripts/, app/api,
  tests, docs, frontend). "Glean" (Turnstone's term) was considered and
  rejected — that's a harvest metaphor for log/knowledge extraction,
  not a fit for documents entering a library. Documented as a general
  CF naming principle in the org-level CLAUDE.md.
- Wire DOCX into the upload/scan UI, README, and docs — the extraction
  logic (heading-based chunking, table serialization) already existed
  but wasn't exposed to users or covered by tests.
- Add ODT support via odfpy, mirroring DOCX's chunking strategy.
- Add Apple Pages support via headless LibreOffice conversion to ODT.
  No maintained Python library parses the IWA format directly; libreoffice
  bundles libetonyek, the only real open-source Pages parser. Adds
  libreoffice-writer to the Docker image (~300-400MB) for this.
- 24 new/updated tests across shelve_docx, shelve_odt, and shelve_pages;
  full suite (72 tests) passing.

Known gaps not addressed here: no Windchill/DocPortal connector exists
yet (metadata-only PowerShell recon only), Excel/.xlsx is unsupported,
and circuitforge_core.tasks.dispatch_task does not currently exist in
circuitforge-core — cf-orch dispatch is dead code, always falling
through to local BackgroundTasks. See
circuitforge-plans/pagepiper/superpowers/plans/2026-07-10-steris-licensing-pitch.md
for the full writeup.
2026-07-10 13:58:43 -07:00

830 B

Tier System

Feature Free Paid (BYOK)
BM25 full-text search Yes Yes
PDF and EPUB upload Yes Yes
Unlimited local shelving Yes Yes
Directory scan Yes Yes
Hybrid vector search No Yes (local Ollama)
RAG chat with page citations No Yes (local Ollama)
Embedding model choice No Yes

BYOK unlock

Setting PAGEPIPER_OLLAMA_URL in your .env unlocks all Paid-tier features at no cost. You supply your own compute; Pagepiper supplies the pipeline.

PAGEPIPER_OLLAMA_URL=http://localhost:11434

Cloud managed tier

The hosted instance at pagepiper.circuitforge.tech runs on Circuit Forge infrastructure and requires a Paid tier license key. A free trial is available without a key.