TurtleGit for Mac

View Markdown source ↗

Presentation comment revision family — October 24, 2026

This continuation implements comment decisions in the existing native two-way presentation review. It does not call a hidden Mac PowerPoint Merge operation. The pinned contrib/diff-scripts/diff-ppt.js delegates its review to Windows PowerPoint's opaque Merge engine. Microsoft's review workflow includes comments, navigation and deletion alongside change decisions. The same page says Compare/Merge is unavailable on Mac and retired from Microsoft 365 Windows version 2502. The historical pinned workflow remains the port target.

Implemented package contract

The Core review inventories classic PresentationML comments/authors and verified MS-PPTX 2018 modern GUID authors, comments and replies. Each record exposes its source slide, author, initials, literal text, creation time, status, anchor and thread/parent identity. Replies are independently reviewable. Classic p15 threading preserves presentation-wide parent author/index references, including cross-slide threads. Author matching uses complete metadata rather than display name alone. Modern task assignment IDs are captured and remapped with the chosen author registry; dates, completion and titles remain in the selected XML.

Comments have separate accept/reject decisions from shapes and slide properties. Explicit deletion, including unchanged comments, uses the same Undo/Redo history and saved decision receipt as the existing editor. Deleting a parent excludes its replies; an independently selected orphan reply is refused. Deletion resolves a changed comment without requiring another accept/reject choice. Restoring or undoing deletion restores any unresolved state.

Mixed export starts from comment-free structural packages and installs only the chosen comment graph. Author/comment identities and classic indexes are allocated consistently. Modern slide and drawing monikers follow the selected output identities. A retained text-range comment requires the selected shape to retain its text, rather than guessing a new character range. A rejected/missing slide or anchor produces an explicit error requiring coherent decisions.

Complete-source choices retain the existing opaque-preservation and security rewrite route. Macro parts are not executed; signature removal remains disclosed. Archive, XML, shape, dependency, cancellation and output-publication protections remain in force. Comment inventory is bounded to 50,000 records and thread depth 64; classic numeric identity aliases are checked for collisions.

Verified primary format references

Explicit limits and validation

Unknown comment/person registries, modern extensions outside the verified 2018 schema, comment parts with relationship dependencies, and unknown author/comment extensions remain complete-source-only. They are not silently flattened or claimed as merged. Modern social tags/likes and embedded extension mentions are not yet independently remapped. Optional creation anchors require a corresponding selected identity. Complete animation/comment/unknown extension combinations and live Office reopening remain open. Native package editing does not replace the existing Office requirement for faithful visual rendering or legacy .ppt conversion.

Nine focused Core methods were authored for modern mixed replies/authors/tasks, unchanged and changed deletion/Undo, classic cross-slide threading, missing anchors, opaque complete-source preservation and malformed/cancelled inventory, and valid root-level main-part relationship composition and independent same-GUID reply moves between threads. Two retained classic-comment checks now select independent comment changes and verify rebuilt semantic identities instead of requiring old incidental indexes. All 28 relevant Core methods pass cumulatively after the recorded compile and independent-oracle repairs; see the dated family checkpoint. The Debug app, native review/lifecycle cases, independent ZIP/XML checks and final light/dark captures pass across the recorded fixture and layout repairs. All four comment receivers are independently absent. Only affected review/capture checks were repeated for layout repairs. Generic exit-zero compiler diagnostics and an NSTableView delegate warning are retained in the checkpoint; full hosted, physical input and installed Office rendering acceptance remain open. No complete-port claim is made from this implementation.