DocFence 0.25.0
WordprocessingML linked-object review
DocFence 0.25.0 adds a privacy-safe inventory for direct w:objectLink children of w:object in supported Word stories. It is distinct from w:objectEmbed, legacy Office VML linked OLE markup, VML links, DrawingML linked pictures, fields, and generic embedded-object totals.
DFP063rejects a candidate containing a stored direct WordprocessingML linked-object-property marker.DFP064protects an approved marker baseline.- Reports expose aggregate marker/story counts, exact stored
always/onCallmodes, unsupported-or-missing modes, and OLE relationship classes only. Program/shape identifiers, field codes, locking metadata, relationship IDs and targets, XML, and story paths remain private. - Same-count metadata or target rewrites stay review-visible; relationship-ID renumbering with unchanged semantics stays quiet.
Validation
The 51-test suite, Ruff, Python 3.11/3.13 CI, and package metadata checks passed. Builds from the tagged source and main are byte-identical when normalized with the tag timestamp. A clean wheel install smoke test verified the public word_object_links projection and redaction.
Scope limit
This is a narrow stored-XML compatibility boundary, not a client-behavior claim. The release documentation records that scans found no direct marker in 503 readable Open XML SDK fixture packages (two read errors) or in 141 docx4j fixture packages, including five legacy OLE samples.