Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning,
and yes, platform and engine support are part of the public API.
Please file a bug if you notice a violation of semantic versioning.
Unreleased
Added
- Documented the inherited
markdown-mergefull-documentremove_template_missing_nodes: truecontract in the wrapper README, including preserved standalone HTML comment-only fragments, link reference definitions, freeze blocks, and separator-boundary stability around kept standalone fragments. - Documented the inherited Markdown comment-ownership rollout for standalone HTML comment boundaries, matched-node fallback, partial-template link-definition preservation, and full-document fuzzy smart-merger parity through the thin wrapper.
- Added focused wrapper parity coverage for inherited removal-mode follow-ups covering destination-owned consumed link definitions that outlive removed legacy blocks, skipped fenced-code / HTML literal false positives, and preservation of only the first effective duplicate destination label.
- Added wrapper-parity shared layout compliance coverage so inherited Markdown block-gap ownership now follows the shared
Ast::Merge::Layoutcontract through the Markly wrapper.
Changed
- Clarified that
markly-mergekeeps partial-templatereplace_modebehavior separate from the shared top-level-only removal-mode contract and continues to defer generic inline-comment promotion plus recursive/nested removal semantics. - Clarified that broader removal-mode link-definition ownership, literal-context false-positive suppression, and duplicate-label normalization are all inherited from
markdown-mergerather than wrapper-local logic.
Deprecated
Removed
Fixed
- Fixed multi-byte character (emoji) handling — upstream
ast-mergebyteslice→slicefix prevents corruption when merging content with multi-byte characters
Security
1.0.0 - 2026-02-19
- TAG: v1.0.0
- COVERAGE: 83.82% – 171/204 lines in 7 files
- BRANCH COVERAGE: 41.30% – 19/46 branches in 7 files
- 78.87% documented
Added
- AGENTS.md
- Initial release of markly-merge
- Thin wrapper around
markdown-mergefor Markly backend -
Markly::Merge::SmartMerger- smart merging with markly defaults- Default freeze token:
"markly-merge" - Default
inner_merge_code_blocks: true(enabled by default)
- Default freeze token:
-
Markly::Merge::FileAnalysis- file analysis with markly backend -
Markly::Merge::FreezeNode- freeze block support - Markly-specific parse options:
-
flags:- Markly parse flags (e.g.,Markly::FOOTNOTES,Markly::SMART) -
extensions:- GFM extensions (:table,:strikethrough,:autolink,:tagfilter,:tasklist)
-
- Error classes:
Error,ParseError,TemplateParseError,DestinationParseError - Re-exports shared classes from markdown-merge:
-
FileAligner,ConflictResolver,MergeResult -
TableMatchAlgorithm,TableMatchRefiner,CodeBlockMerger NodeTypeNormalizer
-
- FFI backend isolation for test suite
- Added
bin/rspec-ffiscript to run FFI specs in isolation (before MRI backend loads) - Added
spec/spec_ffi_helper.rbfor FFI-specific test configuration - Updated Rakefile with
ffi_specsandremaining_specstasks - The
:testtask now runs FFI specs first, then remaining specs
- Added
-
MergeGemRegistry Integration: Registers with
Ast::Merge::RSpec::MergeGemRegistry- Enables automatic RSpec dependency tag support
- Registers as category
:markdown
- Documentation on hostile takeover of RubyGems
- https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo
Security
Dependencies
- appraisal2 (v3.0.6)
- kettle-test (v1.0.10)
- stone_checksums (v1.0.3)
- ast-merge (v4.0.6) - shared merge infrastructure
- tree_haver (v5.0.5) - normalized AST conventions
- markdown-merge (v1.0.3) - central merge infrastructure for markdown
- tree_stump (v0.2.0)
- markly (~> 0.15) - cmark-gfm C library
- version_gem (~> 1.1) - smart versions for libraries