diff --git a/ROADMAP.md b/ROADMAP.md index 27aaec28..63a74063 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -35,7 +35,7 @@ Hours are for a single agent (low–high). "Done" is the estimated fraction of t | 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 | -| M4 | Engine, history, save, organize | 100–180 | 65% | 35–63 | 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`.
Missing: bookmark and page-label editing, page boxes, CLI `run`, recovery on the web | +| M4 | Engine, history, save, organize | 100–180 | 80% | 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`. Missing: page boxes/crop, recovery on the web | | M5 | Comments (all annotation types, XFDF) | 120–200 | 0% | 120–200 | Read-only comments panel exists | | M6 | Forms + JavaScript | 160–320 | 0% | 160–320 | Fields are displayed, not filled | | M7 | Content editing (text, images, header/footer, watermark) | 250–500 | 0% | 250–500 | Longest pole | @@ -46,9 +46,9 @@ Hours are for a single agent (low–high). "Done" is the estimated fraction of t | M12 | Accessibility, compare, measure, search, XFA | 200–380 | 0% | 200–380 | | | M13 | Automation (MCP, Action Wizard, CLI) + AI providers | 60–120 | 15% | 50–100 | Done: headless tool table (20 tools), opt-in MCP server over stdio, CLI `run`/`tools`. Missing: Action Wizard, more tools as features land, AI providers | | M14 | 1.0 polish: performance, localization, installers | 120–250 | 0% | 120–250 | | -| | **Total** | **2,085–3,840** | **≈ 9.5%** | **≈ 1,870–3,465** | | +| | **Total** | **2,085–3,840** | **≈ 10%** | **≈ 1,870–3,465** | | -**Overall progress: about 9.5% 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 10% 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,13 @@ 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-01 (session 7):** + - Bookmark editing and page numbering (Number pages), with undo, agent tools and UI. + - A render watchdog: pathological pages are skipped after 20 s instead of spinning forever. + - The agent control channel no longer reports success when the window is hidden. + - Community links: Discord button in the title bar, plus Home, About, Help menu, CLI and README. + - Overall ≈ 10%. + - **2026-10-01 (session 6):** - UI control channel: agents can inspect the widget tree, click, type, press keys, run commands and take screenshots of the running app. Off unless the app is started with `--control`; loopback only, token-authenticated. - Combine and insert store identical fonts, images and other resources once. 40 copies of the showcase: 130 MB → 3.9 MB, 3× faster, pixel-identical. diff --git a/parity/acrobat-features.toml b/parity/acrobat-features.toml index 70386d27..483fc474 100644 --- a/parity/acrobat-features.toml +++ b/parity/acrobat-features.toml @@ -3019,10 +3019,10 @@ title = "Edit page labels (style, prefix, start)" area = "D" tier = "P1" milestone = "M4" -status = "planned" -commands = [] -tools = [] -evidence = [] +status = "shipped" +commands = ["page.number"] +tools = ["page_number"] +evidence = ["crates/organize/src/tests.rs::number_pages_like_acrobat", "crates/engine/src/tests.rs::number_pages_shows_in_the_viewer_and_undoes", "crates/ui-egui/tests/bookmarks.rs::number_pages_dialog_labels_the_selected_pages", "crates/automation/tests/automation.rs::numbering_pages_through_tools"] notes = "" [[feature]]