Skip to content

Commit 1dc4816

Browse files
committed
Document the tested PdfCraft property draft consumer
1 parent 2621a16 commit 1dc4816

3 files changed

Lines changed: 55 additions & 2 deletions

File tree

‎README.md‎

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,22 @@ revision `28620b8264660ea84a182110cf5894da90281c42`. The alpha 2 additions are n
9696
This is a working, tested consumer patch
9797
awaiting maintainer review; upstream adoption is not claimed.
9898

99+
## Proposed PdfCraft UI consumer
100+
101+
[PdfCraft PR #4594](https://github.com/storytold/pdfcraft/pull/4594) integrates alpha 2 into **Document Properties**.
102+
Description, Initial View and Custom values share a draft bound to document identity,
103+
edit generation and permissions. `check_live` rejects stale input after edits, Undo/Redo,
104+
reload or a document switch; the existing engine commits one atomic batch. Cancel,
105+
Escape and no-ops do not add history. Failed engine edits retain the form for correction.
106+
Clean inspection tabs retain their existing live refresh without rebasing typed input.
107+
108+
The consumer owns a [real UI adapter](https://github.com/PerchAnton/pdfcraft/blob/535d990d10832baf3b0a64910c51b280c224bd5c/crates/ui-egui/examples/properties_scenarios.rs)
109+
and [10 scenarios / 79 steps](https://github.com/PerchAnton/pdfcraft/tree/535d990d10832baf3b0a64910c51b280c224bd5c/tests/interactions/document-properties),
110+
replayed by interaction-check, including save/reopen and preservation of custom metadata.
111+
Local scoped UI tests, strict Clippy, assets, parity and wasm checks pass. Both dependencies
112+
are pinned; upstream review of the source-policy exception and adoption is pending.
113+
See [reproduction instructions](https://github.com/PerchAnton/pdfcraft/blob/535d990d10832baf3b0a64910c51b280c224bd5c/docs/document-properties-sessions.md).
114+
99115
## PhotoCraft integration pilot
100116

101117
The [adapter in interaction-check](https://github.com/PerchAnton/interaction-check/tree/main/adapters/photocraft)
@@ -113,8 +129,7 @@ python3 interaction_check.py scenarios/photocraft/*.json -- \
113129
```
114130

115131
This is an **external, headless integration pilot**. Upstream PhotoCraft has not added this
116-
dependency and its GUI is unchanged. It is not a fix for a PhotoCraft issue. PdfCraft has not
117-
been built or adapted by this project.
132+
dependency and its GUI is unchanged. It is not a fix for a PhotoCraft issue. The separate PdfCraft UI proposal is described above.
118133

119134
See [research and adoption decision](docs/DECISION.md) and [validation evidence](docs/VALIDATION.md).
120135

‎docs/DECISION.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@ Research date: 24 October 2026 (Europe/Kyiv). The implementation is an experimen
44
maintainer has agreed to adopt either project. The first consumer focus is PhotoCraft,
55
followed by PdfCraft.
66

7+
## Follow-up — 25 October 2026
8+
9+
The narrow consumers are now proposed in [PhotoCraft #9190](https://github.com/storytold/photocraft/pull/9190)
10+
(Edit Selected Guides) and [PdfCraft #4594](https://github.com/storytold/pdfcraft/pull/4594) (Document Properties).
11+
The latter uses alpha 2 without adding any application-specific API to the library.
12+
Its baseline regressions reproduce stale metadata overwrites and loss of Redo after Undo;
13+
the adapter drives real widgets and checks engine save/reopen. [Validation](VALIDATION.md)
14+
records the scoped checks. These are tested consumer patches, not upstream adoption.
15+
The research and candidate-selection notes below describe the earlier 24 October snapshot.
16+
717
## What the repositories show
818

919
PhotoCraft and PdfCraft are Rust applications using egui 0.36 and pinned dependencies from

‎docs/VALIDATION.md‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# Validation evidence
22

3+
## PdfCraft consumer proposal — 25 October 2026
4+
5+
[PR #4594](https://github.com/storytold/pdfcraft/pull/4594), consumer commit `535d990d10832baf3b0a64910c51b280c224bd5c` on upstream
6+
`418ac6a2af49b7ac2fed44ca2cae8d5d1d2cec0d`, uses edit-session alpha 2 at
7+
`033f7c3a67b825b8f222288788cc61234c0c945d` and interaction-check at
8+
`7722d66c0ede7855ff58d1df3d1632fd4e5e66a5`.
9+
10+
On macOS arm64, Rust 1.99.1, Python 3.14.3, English UI and system-font fallback disabled:
11+
12+
- Two upstream UI regressions fail before the fix: confirming a stale title after another
13+
edit, and confirming after edit + Undo back to the same original value.
14+
- 522 unit, 1,153 integration and 3 performance tests pass for `pdfcraft-ui-egui`; 11
15+
existing tests are ignored. Tests run with two threads and host loopback/GPU access.
16+
- Formatting, strict Clippy on all UI targets, layering, asset attribution and parity pass.
17+
- `xtask wasm` checks 31 crates successfully, with warnings in unchanged platform-specific code.
18+
- 10 JSONL scenarios / 79 steps pass through actual egui controls and the real engine.
19+
They cover commit, Cancel/Escape, no-op preserving Redo, custom validation, stale edits,
20+
Undo ABA, reload, target switching/closure, clean inspection refresh, and save/reopen.
21+
JSON and JUnit reports were generated. Actual Description, Custom, Initial View and
22+
stale-notice screenshots were inspected locally; synthetic PDF bytes are not committed.
23+
- Engine refusal/retry is atomic. A separate test checks freshness immediately at commit,
24+
without relying on a preceding frame. Pending input is not rebased by an inspection tab.
25+
26+
The [consumer documentation](https://github.com/PerchAnton/pdfcraft/blob/535d990d10832baf3b0a64910c51b280c224bd5c/docs/document-properties-sessions.md)
27+
explains replay and the proposed exact Git-source exception. These results are local;
28+
Linux/Windows CI, native OS input, another PDF reader, packaging and maintainer adoption
29+
are not implied. PhotoCraft's existing alpha 1 pin is unchanged.
30+
331
## Alpha 2 review — 25 October 2026
432

533
On macOS arm64 with **Rust 1.88.0**, the minimum supported compiler:

0 commit comments

Comments
 (0)