Changelog

On this page

No changelog file, version tags, __version__ string, or git history was present in the analyzed source tree, so a real chronological changelog cannot be reconstructed for this package.

What follows is not a changelog in the traditional sense — it's a list of specific, in-code-documented fixes that the source explicitly calls out as corrections to prior behavior, extracted from docstrings and inline comments across the codebase. These are the only "history" signals available in the repository.

Documented fixes (undated, unversioned)

base_loader.py — LoadedDocument.__post_init__

"FIX: The original used time.time() which made the same document produce a different ID on every run, breaking deduplication and caching. Now purely content-based → stable across runs."

doc_id generation changed from a timestamp-based scheme to a SHA-256 hash of source:page:content, making IDs deterministic and reproducible.

csv_loader.py — CSVLoader.lazy_load()

"FIX: The original caught UnicodeDecodeError and called lazy_load() recursively after mutating self.config.encoding. This could silently loop or yield duplicate documents if the retry itself also failed. Now we detect encoding BEFORE opening, using a single retry with latin-1 as a guaranteed fallback — no recursion."

Encoding-failure handling changed from an open-ended recursive retry to a fixed, bounded two-attempt sequence.

directory_loader.py — DirectoryLoader._collect_files()

"FIX: The original had broken glob logic — when recursive=True it stripped '**/' from the pattern and called rglob, and when recursive=False it stripped '**/' from the pattern and called glob. This meant '**/*.pdf' would never work correctly. Now: use rglob for recursive (strips leading '**/' prefix), and glob for non-recursive (uses basename pattern only)."

Fixed incorrect glob pattern handling that affected both recursive and non-recursive directory scanning modes.

docx_loader.py — DocxLoader._load_legacy_doc()

"FIX: The original tried to read a .doc file with PdfReader which is incorrect — a Word .doc is not a PDF. The correct approach is to use LibreOffice for conversion or textract. We now try LibreOffice first (converting to docx), then textract, then raise a clear error instead of silently returning garbage."

Legacy .doc handling was fundamentally broken (attempting to parse a Word binary format with a PDF parser) and has been replaced with a proper conversion-based strategy.

What this means for you

These notes describe what changed, not when — there's no way to determine from this repository whether you're using a version before or after any of these fixes. If your deployment exhibits any of the "before" behaviors described above (non-deterministic IDs, recursive CSV encoding retries, broken recursive glob matching, or .doc files failing via a PDF-reader error), you are likely on an older revision of this code and would benefit from updating to incorporate these fixes.

Version History disclaimer

Every "Version History" section throughout this documentation states that version/release history cannot be determined from the repository. This is consistent throughout — no part of the analyzed source tree contains version numbers, release dates, or a structured changelog. If exact version provenance matters for your use case, consult your project's own packaging/release records outside of this source tree.

Related pages