Skip to content

Preserve OMath run carrier formatting (#117) - #121

Open
kiki830621 wants to merge 13 commits into
idd/115-explicit-false-run-propertiesfrom
idd/117-omath-splice-rpr
Open

Preserve OMath run carrier formatting (#117)#121
kiki830621 wants to merge 13 commits into
idd/115-explicit-false-run-propertiesfrom
idd/117-omath-splice-rpr

Conversation

@kiki830621

@kiki830621 kiki830621 commented Aug 31, 2026

Copy link
Copy Markdown
Member

Refs #117

Summary

  • Keep inline OMath visible through the established Run.rawXML model while serializing an OMath-root fragment as a child of <w:r> after rPr.
  • Preserve .full, .omathOnly, and .discard semantics, including lang, sz/szCs, and absent/on/explicit-off bold and italic.
  • Preserve the Run carrier and rPr across first reload and a later dirty resave.
  • Use a root-scoped, quote-aware namespace attribute tokenizer with XML entity/CharRef normalization; retain generic exact-replacement behavior for non-OMML raw XML.
  • Update the existing cross-document-omath-splice Spectra artifacts to the verified contract.

Stacked dependency

This PR is based on the verified #115 branch at a3fab8b so the explicit-off acceptance can be tested without merging PR #116. After PR #116 is human-merged, rebase this PR onto main before integration.

Verification

  • Frozen source/test commit: fc84588
  • Final evidence commit: 61dce4c
  • Spectra analyze: 4 dimensions clean, 0 findings
  • Spectra validate: valid
  • OMathSpliceTests: 23/23
  • Full package: 1,460 tests, 31 conditional skips, 0 failures
  • Five independent reviewer passes plus Codex CLI PASS
  • Generic rawXML, namespace tokenizer/injection, entity/CharRef fuzz, dirty resave, flattened text, chained splice, strict namespace, and explicit-off paths covered

Follow-up concerns discovered during verification are tracked separately in #122, #123, #124, #125, and #126.

This PR does not merge or close the issue automatically.

@kiki830621
kiki830621 force-pushed the idd/117-omath-splice-rpr branch from 92fdc09 to d0a169b Compare August 31, 2026 06:15
@kiki830621
kiki830621 changed the base branch from main to idd/115-explicit-false-run-properties August 31, 2026 06:15
@kiki830621

Copy link
Copy Markdown
Member Author

IDD Verification Report

Verdict: PASS — 0 blocking findings

Frozen state

Acceptance coverage

  • OMath-root raw XML emits inside <w:r> after rPr; generic raw replacements remain exact.
  • .full, .omathOnly, and .discard serialize correctly.
  • .omathOnly preserves lang, sz/szCs, and absent/on/explicit-off bold/italic.
  • First reload and dirty second save preserve Run carrier, rPr, and OMath.
  • Flattened text, chained splice, and strict namespace behavior remain compatible.
  • Namespace classification/injection covers prefixed/default namespaces, both quote styles, dotted prefixes, nested shadowing, fake declaration text, empty undeclarations, predefined entities, numeric CharRefs, malformed references, and XML 1.0 scalar bounds.

Test evidence

  • OMathSpliceTests: 23/23 passed
  • Full package: 1,460 tests; 31 conditional skips; 0 failures
  • Spectra analyze: Coverage, Consistency, Ambiguity, and Gaps all clean
  • Spectra validate: valid
  • Git diff check: clean
  • PR closing references: none

Independent review

  • Five independent reviewer roles: PASS
  • Codex CLI review: PASS
  • Reviewer engine disclosure: available reviewers and CLI were Codex-family only; cross-model-family diversity was not available in this environment.

Follow-ups

Pre-existing or orthogonal findings are separately tracked in #122, #123, #124, #125, and #126. They do not block #117's Run carrier/rPr correction.

No merge or issue closure was performed.

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.

1 participant