Commit Graph

  • 342593af46 Merge pull request #24 from storytold/pr/never-crash-attrs Brandon Thomas 2026-10-04 14:49:29 -04:00
  • fb0ea34a01 Merge pull request #23 from storytold/pr/never-crash-create Brandon Thomas 2026-10-04 14:49:10 -04:00
  • cec677cd64 Merge pull request #22 from storytold/pr/never-crash-ui Brandon Thomas 2026-10-04 14:48:48 -04:00
  • b8f40d0c04 Merge pull request #21 from storytold/pr/never-crash-automation Brandon Thomas 2026-10-04 14:48:27 -04:00
  • 0772e99cde Merge pull request #20 from storytold/pr/never-crash-engine Brandon Thomas 2026-10-04 14:48:05 -04:00
  • 66d127bb73 Merge pull request #19 from storytold/pr/never-crash-render Brandon Thomas 2026-10-04 14:47:45 -04:00
  • 0133cb7454 Merge pull request #18 from storytold/pr/never-crash-organize Brandon Thomas 2026-10-04 14:47:26 -04:00
  • e373293926 Merge pull request #17 from storytold/pr/never-crash-sign Brandon Thomas 2026-10-04 14:47:06 -04:00
  • 414060a3ff Merge pull request #16 from storytold/pr/never-crash-small Brandon Thomas 2026-10-04 14:46:43 -04:00
  • 7da7ec6148 Merge pull request #15 from storytold/pr/never-crash-crypt Brandon Thomas 2026-10-04 14:46:22 -04:00
  • a76263a9a7 Merge pull request #14 from storytold/pr/never-crash-guard Brandon Thomas 2026-10-04 14:46:00 -04:00
  • 5c4988aed6 Merge pull request #13 from storytold/pr/never-crash-js Brandon Thomas 2026-10-04 14:45:39 -04:00
  • ff8c75f46f Merge pull request #12 from storytold/pr/never-crash-forms Brandon Thomas 2026-10-04 14:35:21 -04:00
  • 3dc6a81d31 Merge pull request #11 from storytold/pr/never-crash-steering Brandon Thomas 2026-10-04 14:34:59 -04:00
  • ac222e818b Never crash: edit and xfdf have no expect calls Brandon Thomas 2026-10-04 14:23:06 -04:00
  • e7ba974fe1 Edit text: a rewritten paragraph keeps its place in the text object it shares (#7) storybored379 2026-10-04 11:00:31 -07:00
  • 95af23d3a5 Forms: multi-select list values survive XML, CSV and text import (#5) storybored379 2026-10-04 11:00:23 -07:00
  • 59f74ea386 Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:01 -04:00
  • 4e74f9ed6a Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:00 -04:00
  • e96a89c871 Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:00 -04:00
  • f688415504 Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:00 -04:00
  • 0e2f8a2fb3 Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:00 -04:00
  • 6ea62a0f6b Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:00 -04:00
  • dd0eed7425 Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:00 -04:00
  • 926171569e Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:00 -04:00
  • cfe84da351 Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:00 -04:00
  • 9902ff3043 Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:35:00 -04:00
  • b834c6c063 Root clippy.toml: tests may unwrap, expect, panic and index Brandon Thomas 2026-10-04 13:34:59 -04:00
  • 24f0a8928e Edit text: a paragraph's new colour no longer spills into the text after it (#6) storybored379 2026-10-04 10:24:17 -07:00
  • 096b515719 Forms: CSV import keeps values that span lines (#4) storybored379 2026-10-04 10:24:11 -07:00
  • 3908a03aa6 Optimizer: Audit space usage counts images PrintCraft added as images (#3) storybored379 2026-10-04 10:24:06 -07:00
  • 554969da72 Never crash: forbid unsafe, clippy.toml for tests, guard and craftrules link Brandon Thomas 2026-10-04 10:59:39 -04:00
  • d9d7caca22 Agent rules: never panic (AGENTS.md §4, CLAUDE.md non-negotiables) Brandon Thomas 2026-10-04 08:14:16 -04:00
  • 1434db626a Never crash: deny the panic lints in crates that are already clean Brandon Thomas 2026-10-04 13:12:21 -04:00
  • 7632d8b179 Never crash: create has no expect calls Brandon Thomas 2026-10-04 13:12:21 -04:00
  • 51027324e1 Never crash: UI and app shell have no expect/unreachable Brandon Thomas 2026-10-04 11:56:00 -04:00
  • d54f7c2fa7 Never crash: the automation (MCP/script) tools have no expect/unreachable Brandon Thomas 2026-10-04 11:56:00 -04:00
  • f7a0d3a3b9 Never crash: render has no expect/unreachable Brandon Thomas 2026-10-04 11:56:00 -04:00
  • c74fb89a0d Never crash: organize has no expect/unreachable Brandon Thomas 2026-10-04 11:56:00 -04:00
  • 456a42a896 Never crash: sign has no expect/unreachable Brandon Thomas 2026-10-04 11:56:00 -04:00
  • 7f09486004 Never crash: last-resort guard around edits, opens, saves and UI commands Brandon Thomas 2026-10-04 11:56:01 -04:00
  • 18c1acdb31 Never crash: hostile form scripts can't overflow the stack Brandon Thomas 2026-10-04 13:05:52 -04:00
  • 58cd6614ea Never crash: engine denies the panic lints Brandon Thomas 2026-10-04 11:56:00 -04:00
  • 9fc3354fe6 Never crash: filters, fonts, js, optimize and a11y deny the panic lints Brandon Thomas 2026-10-04 11:55:59 -04:00
  • 95d8ba3101 Never crash: crypt has no panic paths Brandon Thomas 2026-10-04 11:55:59 -04:00
  • 15f6fa7d4c Never crash: forms scripts can't overflow the stack or the date arithmetic Brandon Thomas 2026-10-04 11:55:59 -04:00
  • 8f1f4e7ffb Git: mark PDFs, keys, fonts and images binary so Windows checkouts keep their bytes Brandon Thomas 2026-10-04 12:13:50 -04:00
  • 48f1495ac2 Tests: take split part names with Path::file_name so the test passes on Windows Brandon Thomas 2026-10-04 11:40:29 -04:00
  • ab47bf4b9a CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) Brandon Thomas 2026-10-04 10:16:27 -04:00
  • 788456a8e7 Merge pull request #9 from storytold/pr/license-standard Brandon Thomas 2026-10-04 10:09:05 -04:00
  • d20eef9d56 Licensing: standard LICENSE files, NOTICE, ArtCraft brand terms Brandon Thomas 2026-10-04 10:07:05 -04:00
  • 2336b24746 M4: Deleted pages leave the file even when bookmarks, links or widgets still point at them (#2) storybored379 2026-10-03 21:14:59 -07:00
  • 0523ccdfdc M8: Redaction drops /PCAdded from rewritten content streams so redacted added text does not stay in the file (#1) storybored379 2026-10-03 21:14:56 -07:00
  • 9d99f4b278 Release 0.1.1 v0.1.1 Brandon Thomas 2026-10-03 09:55:41 -04:00
  • 2f248974ae M13: ROADMAP: session 12 later progress (compare, actions, PDF/A, Office export, forms) Brandon Thomas 2026-10-03 09:46:13 -04:00
  • 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 Brandon Thomas 2026-10-03 09:40:46 -04:00
  • 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 Brandon Thomas 2026-10-03 07:19:54 -04:00
  • 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 Brandon Thomas 2026-10-03 05:48:19 -04:00
  • a4bf717c06 M12: Compare files: visual differences (pages rendered and compared region by region), shaded orange; doc_compare visual option Brandon Thomas 2026-10-03 05:37:23 -04:00
  • 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 Brandon Thomas 2026-10-03 05:31:18 -04:00
  • aa194686f1 M6: Prepare a form detects fields (underscore blanks, rules, boxes, check squares) and names them from their labels; form.detect, form_detect_fields Brandon Thomas 2026-10-03 05:20:54 -04:00
  • 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 Brandon Thomas 2026-10-03 05:08:28 -04:00
  • 6ff0bf8f64 M6: Merge data files into spreadsheet (FDF, XFDF, filled PDF forms → CSV); form_merge_data tool Brandon Thomas 2026-10-03 04:52:59 -04:00
  • 9321864393 M13: ROADMAP: session 12 progress (OCR, JavaScript, in-place editing) Brandon Thomas 2026-10-03 04:42:32 -04:00
  • 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 Brandon Thomas 2026-10-03 04:41:47 -04:00
  • a7ffee01b5 M10: Recognize text in multiple files (ocr.recognize_batch, ocr_recognize_files): searchable copies written to a folder in the background Brandon Thomas 2026-10-03 03:54:11 -04:00
  • 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 Brandon Thomas 2026-10-03 03:47:58 -04:00
  • d7c22d7ef0 M7: Justify, underline, line spacing, character spacing and horizontal scale for existing paragraphs (and justify for added text); Lucide align-justify icon Brandon Thomas 2026-10-03 03:16:03 -04:00
  • 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 Brandon Thomas 2026-10-03 03:07:43 -04:00
  • 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 Brandon Thomas 2026-10-03 02:55:08 -04:00
  • 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 Brandon Thomas 2026-10-03 02:42:18 -04:00
  • 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 Brandon Thomas 2026-10-03 02:25:06 -04:00
  • 5a70838884 M7: PDF font tables move to the fonts crate with Unicode decoding/encoding (ToUnicode, WinAnsi/MacRoman/Standard, Differences glyph names, subset glyph checks) Brandon Thomas 2026-10-03 00:42:57 -04:00
  • 2548228b1d M3: frame-budget tests skip (and say so) when the machine is overcommitted Brandon Thomas 2026-10-03 00:42:57 -04:00
  • beb4e14c44 xtask: version test uses gates::root (fixes the xtask test build) Brandon Thomas 2026-10-03 00:42:57 -04:00
  • dab27f098c Roadmap: measured parity (45% of features, ≈35% of effort) and revised Opus 5.5 hour estimate (≈600–1,100 h remaining) Brandon Thomas 2026-10-03 00:30:22 -04:00
  • e849fbcf1b xtask: make version.rs compile here and register cargo xtask version Brandon Thomas 2026-10-02 16:20:47 -04:00
  • 92dd783b7e Web: add Trunk.toml so the release zip finds the site in dist/web with relative URLs v0.1.0 Brandon Thomas 2026-10-02 15:47:40 -04:00
  • 1dd9f27b36 README: tagline names the Adobe app it reimplements; standard Adobe trademark and non-affiliation notice Brandon Thomas 2026-10-02 12:24:17 -04:00
  • ff0d0ac294 README: Crafting Apps table in five columns (icon, app, purpose, GitHub, Website) Brandon Thomas 2026-10-02 12:19:06 -04:00
  • 099ea8c152 README: drop the old DrawCraft name; VectorCraft links to /apps/vectorcraft Brandon Thomas 2026-10-02 12:18:18 -04:00
  • fa601c1641 README: app icons in the Crafting Apps table Brandon Thomas 2026-10-02 12:17:17 -04:00
  • 4466fe8623 Signed release pipeline (macOS/Windows/Linux/Web); README community note Brandon Thomas 2026-10-02 12:06:19 -04:00
  • fcf3a7efa1 M3: About credits Dancing Script (typed signatures) Brandon Thomas 2026-10-02 10:02:18 -04:00
  • 01d0dc67ba M5: Fill & Sign typed signatures and initials (Type or Draw; script-font outlines drawn as filled paths); fill_sign_add signature/initials Brandon Thomas 2026-10-02 09:59:28 -04:00
  • 1f2e267f32 app icon: lion (owner's ArtCraft drawing), Dock/taskbar/launcher wiring, palette docs Brandon Thomas 2026-10-02 09:53:34 -04:00
  • 03fca33d10 M5: Text boxes write rich text (/RC XHTML and /DS) in step with their text and style Brandon Thomas 2026-10-02 08:11:12 -04:00
  • 9372b25d0b M10: Create PDF from JPEG 2000 images (JP2 or codestream, embedded as JPXDecode); M1: looping /Prev chains test Brandon Thomas 2026-10-02 08:07:53 -04:00
  • 80a8087ebc M9: Certificate Viewer (chain, Summary, Details, Trust; export, trust) from the Signatures panel; dialog button rows no longer stretch dialogs Brandon Thomas 2026-10-02 08:00:56 -04:00
  • 183eda77ca M9: Roadmap log Brandon Thomas 2026-10-02 07:55:20 -04:00
  • 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:… Brandon Thomas 2026-10-02 07:55:07 -04:00
  • 294cbd6716 M8: Applying redactions cleans the tags: elements of changed marked content lose Alt/ActualText/E, empty marked content leaves them Brandon Thomas 2026-10-02 07:48:43 -04:00
  • 1d8b1ecb02 M1/M4: Hybrid-reference files: /XRefStm entries replace the table's free entries; signed documents refuse edits that would force a full rewrite Brandon Thomas 2026-10-02 07:45:20 -04:00
  • ba4a7a6d42 M11: Optimizer Clean Up removes invalid links and bookmark destinations and unreferenced named destinations Brandon Thomas 2026-10-02 07:40:51 -04:00
  • 763cd70ece M11: PDF Optimizer ▸ Audit space usage: bytes and share of the file per kind of content; doc_audit_space Brandon Thomas 2026-10-02 07:37:48 -04:00
  • 55275cd935 M3: Advanced Search panel (⇧⌘F): every match with its context, by page; click to go; shares the find bar's search Brandon Thomas 2026-10-02 05:40:22 -04:00
  • 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 Brandon Thomas 2026-10-02 05:36:39 -04:00
  • 095a17610f M12: Heading-nesting findings read naturally ("H3 follows an H1") Brandon Thomas 2026-10-02 05:30:38 -04:00
  • 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 Brandon Thomas 2026-10-02 05:24:28 -04:00
  • 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 Brandon Thomas 2026-10-02 05:16:42 -04:00