v7.1.8
7.1.8 - 2026-09-07
- TAG: v7.1.8
- COVERAGE: 0.00% -- 0/0 lines in 0 files
- BRANCH COVERAGE: 0.00% -- 0/0 branches in 0 files
- 73.88% documented
Added
- Raise the minimum supported
tree_sitter_language_packversion to1.16.2,
the first released TSLP version containing the Ruby platform-gem metadata fix. - Add a repository-local benchmark report formatter that writes stable,
idempotent Markdown tables from JSON reports or standard input. - Add comprehensive
--helpoutput and usage examples to the repository-local
benchmark launchers. - Document all benchmark profiles and distinguish raw runs, aggregate reports,
and performance evidence in the benchmark guide. - Include benchmark selection mode, affected-path counts, neighbor counts, and
selected case IDs in Markdown reports so profile differences are visible. - Render configured competitor coverage and outcome summaries in competitive
Markdown reports, and document that competitor executables must be supplied
explicitly. - Expose the existing Git competitor adapter through
--gitso local
competitive runs can compare against the Git executable selected by PATH
without requiring the currently broken Mergiraf build. - Include competitor reported versions, executable paths, and binary digests in
the Markdown competitive report for reproducibility. - Make the repository-local benchmark launcher use the canonical reviewed sibling corpus by default while retaining explicit corpus selection.
- Add a repository-local benchmark launcher that forces all cold workers to use the current StructuredMerge monorepo providers.
- Preserve structured provider diagnostics in merge2 benchmark results so installed-stack and local-provider mismatches identify the actual unavailable provider.
- Make YAML recursive resolution handle normalized
MappingEntrynodes without assuming parser-wrapper predicates are present, restoring Psych provider conformance. - Make the local benchmark runner fail closed for non-Ruby corpus providers by recording them as unsupported coverage, support independently owned nested Markdown leaf sections while preserving ancestor framing, and compose independent direct-method edits inside Prism Ruby owners.
- Add the generic
ruby.rubyworkflow provider over the Ruby substrate, accepting TreeHaver tree-sitter runtimes while keeping Prism as a distinct native backend provider. - Record the Ruby golden-master adapter identity, source revision and dirty state, executable digest, complete benchmark configuration, requested merge and parser providers, and allowlisted runtime environment in every local benchmark run and aggregate report.
- Add a binary-safe, persistent JSONL benchmark adapter and performance-only run mode that measures many Ruby golden-master operations in one process without changing correctness classification.
- Accept versioned adapter descriptors for cross-runtime benchmark runs, recording the candidate source state, executable digest, runtime environment, actual merge/parser providers, and declared support without mislabeling the candidate or treating out-of-scope neighbor cases as errors.
- Add bounded process-level parallelism for independent cold benchmark cases with deterministic result ordering and explicit worker-process evidence.
- Add explicit full-corpus
nightlyand competitor-enabledcompetitivebenchmark profiles, and reject competitor sweeps from ordinary correctness profiles. - Separate benchmark process-spawn, first-request startup/loading, adapter execution, JSONL/IPC harness overhead, and warm round-trip timing evidence.
- Add shared RSpec support for deterministic TreeHaver/provider contract snapshots, namespaced native-extension evidence, and serialization differential replay.
- Add provider-owned Prism, Psych, RBS, and Markly snapshot extensions, and share one native RBS semantic projection between merge verification and contract evidence.
- Add a clean-producer, one-process-per-replay capture driver for the seven representative Ruby golden-master provider snapshot targets.
- Record workflow package identity and complete request/result transport evidence in provider snapshot differential replays.
- Return unbalanced Ruby block directives as structured Prism provider parse failures instead of leaking exceptions.
- Move source-preserving YAML provider mechanics into
yaml-merge, add its TSLP workflow provider, and makepsych-mergesupply only its native parser projection. - Retain provider-owned native Psych AST extensions in production analysis results so coarse Alef workflow hosts can forward them without reparsing or flattening the native tree.
- Let cross-runtime benchmark descriptors declare operation and dialect support plus merge-provider identity per format family, avoiding false support claims from Cartesian-product capability lists.
- Load
ast-merge-git's optional benchmark providers fromSTRUCTUREDMERGE_DEVduring local development so benchmarks exercise the current monorepo providers. - Reuse YAML's recursive AST resolver in its workflow provider so nested template-only mapping leaves merge without sacrificing destination values or source-line provenance.
- Route structurally rich TOML
merge2provider requests through the existing TreeHaver-backed TOML substrate merger, sharing table and dotted-key behavior across TSLP, Citrus, and Parslet providers. - Add the reviewed nested-table TOML
merge2sentinel to local benchmark profiles and recognize TOML provider identity in cross-runtime benchmark evidence. - Promote the shared Ruby class/method
merge2fixture into the local benchmark corpus and recognize the Rust Ruby substrate as a cross-runtime candidate. - Promote source-preserving Markdown heading-section
merge2into the mandatory benchmark profile and recognize the Rust Markdown substrate as a cross-runtime candidate. - Promote source-preserving TypeScript independent-function
merge3into the mandatory benchmark profile and map both Ruby and Rust TypeScript provider paths to affected-case selection. - Promote source-preserving Go independent-function
merge3into the mandatory benchmark profile and map both Ruby and Rust Go provider paths to affected-case selection. - Promote source-preserving Rust independent-function
merge3into the mandatory benchmark profile and map both Ruby and Rust-language provider paths to affected-case selection. - Promote source-preserving Bash independent-function
merge3into the mandatory benchmark profile and map both Ruby and Rust Bash provider paths to affected-case selection. - Add a reviewed Python
merge3gold case for the explicitly limited Rust
generic TSLP provider, including deterministic changed-path selection without
claiming a Ruby Python provider or adding it to the mandatory GM profile. - Validate the expanded reviewed-history corpus, including pinned Alef Rust
source and Markdown conflict resolutions, a clean JSON schema merge, and
reviewed Cargo TOML, Kubernetes Go/YAML, and RBS histories. - Record the Git baseline executable path, version, and digest in benchmark
environment provenance. - Add an opt-in competitive Git merge-file adapter with pinned corpus
provenance and the same strict version and digest checks as other tools. - Add per-competitor supported and eligible case counts with explicit coverage
ratios so comparative outcomes are not read without their denominators. - Add preservation-only line and lexeme agreement details to benchmark results;
these metrics do not affect merge correctness or safety gates.
Fixed
-
Align generated modular development Gemfiles with the
nomono1.1.5
bootstrap requirement used by the owning Gemfiles. -
Let TreeHaver's TSLP adapter parse valid UTF-8 filesystem bytes whose Ruby
string is binary-labelled, without transcoding bytes or accepting invalid
UTF-8 as text. -
Preserve destination-customized Markdown heading sections during provider
merge2, insert parser-proven incoming-only sections according to shared ordering constraints, and reuse this source-preserving behavior across TSLP, Markly, Commonmarker, and Kramdown providers. -
Let the RBS workflow provider honor explicit native RBS or TSLP TreeHaver selection, including the canonical
kreuzberg-language-packselector, across analysis, diff, and two- or three-way merge operations; route two-way operations through the RBS substrate so destination customizations survive; and reject TSLP's embedded inline-RBS parse mode for document merges. -
Normalize object and hash tree-sitter points in shared line-range mechanics, and let RBS wrappers reuse that contract so TSLP merges do not fail on point shape.
-
Preserve shared layout-owned leading blank lines before template-only Prism Ruby nodes that have no leading comments.
-
Accept shared snake_case diagnostics from non-Ruby benchmark adapters so expected parser rejections are classified as successful fail-closed outcomes.
-
Compare YAML
diff2entries by semantic value and parser attributes rather than owned source fragments, so mapping order and formatting changes do not become semantic edits. -
Normalize Citrus TOML pair ranges to their parsed value extent so comments following arrays are not emitted both as pair content and as shared owned comments.
-
Pin released StructuredMerge fixtures v7.1.8 for provider validation and benchmark profiles.
-
Run the Git benchmark competitor probe through a shell so CI can resolve the Git executable.
-
Make the default bup task commit CI-usable lockfiles against local StructuredMerge monorepo siblings while reserving deps-local for non-committing integration with unreleased Kettle sources.
-
Keep the root orchestration bundle on released tooling while passing local dependency overrides only to member bundle updates, preventing deps-local from polluting the root lockfile.
-
Run the default bupb task against local StructuredMerge siblings, matching the normal bup workflow.
Many paths lead to being a sponsor or a backer of this project. Are you on such a path?