v1.24.0
msitarzewski/agency-agentsv1.24.0Sep 23, 2026by abimaelmartell
Upgrading?
AI Summary
This release adds detailed text rendering information (colors, modes) to the output and expands the reading of document metadata fields.
Key Highlights
- Adds `fill_color`, `stroke_color`, and `render_mode` to `TextItem`.
- Reads additional document info fields (Author, Subject, Keywords, etc.).
- Decodes PDFDocEncoding and UTF-16LE document titles correctly.
Breaking Changes
- Rust literal types must include new fields for `TextItem` (fill_color, stroke_color, render_mode).
New Features
- TextItem color and rendering mode fields (Node, Python, Rust).
- Extended document info dictionary parsing.
- Improved title decoding (PDFDocEncoding, UTF-16LE).
- Extraction of text using the `"` operator.
- Adjustment for baseline spacing in small type.
Full Release Notes
Changes since 1.23.0: - Report the paint each text run was shown with: `TextItem` gains `fill_color` and `stroke_color` (8-bit sRGB, read from DeviceRGB, DeviceGray, DeviceCMYK, ICCBased by component count and Indexed palettes; `None` for Separation, DeviceN, Pattern and CIE-based spaces) and `render_mode` (the `Tr` mode, so invisible text and clipping-only text can be told apart). Extraction and markdown are unchanged (#579). - Read the document information dictionary's `/Author`, `/Subject`, `/Keywords`, `/Creator`, `/Producer`, `/CreationDate` and `/ModDate` beside `/Title`, each decoded as a PDF text string (#579). - Decode the document `/Title` as a PDF text string: titles in PDFDocEncoding no longer read with U+FFFD, titles in UTF-16LE no longer read as mojibake, and titles given by reference are read (#579). - Extract text a page shows with the `"` operator, which the page parser skipped together with the spacing and line move it makes (#579). - Take an ActualText span's weight from the paint of its first painted glyph rather than from the paint in force at the span's end (#579). - Keep two lines of small type apart when their baselines lie less than 5 pt apart: a stacked table header at 4.7 pt on a 4.5 pt pitch no longer comes out as words zipped from both lines, and type of 8⅓ pt and above groups exactly as before (#580). API: `TextItem::fill_color`, `stroke_color` and `render_mode` (Node `fillColor`, `strokeColor`, `renderMode`; Python `fill_color`, `stroke_color`, `render_mode`; the `pdf2md --items-json` fields), and the `PdfProcessResult` / `PdfTypeResult` fields `author`, `subject`, `keywords`, `creator`, `producer`, `creation_date` and `mod_date` (Node and WebAssembly in camelCase, Python as attributes, and the `pdf2md --json` / `detect-pdf --json` members). Rust literals of these types must include the new fields. Release preparation: #582. [Full changelog](https://github.com/firecrawl/pdf-inspector/compare/v1.23.0...v1.24.0)
Related Repositories
obra/superpowers★ 303,156
An agentic skills framework & software development methodology that works.
0xNyk/council-of-high-intelligence★ 4,687
Structured multi-perspective deliberation for hard decisions. Run full councils, focused triads, or duo debates across Claude Code, Codex, Gemini CLI, and OpenCode.
LukeSmithxyz/emailwiz★ 2,171
Script that installs/configures a Dovecot, Postfix, Spam Assassin, OpenDKIM Debian web server
dmachat/angular-webpack-cookbook★ 346
The repository for the Angular Webpack Cookbook Gitbook
shivangi-aneja/FaceTalk★ 239
[CVPR 2024] FaceTalk: Audio-Driven Motion Diffusion for Neural Parametric Head Models