Skip to content

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 11 Jun 00:24
cc0ec12

What's Changed

Features

Bug Fixes

  • fix(docx-core): split runs in insertCommentMarkers for sub-paragraph anchor ranges by @stevenobiajulu in #153
  • fix(docx-core): handle collapsed ranges and validate offsets in addComment by @stevenobiajulu in #155
  • fix(docx-mcp): document bk* paragraph ID stability and add opt-in content_fingerprint by @stevenobiajulu in #161
  • fix(docx-mcp): honor SAFE_DOCX_AI_AUTHOR in CLI entry points (#181) by @stevenobiajulu in #182
  • fix(docx-core): harden heading detection (#157 Phase 1) by @stevenobiajulu in #178
  • fix(docx-mcp): warn when read_file budget is exceeded by a single node (closes #184) by @stevenobiajulu in #186
  • fix(docx-core): declare xmlns:w14/w15 on comments root before writing prefixed attributes (#154) by @stevenobiajulu in #180
  • fix(docx-mcp): surface comment_load_error on the default budgeted read path (closes #189) by @stevenobiajulu in #191
  • fix(docx-core): suppress non-sectional false-positive headings (closes #187) by @stevenobiajulu in #188
  • fix(docx-mcp): allow system temp roots in path policy by @stevenobiajulu in #210
  • fix(docx-core): validate w:delInstrText placement and reject w:fldChar inside <w:del> by @stevenobiajulu in #211
  • fix(docx-core): partition field-closure validation by ECMA-376 story (#212) by @stevenobiajulu in #225
  • fix(docx-mcp): seed revision ids from side parts by @stevenobiajulu in #216
  • fix(docx-core): fragment w:fldChar outside w:del per ECMA-376 Part 4 by @stevenobiajulu in #228
  • fix(spec-compliance): make conformance-doc generator deterministic (closes #231) by @stevenobiajulu in #232
  • fix(scripts): allure-labels validator false positives on factory self-test and fixture sources by @stevenobiajulu in #267
  • fix(ci): npm 11 rejects double-loaded user/global config — split paths by @stevenobiajulu in #270
  • fix(ci): harden LLM-gate against npm config-load failures (closes #273) by @stevenobiajulu in #274
  • fix(ci): pass --repo to gh pr view in workflow_dispatch path (closes #275) by @stevenobiajulu in #276
  • fix(docx-core): strip sectPr from cloned paragraph shell in insert_paragraph by @stevenobiajulu in #289
  • fix(docx-core): preserve rsid identity in replace_text post-mutation merge by @stevenobiajulu in #290
  • fix(allure-test-factory): restore Allure tree grouping under allure-vitest ≥3.6 project-scoped labels by @stevenobiajulu in #314
  • fix(docx-mcp): resolve final write-path component to block symlink escape (#313) by @stevenobiajulu in #320
  • fix(llm-gate): stagger LLM calls + retry backoff to avoid API bursts by @stevenobiajulu in #338
  • fix(docx-core): make Reject All paragraph removal mark-based, not content-based (closes G4) by @stevenobiajulu in #337
  • fix(docx-core): make accept all paragraph removal mark-based, not content-based (closes g5) by @stevenobiajulu in #342
  • fix(docx-core): use replaceData in setLeafText to sync xmldom data/nodeValue by @stevenobiajulu in #40
  • fix(docx-core): corrected reject/accept round-trip oracle — projection-to-projection (#347) by @stevenobiajulu in #361
  • fix(docx-core): skip xmlns declarations in formatting-fidelity canonicalization by @stevenobiajulu in #371
  • fix(docx-core): preserve w:hyperlink wrappers in rebuild reconstruction by @stevenobiajulu in #377
  • fix(odf-core): anchor EOF-replacement deletion backward so reject-all restores the original (#367) by @stevenobiajulu in #374
  • fix(odf-core): group adjacent word replacements in ODF inline compare by @stevenobiajulu in #379
  • fix(docx-core): surface text-empty paragraphs that anchor a footnote reference by @stevenobiajulu in #384
  • fix(docx-mcp): render each footnote marker exactly once in read_file output by @stevenobiajulu in #386
  • fix(docx-core): surface text-empty paragraphs anchoring endnotes, comments, or drawings by @stevenobiajulu in #387

Documentation

  • docs(docx-core): ratify revisionable AI editing surface in SUPPORT.md (#119) by @stevenobiajulu in #133
  • docs(readme): add architecture diagram by @stevenobiajulu in #234
  • docs(readme): replace branding header with action-led title and autosync translations by @stevenobiajulu in #237
  • docs(spec): add openspec change add-test-corpus-narrative by @stevenobiajulu in #236
  • docs(openspec): align spec text with impl — only canonical README.md is auto-generated by @stevenobiajulu in #268
  • docs(comments): reclassify addCommentReply as Table B (side-part metadata only) by @stevenobiajulu in #269
  • docs(scripts): align conformance script headers with canonical-README contract by @stevenobiajulu in #271
  • docs(spec-compliance): enumerate ECMA-376 Non-Goals and hide generator banner by @stevenobiajulu in #292
  • docs(openspec): archive merged Lean-spike changes (inv-rt-001 + field-bearing arbitrary) by @stevenobiajulu in #295

CI / Infrastructure

Refactoring

Other Changes

  • chore(assets): add 400x400 logo for marketplace listings by @stevenobiajulu in #148
  • test(docx-core,docx-mcp): final regression suite for canonical emission (#143) by @stevenobiajulu in #175
  • chore(verification): atom-level Lean 4 spike with proofs + bridge + CI by @stevenobiajulu in #164
  • test(docx-core): extend Lean bridge to pre-tracked paragraph-only document.xml input (closes #194) by @stevenobiajulu in #195
  • chore(verification): scaffold OpenSpec change for Tier 2 OoxmlDoc model + inv_field_001 closure by @stevenobiajulu in #202
  • test(docx-core): fix intermittent lean-spec-bridge whitespace failure (#203) by @stevenobiajulu in #204
  • Update README to clarify Safe Docx positioning by @stevenobiajulu in #254
  • chore(readme): UTM-tag usejunior.com privacy link across all 5 READMEs by @stevenobiajulu in #281
  • test: pin OOXML preservation invariants (and discover two real bugs) by @stevenobiajulu in #287
  • test(docx-comparison): field-bearing fast-check arbitrary for the Lean spec bridge by @stevenobiajulu in #294
  • test(docx-comparison): fragmented-field fast-check arbitrary for the Lean spec bridge by @stevenobiajulu in #296
  • chore(openspec): archive add-comment-read-tool (already implemented) by @stevenobiajulu in #297
  • chore(openspec): archive add-ecma-376-conformance-framework change by @stevenobiajulu in #329
  • chore(deps): declare @xmldom/xmldom + jszip as explicit root devDeps by @stevenobiajulu in #332
  • test(docx-core): enable three pre-existing skipped tests by @stevenobiajulu in #344
  • test(docx-core): wire a libreoffice accept/reject oracle voter into the differential harness by @stevenobiajulu in #345
  • chore(gitignore): ignore Office lock files (~$*) by @stevenobiajulu in #277
  • test(docx-core): characterize collision/salt-loop in insertParagraphBookmarks (closes #282) by @stevenobiajulu in #284
  • test(docx-core): characterize the LibreOffice accept/reject oracle trust boundary by @stevenobiajulu in #364
  • chore(release): fold @usejunior/odf-core into the suite release train by @stevenobiajulu in #373
  • chore(release): bump workspace versions to 0.10.0 by @stevenobiajulu in #375

New Contributors

Full Changelog: v0.9.1...v0.10.0