Skip to content

Release v1.29.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 16:21
· 448 commits to main since this release
Immutable release. Only release title and notes can be modified.
6fc8525

What's Changed

  • fix: automated agentic fix for CLI bug by @mkorpela in #63
  • Fix strict sequential action ordering in edit batches by @mkorpela in #64
  • fix: support partial substring anchors for markup table row edits by @mkorpela in #66
  • fix: keep wrapping comments when accepting tracked changes by @mkorpela in #67
  • fix: tag --live option as Windows-only on non-Windows OS by @mkorpela in #68
  • fix: detailed report prints table row modification indications by @mkorpela in #69
  • fix: route successful adeu init status logs to stdout by @mkorpela in #70
  • fix: Automated agentic CLI bug fix by @mkorpela in #71
  • fix: Automated agentic CLI (adeu) bug fix by @mkorpela in #72
  • fix: normalize trailing whitespace in text-file diff alignment by @mkorpela in #73
  • fix: parse manual page breaks in read_docx pagination and outline by @mkorpela in #74
  • fix: generate stable cell anchors for empty table cells in read_docx by @mkorpela in #75
  • fix: Automated agentic CLI (adeu) bug fix by @mkorpela in #76
  • fix: prevent finalize_document crash when finalization is blocked by @mkorpela in #77
  • fix: Automated agentic CLI (adeu) bug fix by @mkorpela in #78

Added

  • match_mode for table row operations (insert_row / delete_row, both engines).
    "strict" (default) fails on an ambiguous anchor, "first" takes the first
    matching row, "all" fans out to every matching row. Previously the ambiguity
    error told you to set match_mode but row operations ignored it, leaving no way
    out except rewriting target_text. Matches are de-duplicated per table row, so
    a target appearing twice in one row still resolves to one row.

  • adeu accept-all --json reports what it did: accepted_insertions,
    accepted_deletions, accepted_formatting and removed_comments alongside the
    existing status / output_path. The counts are revision marks — the same
    unit sanitize reports — which --help now states, because Word splits one
    logical revision into several marks when formatting changes mid-revision.

Changed

  • Search snippets are bounded to the matching paragraph. read_docx with a
    search_query previously returned a fixed ±100-character window that spilled
    into neighbouring paragraphs; it now returns exactly the line the match lives on.

  • Sanitize's tracked-changes block names all three ways out. The message now
    offers --keep-markup (CLI) / sanitize_mode='keep-markup' (MCP) in addition to
    reviewing in Word or --accept-all.

  • The Python MCP server publishes changes items as one flat object schema
    instead of a six-way oneOf, for hosts that cannot consume oneOf/anyOf.
    This brings Python in line with the shape the Node server has always published.
    Validation is unchanged — the discriminated union still runs — and the CLI's
    changes-file schema is unchanged.

Fixed

  • Comments on insertions that create new paragraphs. A modify carrying
    \n\n (or a leading/trailing newline) with a comment could fail outright, or
    anchor the comment to the paragraph-mark revision inside <w:pPr> rather than to
    the inserted text. Comment anchors are also now normalised to direct children of
    their paragraph before use.

Full Changelog: v1.28.0...v1.29.0