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
UnicodeDecodeErrorand calledlazy_load()recursively after mutatingself.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=Trueit stripped'**/'from the pattern and calledrglob, and whenrecursive=Falseit stripped'**/'from the pattern and calledglob. 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
.docfile withPdfReaderwhich is incorrect — a Word.docis 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.