Brandon Thomas and Claude Opus 5.5
95d8ba3101
Never crash: crypt has no panic paths
...
AES blocks come from `as_chunks`, the IV from `split_first_chunk`, and the R6 hash takes its
AES key and IV with `first_chunk`, so no `expect` is needed. The crate now denies the panic lints.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-04 13:06:23 -04:00
Brandon Thomas and Claude Opus 5.5
48f1495ac2
Tests: take split part names with Path::file_name so the test passes on Windows
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-04 12:48:43 -04:00
Brandon Thomas and Claude Opus 5.5
ab47bf4b9a
CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks)
...
Stable clippy 1.99 denies chunks_exact/chunks_exact_mut with a constant
size (32 sites), which failed the test job on main and every open PR.
Behaviour unchanged; MSRV 1.90 has as_chunks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-04 12:48:43 -04:00
storybored379 and Claude Opus 5.5
2336b24746
M4: Deleted pages leave the file even when bookmarks, links or widgets still point at them ( #2 )
...
Delete Pages only took the pages out of the page tree, so a bookmark, link or form widget that
referenced a deleted page kept it (and its content) in a full save. Deleted page objects are now
freed; their widgets leave the form (with fields left without widgets), and bookmarks and links
to them lose that destination.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-04 00:14:59 -04:00
storybored379 and Claude Opus 5.5
0523ccdfdc
M8: Redaction drops /PCAdded from rewritten content streams so redacted added text does not stay in the file ( #1 )
...
Text added with Edit ▸ Add content keeps its source string in the stream dictionary's /PCAdded.
Applying a redaction rewrote the stream's glyphs but copied the dictionary unchanged, so the
redacted text survived in the saved PDF. The redacted item now stays as plain drawn content and
is no longer editable.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-04 00:14:56 -04:00
Brandon Thomas and Claude Opus 5.5
70280a44d0
M10: Export to Word (.docx), HTML and RTF (new export crate with a small zip writer): paragraphs, headings, bold/italic, images, page breaks; doc_export_office tool
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:40:46 -04:00
Brandon Thomas and Claude Opus 5.5
4d60af8b1e
M11: PDF/A (new preflight crate): verify PDF/A-2b/3b structural rules, Save as PDF/A (XMP identification, generated sRGB output intent, forbidden actions, annotation flags, interpolation, encryption), PDF/A dialog; pdfa_verify, pdfa_convert tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 07:19:54 -04:00
Brandon Thomas and Claude Opus 5.5
632a21bfcf
M13: Action Wizard: built-in actions (Prepare for Distribution, Optimize Scanned Documents, page numbers, confidential, sanitize), custom actions with 12 step kinds, background runs over files; action_list, action_run tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 05:48:19 -04:00
Brandon Thomas and Claude Opus 5.5
a4bf717c06
M12: Compare files: visual differences (pages rendered and compared region by region), shaded orange; doc_compare visual option
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 05:37:23 -04:00
Brandon Thomas and Claude Opus 5.5
c12b795ce5
M12: Compare files (new compare crate): word-level text differences, Compare panel with shading on the new file, report PDF, differences as comments; doc_compare, doc_compare_report, doc_compare_mark tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 05:31:18 -04:00
Brandon Thomas and Claude Opus 5.5
aa194686f1
M6: Prepare a form detects fields (underscore blanks, rules, boxes, check squares) and names them from their labels; form.detect, form_detect_fields
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 05:21:01 -04:00
Brandon Thomas and Claude Opus 5.5
620ef4fcad
M6: Field Properties ▸ Actions tab (six triggers, JavaScript/link/reset/menu/page/show-hide/submit actions); form_actions, form_set_actions tools; signing UI tests get their own temp folders
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 05:08:28 -04:00
Brandon Thomas and Claude Opus 5.5
6ff0bf8f64
M6: Merge data files into spreadsheet (FDF, XFDF, filled PDF forms → CSV); form_merge_data tool
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 04:52:59 -04:00
Brandon Thomas and Claude Opus 5.5
06f8d73ec7
M6: Acrobat JavaScript: sandboxed boa engine with the forms object model (printcraft-js); custom keystroke/validate/calculate/format scripts, button scripts, document JavaScripts, JavaScript console (⌘J), Preferences ▸ Enable JavaScript; js_run, js_document_scripts, js_set_document_script, form_set_script, js_enabled tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 04:41:47 -04:00
Brandon Thomas and Claude Opus 5.5
a7ffee01b5
M10: Recognize text in multiple files (ocr.recognize_batch, ocr_recognize_files): searchable copies written to a folder in the background
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 03:54:11 -04:00
Brandon Thomas and Claude Opus 5.5
b87cf39168
M10: Scan & OCR ▸ Recognize text: ocrs-based recognition (models fetched by cargo xtask models), invisible searchable text layer, Recognize Text dialog with background progress; ocr_recognize / ocr_status tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 03:47:58 -04:00
Brandon Thomas and Claude Opus 5.5
d7c22d7ef0
M7: Justify, underline, line spacing, character spacing and horizontal scale for existing paragraphs (and justify for added text); Lucide align-justify icon
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 03:16:03 -04:00
Brandon Thomas and Claude Opus 5.5
385313e0bf
M7: Format existing text: font family, bold/italic, size, colour and alignment for a paragraph (Format text panel live while editing; text_edit formatting arguments); centred and right-aligned paragraphs are detected
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 03:07:43 -04:00
Brandon Thomas and Claude Opus 5.5
c2f53d5595
M7: Edit text & images: select existing page images to move, resize, rotate, flip, replace, save or delete; page_images, image_edit, image_save tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 02:55:08 -04:00
Brandon Thomas and Claude Opus 5.5
695e460bbb
M7: Edit text works on paragraphs: detection, in-place editing with rewrap to the box, original spacing, colour and font (or Helvetica); text_paragraphs and text_edit paragraph
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 02:42:18 -04:00
Brandon Thomas and Claude Opus 5.5
fb6208b089
M7: Edit text: click a line of existing text and retype it in place, reusing its font when it can show the text, else Helvetica; text_lines / text_edit tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 02:25:06 -04:00
Brandon Thomas and Claude Opus 5.5
5a70838884
M7: PDF font tables move to the fonts crate with Unicode decoding/encoding (ToUnicode, WinAnsi/MacRoman/Standard, Differences glyph names, subset glyph checks)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 00:42:57 -04:00
Brandon Thomas and Claude Opus 5.5
2548228b1d
M3: frame-budget tests skip (and say so) when the machine is overcommitted
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 00:42:57 -04:00
Brandon Thomas and Claude Opus 5.5
beb4e14c44
xtask: version test uses gates::root (fixes the xtask test build)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 00:42:57 -04:00
Brandon Thomas and Claude Opus 5.5
fcf3a7efa1
M3: About credits Dancing Script (typed signatures)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 10:02:18 -04:00
Brandon Thomas and Claude Opus 5.5
01d0dc67ba
M5: Fill & Sign typed signatures and initials (Type or Draw; script-font outlines drawn as filled paths); fill_sign_add signature/initials
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 09:59:28 -04:00
Brandon Thomas and Claude Opus 5.5
03fca33d10
M5: Text boxes write rich text (/RC XHTML and /DS) in step with their text and style
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 08:11:12 -04:00
Brandon Thomas and Claude Opus 5.5
9372b25d0b
M10: Create PDF from JPEG 2000 images (JP2 or codestream, embedded as JPXDecode); M1: looping /Prev chains test
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 08:07:53 -04:00
Brandon Thomas and Claude Opus 5.5
80a8087ebc
M9: Certificate Viewer (chain, Summary, Details, Trust; export, trust) from the Signatures panel; dialog button rows no longer stretch dialogs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 08:00:56 -04:00
Brandon Thomas and Claude Opus 5.5
f58570699e
M9: Sign with macOS Keychain identities (keys stay in the Keychain): listed in Sign with a Digital ID; sign_keychain_ids, sign_document id keychain:…
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 07:55:07 -04:00
Brandon Thomas and Claude Opus 5.5
294cbd6716
M8: Applying redactions cleans the tags: elements of changed marked content lose Alt/ActualText/E, empty marked content leaves them
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 07:48:43 -04:00
Brandon Thomas and Claude Opus 5.5
1d8b1ecb02
M1/M4: Hybrid-reference files: /XRefStm entries replace the table's free entries; signed documents refuse edits that would force a full rewrite
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 07:45:20 -04:00
Brandon Thomas and Claude Opus 5.5
ba4a7a6d42
M11: Optimizer Clean Up removes invalid links and bookmark destinations and unreferenced named destinations
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 07:40:51 -04:00
Brandon Thomas and Claude Opus 5.5
763cd70ece
M11: PDF Optimizer ▸ Audit space usage: bytes and share of the file per kind of content; doc_audit_space
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 07:37:48 -04:00
Brandon Thomas and Claude Opus 5.5
55275cd935
M3: Advanced Search panel (⇧⌘F): every match with its context, by page; click to go; shares the find bar's search
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 05:40:22 -04:00
Brandon Thomas and Claude Opus 5.5
e9322b597b
M12: Add alternate text: figures one by one with a preview, alternate text or Decorative (content becomes an artifact); accessibility_figures / accessibility_set_alt
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 05:36:39 -04:00
Brandon Thomas and Claude Opus 5.5
095a17610f
M12: Heading-nesting findings read naturally ("H3 follows an H1")
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 05:30:38 -04:00
Brandon Thomas and Claude Opus 5.5
e8bc0db811
M5: Custom stamps: create from a PDF page or an image under a category and name, kept in the stamp library, placed at natural size; stamp_custom tool
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 05:24:28 -04:00
Brandon Thomas and Claude Opus 5.5
d5c659812c
M6: Image fields: Prepare a form ▸ Image field places an icon-only button that asks for a picture when clicked (buttonImportIcon recognised natively); form_set_image
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 05:16:42 -04:00
Brandon Thomas and Claude Opus 5.5
8486a35207
M4: Combine files lists the files first: reorder, remove, add more, and choose each file's pages (doc_combine pages)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 05:11:25 -04:00
Brandon Thomas and Claude Opus 5.5
0b628d5515
M12: Accessibility Checker: new a11y crate with Acrobat's 32 rules in 7 categories, HTML report, fixes (language, title, tab order); options dialog and results panel (Fix, Skip Rule, Explain, Check Again, Show Report); accessibility_check / _report / _fix tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 05:05:56 -04:00
Brandon Thomas and Claude Opus 5.5
1e69a92c41
M10: Export a PDF ▸ Export all images: JPEGs unchanged, other images as PNG with alpha; skipped images reported; doc_export_all_images
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 04:47:45 -04:00
Brandon Thomas and Claude Opus 5.5
f1817459f2
M10: MCP resources for open documents: information, text, page text and page images (resources/list, templates, read)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 04:42:21 -04:00
Brandon Thomas and Claude Opus 5.5
19b5b1d6d2
M1: List document revisions and open an earlier one (Document Properties ▸ Advanced; doc_revisions, doc_open_revision); PDF version reads 1.7, not 17
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 04:40:25 -04:00
Brandon Thomas and Claude Opus 5.5
6a9dd32ef9
M3: Tabs and the window title show the document title when Initial View asks for it (DisplayDocTitle); parity for setting the document language
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 04:34:26 -04:00
Brandon Thomas and Claude Opus 5.5
d26821fdcd
M3: View ▸ Zoom ▸ Fit visible (⌘3): zoom so the current page's visible content spans the window
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 04:32:03 -04:00
Brandon Thomas and Claude Opus 5.5
c0f9c73ae9
M6: Prepare a form ▸ Preview (fill the form as a reader would; Edit fields goes back) and Field Properties ▸ Locked (annotation Locked flag; properties greyed out until unlocked, values still fillable); form_set_props takes locked
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 04:28:19 -04:00
Brandon Thomas and Claude Opus 5.5
4df7a73a1a
M6: Several fields at once in Prepare a form: Shift/⌘-click to select, then right-click to Align (left, right, top, bottom, centres), Distribute evenly, or Set Fields to Same Size, anchored on the right-clicked field; one undo step each. Test fix: the area-highlight test waits for the text layer before dragging over text
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 04:23:22 -04:00
Brandon Thomas and Claude Opus 5.5
aac0db461d
M6: Duplicate a field across pages (right-click ▸ Duplicate…, all pages or a range): widgets of the same field share one value; a field that is its own widget is split into a field and a widget kid. Prepare mode gets a field context menu (Properties, Duplicate, Delete)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 04:20:26 -04:00
Brandon Thomas and Claude Opus 5.5
cce71c7607
M6: Date picker: date fields show a month calendar while focused; the picked day is written in the field's own format
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-02 04:17:02 -04:00