unstale

pypi / unstructured

unstructured

What changed in unstructured 0.18 to 0.27, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.

4 breaking3 security1 new APIs and options3 performance4 behavior and defaults18 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

unstructured 0.2730 changes

Breaking changes 4

  • A line break in a quoted CSV or TSV cell is read as whitespace rather than a literal \n.

    0.27.35release notes

  • CSV and TSV cells are now read as held in the file.

    0.27.34release notes

  • Text is classified as an email address only when all of it is an email address.

    0.27.34release notes

  • A line break is now read as a newline instead of a vertical tab.

    0.27.34release notes

New APIs and options 1

  • Element metadata exposes the DOCX paragraph style name.

    0.27.35release notes

Performance 3

  • PDF partitioning avoids reading every page with pdfminer just to determine whether the PDF has text.

    0.27.35release notes

  • Decode buffers are freed sooner when restoring original elements, reducing how long they remain allocated.

    0.27.34release notes

  • Image buffers are freed sooner during figure extraction, reducing how long they remain allocated.

    0.27.34release notes

Behavior and default changes 4

  • Addresses in Alabama and Wyoming are recognized.

    0.27.35release notes

  • GIF frames are charged at the canvas size Pillow decodes them at.

    0.27.35release notes

  • Chunk combine thresholds are measured in tokens when max_tokens is set.

    0.27.35release notes

  • Text is translated chunk by chunk instead of as a single whole.

    0.27.35release notes

Fixes and other changes 18

  • Analysis bounding-box overlays are rendered at the pdf_image_dpi used for partitioning.

    0.27.35release notes

  • Bounding boxes are compared correctly for elements without a page number.

    0.27.35release notes

  • A box nested within another is recognized when the tolerance is zero.

    0.27.35release notes

  • A bulleted list following its lead-in line is retained as list items.

    0.27.35release notes

  • combine_text_under_n_chars is capped at new_after_n_chars.

    0.27.35release notes

  • An empty text body returns no elements.

    0.27.35release notes

  • TSV partitioning honors infer_table_structure.

    0.27.35release notes

  • Files with the .markdown extension are detected as Markdown rather than plain text.

    0.27.35release notes

  • _mean ignores unmeasured scores, matching its sibling functions.

    0.27.35release notes

  • An attached email is partitioned instead of raising AssertionError.

    0.27.35release notes

  • The Cc, Bcc, and Message-ID headers are read regardless of letter case.

    0.27.35release notes

  • Commas inside quoted sender or recipient names are preserved.

    0.27.35release notes

  • Cell text such as N/A and None is preserved instead of being emptied.

    0.27.35release notes

  • Text extraction honors explicitly specified encodings.

    0.27.35release notes

  • Empty entries in an address group are now dropped.

    0.27.34release notes

  • The encoding argument is now honored when partitioning JSON.

    0.27.34release notes

  • The encoding argument is now honored when partitioning NDJSON.

    0.27.34release notes

  • Very large split elements are no longer repeated in every chunk.

    0.27.33release notes

unstructured 0.242 changes

Security 2

  • unstructured: Stored XSS via unescaped HTML generation

    0.24.1security advisory

  • unstructured: Server-Side Request Forgery in the URL-based partitioning

    0.24.0security advisory

unstructured 0.181 changes

Security 1

  • Unstructured has Path Traversal via Malicious MSG Attachment that Allows Arbitrary File Write

    0.18.18security advisory