Releases
v9.4.0
Compare
Sorry, something went wrong.
No results found
What's Changed
🔍 OCR
Added a RapidOCR backend (PP-OCRv6) and made it the default engine in the OCR tool.
Page-level OCR gating now considers text quality, layout, and imagery instead of just "is there any text."
Rotated and inverted scans are detected and corrected automatically.
Low-confidence, blank, and failed pages are surfaced as quality notes when the job finishes.
Output is verified against the source, and one bad file no longer kills the batch.
🗄️ Database Creation
The TileDB write now runs in an isolated subprocess, fixing heap-corruption crashes on large builds.
Vector handoff is memmapped and sharded, so peak memory stays at roughly one batch.
Failed builds clean up after themselves instead of leaving a half-written database behind.
Cancelling a build now terminates the entire subprocess tree.
Subprocess stages use UTF-8 I/O, so non-ASCII filenames no longer break logging.
🖥️ Interface
Jeeves searches on a worker thread and no longer freezes the window.
The staged-documents view was rebuilt on a lightweight model, removing filesystem-watcher stalls.
Duplicate staging and image-processing jobs are now blocked while one is running.
Settings input validation is clearer and tolerates locale number formatting.
⚙️ Configuration
All config writes are atomic, so an interrupted save can't truncate config.yaml.
Config loading preserves valid fields instead of discarding everything on one bad entry.
Dialogs refuse to write when a read comes back empty, preventing accidental clobbering.
🕸️ Documentation Scraper
Fixed scraper mappings for joblib, SQLAlchemy 2.0, and typing-inspection.
Mintlify rendering handles indentation, inline components, and leftover MDX tags correctly.
URLs are canonicalized, so the same page is no longer saved twice.
Scrape counts and resume behavior are now accurate.
🧹 Fixes & Polish
File extensions are normalized, so uppercase .PDF files get proper metadata.
Text loaders try cp1252 before latin-1 and no longer mix encodings mid-file.
Vision prompts use the correct tokens and decode only newly generated output.
A failed model download no longer deletes an existing model directory.
Microphone errors are reported safely across threads.
You can’t perform that action at this time.