Bug
OpenXmlMarkupService.ApplyOne writes a literal "[deleted]" token into the DeletedRun regardless of what was actually deleted.
Location: src/LambdaRag.Markup/OpenXmlMarkupService.cs line ~186
paragraph.AppendChild(new DeletedRun(new Run(new DeletedText("[deleted]") ...
Impact: When a reviewer accepts/rejects a tracked deletion in Word, they see the strikethrough text [deleted] instead of the actual original wording. This makes tracked-change accept/reject ambiguous and is unsuitable for legal review.
Expected: DeletedRun should contain the original span text (a.Span source slice) so accepting the deletion removes the right characters and rejecting it preserves them.
Acceptance criteria
Out of scope
- Precise span anchoring (tracked separately).
- Cross-paragraph spans (tracked separately).
Bug
OpenXmlMarkupService.ApplyOnewrites a literal"[deleted]"token into theDeletedRunregardless of what was actually deleted.Location:
src/LambdaRag.Markup/OpenXmlMarkupService.csline ~186Impact: When a reviewer accepts/rejects a tracked deletion in Word, they see the strikethrough text
[deleted]instead of the actual original wording. This makes tracked-change accept/reject ambiguous and is unsuitable for legal review.Expected:
DeletedRunshould contain the original span text (a.Spansource slice) so accepting the deletion removes the right characters and rejecting it preserves them.Acceptance criteria
DeletedRuncontains the actual original text from the span, not a placeholder.Replaceannotation with original"foo bar"→"baz", the resulting docx contains aw:delwithw:delText="foo bar".Out of scope