Skip to content

Releases: mudler/LocalRecall

v0.6.4

Choose a tag to compare

@mudler mudler released this 19 Jul 21:43
4de7307

What's Changed

  • chore(docker): pin pg_textsearch to v1.3.1 by @localai-bot in #50
  • feat(postgres): make BM25 text_config env-configurable by @walcz-de in #52

New Contributors

Full Changelog: v0.6.3...v0.6.4

v0.6.2

Choose a tag to compare

@mudler mudler released this 08 May 12:52
d999943

What's Changed

  • fix: rehydrate collections lazily; never os.Exit on engine init failure by @mudler in #44

Full Changelog: v0.6.1...v0.6.2

v0.6.1

Choose a tag to compare

@mudler mudler released this 07 May 12:32

Full Changelog: v0.6.0...v0.6.1

v0.6.0: fix(rag): switch PDF text extraction to go-fitz (libmupdf), add timeout

Choose a tag to compare

@mudler mudler released this 06 May 22:47
The previous PDF parser (github.com/dslipak/pdf v0.0.2) is a single-
maintainer pure-Go library that can hang indefinitely on certain xref
layouts, encrypted PDFs, scanned-image-only files, and a few other
structural quirks. With no timeout and no context, a single bad PDF
sits inside `chunkFile` → `fileToText` → `pdf.GetPlainText()` forever
and blocks the entire `/api/collections/<id>/upload` request until
something upstream fires its own timeout.

Reproduced live: a 9KB invoice PDF (`invoice-5368158.pdf`) made
LocalRecall hang at exactly the gap between "Storing files indexKeys"
and "Chunked file" log lines, never recovering. The downstream
embedding model itself was healthy throughout.

Switch the parser to github.com/gen2brain/go-fitz, which wraps
libmupdf — Mozilla's PDF parser, the same one Firefox uses. Far more
robust against malformed PDFs; bundles its native libs so the build
stays single-step (LocalRecall already uses cgo for vectorscale).

Belt-and-braces: extraction runs on a goroutine with a wall-clock
timeout (default 60s, override via LOCALRECALL_PDF_EXTRACT_TIMEOUT).
Even libmupdf can occasionally be slow; a single adversarial PDF can't
poison the upload queue any more — it fails with a clear error and the
caller can skip/retry.

Iterates pages and concatenates with double-newline separators (so
chunkers that respect paragraph boundaries get a sane signal). The
existing UTF-8 / null-byte sanitization is preserved — libmupdf can
still emit byte sequences that PostgreSQL rejects.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.5.9

Choose a tag to compare

@mudler mudler released this 15 Apr 17:01

What's Changed

Full Changelog: v0.5.8...v0.5.9

v0.5.8

Choose a tag to compare

@mudler mudler released this 14 Mar 22:09

Full Changelog: v0.5.7...v0.5.8

v0.5.7

Choose a tag to compare

@mudler mudler released this 14 Mar 10:15

Full Changelog: v0.5.6...v0.5.7

v0.5.6

Choose a tag to compare

@mudler mudler released this 14 Mar 10:02

Full Changelog: v0.5.5...v0.5.6

v0.5.5

Choose a tag to compare

@mudler mudler released this 16 Feb 22:38
330bcb2

Full Changelog: v0.5.4...v0.5.5

v0.5.4

Choose a tag to compare

@mudler mudler released this 06 Feb 20:14

Full Changelog: v0.5.3...v0.5.4