pagepiper/web
pyr0ball e52bdb5128 feat: RAG retrieval quality, artifact cleaning, and ingestion progress UI
Retrieval:
- Add _fetch_adjacent() to retriever: fetches page ± 1 chunks from DB
  after ranking so mid-sentence EPUB chunk boundaries don't lose context
- Fix vec DB doc-filter: oversample to top_k*20 before Python filter
  instead of post-filtering an already-small global pool (fixes wrong-book
  results when searching within a single document)
- top_k default 5 → 10; context per chunk 500 → 1500 chars; citation
  snippet 200 → 400 chars

Artifact cleaning:
- Add scripts/text_clean.py: strips ABC Amber LIT Converter watermarks,
  processtext.com URLs, bare page numbers, piracy stamps from extracted text
- Wire clean_paragraph() into ingest_pdf.py and new ingest_epub.py

Startup validation:
- _check_vec_schema() at boot: detects embedding dimension mismatch,
  deletes stale vec DB, and queues sequential re-embed in background thread
- Sequential _reembed_docs() prevents SQLite lock races on startup re-embed

cf-orch integration:
- Wire CF_ORCH_URL / CF_LICENSE_KEY into LLMRouter backend config so
  allocate() fires and keeps the Ollama model warm between requests

Ingestion progress UI:
- GET /api/library/{doc_id}/status now returns vec_count from page_vecs_meta
- DocumentCard.vue polls status every 3 s while processing and shows
  two-phase progress: indeterminate animation during extraction,
  determinate "Embedding N/M pages" bar once vectors start landing

Other:
- Chat feedback endpoint + thumbs up/down UI (FeedbackButton.vue)
- EPUB ingest script (ingest_epub.py) with heading-based chunking
- migration 002: chat_feedback table
- README.md with setup and feature overview
2026-05-06 08:25:58 -07:00
..
.vscode feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
public feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
src feat: RAG retrieval quality, artifact cleaning, and ingestion progress UI 2026-05-06 08:25:58 -07:00
.gitignore feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
env.d.ts feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
index.html feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
package-lock.json feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
package.json feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
README.md feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
tsconfig.app.json feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
tsconfig.json feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
tsconfig.node.json feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00
vite.config.ts feat(web): add Vue 3 frontend scaffold -- LibraryView, DocumentCard, IngestProgress 2026-05-04 17:57:48 -07:00

web

This template should help get you started developing with Vue 3 in Vite.

VS Code + Vue (Official) (and disable Vetur).

Type Support for .vue Imports in TS

TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue types.

Customize configuration

See Vite Configuration Reference.

Project Setup

npm install

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build