Releases: StarTrail-org/PixelRAG
Release list
v0.4.0
Highlights
Smarter page readiness for arbitrary URLs. --wait-network-idle now uses networkidle2 semantics — it counts in-flight requests over CDP Network events (≤2 pending for 500ms, 12s cap) instead of resetting a timer on every resource completion. Analytics-heavy pages that used to ride the 12s cap settle in ~1s (measured: 15.6s → 4.0s on a 200ms-beacon page), and already-quiet pages proceed the moment load fires. The index pipeline enables it by default for the web source only; kiwix/localhost and local-file renders stay on the fast path. (#96, #119, #120)
Safe incremental re-runs. Tile directories now record which source document they were rendered from; re-running pixelrag index build after adding/removing/renaming files re-renders shifted positions instead of silently pairing one document's pixels with another's metadata. Manifest writes are atomic, and article_id is stamped into every manifest so the embed stage no longer guesses from directory names. (#83, #119)
New
- Department-filtered search for local document indexes:
departmentmetadata from your directory layout, FAISS-native filtering, and aGET /departmentsendpoint (#115) - Local images (PNG/JPG) render into the tile pipeline — no more silent empty index from an image folder (#95, fixes #67)
.md/.txtfiles render natively (tables, fenced code, relative images resolved) (#101, #107)--cdp-urlto attach to an already-running browser (#76)--device auto/mpsaccepted bypixelrag index build(#73)- MiniMax model configs for the eval harness, and registry endpoints now actually apply (#113, #119)
- Progress bars for the chunk stage that stay readable under multiprocessing, with log-file progress preserved for unattended runs (#108, #119)
Fixed
- Path-traversal hardening in the eval renderers (#80, fixes #78/#79)
- Playwright Chromium picked by numeric revision, not lexicographic order (#74)
- Chrome
--user-data-dirisolated per worker (#65, fixes #54) - Transparent local images composite onto white instead of black (#119)
- Non-numeric filename-stem IDs handled throughout the local pipeline (#66, #83)
- Chat agent timeouts / loop prevention, back button and lightbox (#49)
tqdm/pyyaml/numpymoved from the heavy torch extras into core — light stages (pixelrag chunk,index --help) work on a barepip install pixelrag(#118)
Install
pip install -U pixelrag # light: pixelshot + umbrella CLI
pip install -U 'pixelrag[all]' # + embed/index/serve stagesv0.3.0
What's new in 0.3.0
PDF & wide-page support
- PDF pages render and embed correctly — each page is treated as one semantic chunk; wide pages are resized to fit the model's input range (#51)
- 2D tiling for wide content — pages wider than the render width are split into columns at native resolution instead of being dropped or downscaled (#48)
Cross-platform
- macOS / Apple Silicon (MPS) support —
device: autopicks MPS on Mac, CUDA on Linux (#61, #51) - Cross-platform Chrome discovery — macOS and Windows, not just Linux (#44)
Rendering stability
- One CDP backend — consolidated websocket.py into cdp.py with auto turbo/standard (#38)
- Fix CDP capture hang on Chrome builds with component-extension targets (#56)
- Cap requestAnimationFrame waits in readiness + scroll probes (#39)
Infrastructure
- Pre-commit hook — ruff format + lint auto-fix on commit
- Request ID middleware for API log tracing (#41)
- Uptime monitoring moved off main to a dedicated branch (#68)
- faiss-gpu-cu12 gated behind Linux marker so macOS resolution works
Docs
- PDF quickstart (#58), pixelshot CLI examples (#62), Colab notebook (#31), data curation reorg (#59, #60)
Full changelog: v0.1.0...v0.3.0
Patched headless Chrome 150.0.7844.0
Patched headless_shell (adds CDP rawFilePath) used by the pixelshot CDP backend. Platform: linux-x64. Auto-downloaded by pixelrag_render.chrome.install_chrome().
v0.1.0
First PyPI release of PixelRAG — Visual Retrieval-Augmented Generation.
Packages: pixelrag (umbrella CLI + pixelshot), pixelrag-render, pixelrag-embed, pixelrag-index, pixelrag-serve.
pip install pixelrag # pixelshot + pixelrag umbrella
pip install 'pixelrag[serve]' # + search API