Skip to content

Releases: mudler/LocalRecall

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

v0.5.3

Choose a tag to compare

@mudler mudler released this 30 Jan 16:55
a1a5d2e

What's Changed

  • bailout if we can't create extensions by @mudler in #38
  • Standardize API response structure and fix inconsistent error handling by @Copilot in #39
  • feat: allow to fetch entry from collection / support overlap by @mudler in #41

Full Changelog: v0.5.2...v0.5.3