Skip to content

Track structured bulk deletions (#473) - #474

Merged
JSv4 merged 1 commit into
mainfrom
agent/issue-473-tracked-sdt-delete
Aug 14, 2026
Merged

Track structured bulk deletions (#473)#474
JSv4 merged 1 commit into
mainfrom
agent/issue-473-tracked-sdt-delete

Conversation

@JSv4

@JSv4 JSv4 commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Closes #473.

What changed

  • track block-level w:sdt deletion with the native paired customXmlDelRangeStart/End envelope
  • recursively mark paragraph, table, and nested-control payloads
  • report every surviving descendant anchor as Modified and every hard-removed structural anchor as Removed
  • fail atomically with IncompatibleElementType when a tracked range contains unsupported w:customXml
  • share the envelope builder with the existing IR renderer and preserve schema order for paragraph-mark revisions
  • update the mutation contract and changelog

Why

Tracked DeleteRange / DeleteSection previously hard-removed block content controls, silently destroyed their descendant anchors, and still returned success. That made tracked editing neither reviewable nor auditable.

Validation

  • dotnet build Docxodus.Tests/Docxodus.Tests.csproj --no-restore -v minimal
  • 15/15 focused and neighboring bulk-delete/SDT/revision tests
  • coordinator rerun: 5/5 new DocxSessionTrackedStructuredDeleteTests
  • OpenXmlValidator checks tracked, accepted, and rejected outputs, including nested/table/locked/data-bound fixtures

@JSv4
JSv4 marked this pull request as ready for review August 14, 2026 13:32
@JSv4
JSv4 merged commit 3223daa into main Aug 14, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Agent] Track deletion of block kinds beyond w:p/w:tbl (w:sdt silently hard-removed)

1 participant