From a0bd0a85f01a5f8a139fe3ef7837ae2f7b12df03 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 2 Oct 2026 01:18:52 -0400 Subject: [PATCH] =?UTF-8?q?Roadmap:=20session=209=20later=20arcs=20(?= =?UTF-8?q?=E2=89=88=2021%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- ROADMAP.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 5895b4d5..1d16a205 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -34,21 +34,21 @@ Hours are for a single agent (low–high). "Done" is the estimated fraction of t | M0 | Skeleton: workspace, xtask gates, CI | 15–30 | 92% | 2–4 | GitHub workflow, `deny.toml` (licence audit of every dependency), parity checklist (826 features, `xtask parity`) done. Missing: remaining crate stubs, testkit/oracle crates | | M1 | COS: filters, crypt, parser, xref, writer | 120–200 | 72% | 35–60 | Done:
- filters and crypt: every standard-security revision R2–R6 (RC4, AES-128/256), SASLprep, permissions, creating encryption;
- cos: parse and repair, decrypt on load, re-encrypt on save, incremental and full writing.
Corpus: open/edit/save passes on 958 files, and all 7 password-protected files open.
Full saves now pack objects into compressed object streams. Fuzzing runs nightly (`xtask fuzz`). Missing: ≥ 250 tests, own image codecs | | M2 | Model, render, text | 200–350 | 15% | 170–300 | hayro bootstrap renderer (vendored patches). Text extraction reaches word-F1 0.98 against pdftotext. Missing: model crate, fonts, DisplayList, renderer independent of hayro | -| M3 | Viewer app (native + web) | 80–150 | 72% | 22–42 | Acrobat-style shell, find, select, panels, tiles, web build, UI control channel for agents (opt-in). Missing: 60 fps test on a 500-page document, snapshot tests of every panel | +| M3 | Viewer app (native + web) | 80–150 | 76% | 20–36 | Acrobat-style shell, find, select, panels, tiles, web build, UI control channel for agents (opt-in). Missing: 60 fps test on a 500-page document, snapshot tests of every panel | | M4 | Engine, history, save, organize | 100–180 | 88% | 20–36 | Done:
- command registry (menus, shortcuts and palette all use it);
- undo/redo; incremental, atomic and encrypted saves;
- autosave and crash recovery;
- organize, combine, extract, split and insert-from-file, with identical fonts and images stored once;
- CLI `edit/combine/extract/split`.
Done since: bookmark editing, page labels (Number pages), CLI `run`, Set Page Boxes, Crop tool, Duplicate pages. Missing: Replace pages, page transitions, recovery on the web | | M5 | Comments (all annotation types, XFDF) | 120–200 | 55% | 55–90 | Done: notes, highlight/underline/strikeout/squiggly, text boxes, ink, lines, arrows, rectangles, ovals, with appearance streams; replies, status, move/resize/restyle/delete; properties dialog; panel filter and sort; flatten; Fill & Sign (text, marks, date, drawn signature); agent tools. Missing: callouts, clouds, polygons, stamps, carets, FDF/XFDF, summaries | -| M6 | Forms + JavaScript | 160–320 | 27% | 115–235 | Done: filling text, check box, radio, combo and list fields with regenerated appearances, Tab order, Clear form, Flatten; Prepare a form (add every field type with Acrobat names, move/resize/delete, Field Properties General/Appearance size/Position/Options), agent tools. Missing: JavaScript (AF functions, events), Format/Validate/Calculate/Actions tabs, FDF/XFDF data | -| M7 | Content editing (text, images, header/footer, watermark) | 250–500 | 6% | 235–470 | Done: header & footer (tokens, Bates), text watermarks, colour backgrounds, with Update/Remove. Missing: editing text and images in place (the longest pole), image/PDF watermarks | +| M6 | Forms + JavaScript | 160–320 | 42% | 95–185 | Done: filling all field types with regenerated appearances; Prepare a form (every field type, move/resize/delete, Field Properties General/Appearance/Position/Options/Format/Validate/Calculate); Acrobat's AF format/keystroke/validate/calculate functions and simplified field notation run natively in Acrobat's event order; tab order; push-button actions; flatten; agent tools. Missing: a JavaScript engine for custom scripts, Actions tab, FDF/XFDF data | +| M7 | Content editing (text, images, header/footer, watermark) | 250–500 | 14% | 215–430 | Done: header & footer, watermarks, backgrounds, Bates; added text and images that stay editable (move, resize, format, rotate, flip, crop, replace). Missing: editing existing text and images in place (the longest pole), image/PDF watermarks | | M8 | Security + redaction | 100–180 | 60% | 40–75 | Done: opening protected documents, permissions, Protect Using Password, Remove security; redaction (mark text/areas/pages, Search & Redact with patterns, apply removing glyphs, image pixels, vectors, XObject content, annotations and fields, verification, full rewrite on save); Remove hidden information and Sanitize. Missing: certificate security, redaction codes and pattern locales, DCT re-encoding | | M9 | Signatures (PAdES, validation) | 160–280 | 0% | 160–280 | | -| M10 | OCR, create, export, print | 200–350 | 8% | 185–320 | Done: create blank / from PNG and JPEG / from text, opening images converts them, export to PNG and text. Missing: OCR, Office export and import, printing | +| M10 | OCR, create, export, print | 200–350 | 28% | 145–255 | Done: create from blank/text/PNG/JPEG/TIFF (multi-page)/GIF/BMP; export PNG/JPEG/TIFF and text; Print (Acrobat's sizing, n-up, booklet, poster, comments & forms, preview, CUPS spooler, print-ready PDF). Missing: OCR, Office export/import, Windows/web printing | | M11 | Optimize, preflight, PDF/A/X/UA, print production | 200–350 | 2% | 195–345 | Done: Reduce file size (resource merging, object streams). Missing: image downsampling, optimizer, preflight, standards | | M12 | Accessibility, compare, measure, search, XFA | 200–380 | 0% | 200–380 | | -| M13 | Automation (MCP, Action Wizard, CLI) + AI providers | 60–120 | 27% | 45–88 | Done: headless tool table (59 tools: pages, boxes, bookmarks, labels, comments, forms incl. authoring, protection, redaction, sanitize, headers/watermarks…), opt-in MCP server over stdio, CLI `run`/`tools`, UI control channel with drag. Missing: Action Wizard, more tools as features land, AI providers | +| M13 | Automation (MCP, Action Wizard, CLI) + AI providers | 60–120 | 30% | 42–84 | Done: headless tool table (67 tools incl. forms authoring and scripts, redaction, sanitize, print, add content), opt-in MCP server over stdio, CLI `run`/`tools`, UI control channel with drag. Missing: Action Wizard, AI providers | | M14 | 1.0 polish: performance, localization, installers | 120–250 | 0% | 120–250 | | -| | **Total** | **2,085–3,840** | **≈ 18%** | **≈ 1,700–3,150** | | +| | **Total** | **2,085–3,840** | **≈ 21%** | **≈ 1,650–3,050** | | -**Overall progress: about 18% of the effort.** The viewer and the core are far ahead of the editing features, because the viewer was built first so progress could be seen. +**Overall progress: about 21% of the effort.** The viewer and the core are far ahead of the editing features, because the viewer was built first so progress could be seen. ## Critical path @@ -67,6 +67,7 @@ M0 → M1 → M2 → M3 → M4 must happen in order. After M4, M5–M12 can run Newest first. One line per session: the date, what moved, and the new overall percentage. +- **2026-10-02 (session 9, later):** Print (n-up, booklet, poster, preview, CUPS), export JPEG/TIFF and create from TIFF/GIF/BMP, add text and images that stay editable, form formats/validation/calculation run natively (Acrobat's AF functions), field appearance, tab order, push buttons, 500-page frame budget. 67 tools; P0 parity ≈ 73%. ≈ 21%. - **2026-10-02 (session 9):** Prepare a form (field authoring, Field Properties), Redaction (new `content` and `redact` crates: glyph/image/vector/XObject removal with verification, Search & Redact patterns, full-rewrite saves), Remove hidden information and Sanitize. 59 agent tools; P0 parity ≈ 63%. ≈ 18%. - **2026-10-01 (session 8):** - Commenting: sticky notes, highlights, underline, strikethrough, text boxes, freehand, lines, arrows, rectangles and ovals, with replies, status, colours, moving and resizing; Acrobat-style quick bar and Comments panel; six agent tools (an agent can highlight a phrase by naming it).