Skip to content

v9.4.0

Choose a tag to compare

@BBC-Esq BBC-Esq released this 23 Jul 12:58
· 197 commits to main since this release

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.