|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to `@rethunk/mcp-multi-root-git` are documented here. Format loosely follows [Keep a Changelog](https://keepachangelog.com); the project uses [Semantic Versioning](https://semver.org). |
| 4 | + |
| 5 | +## [2.2.0] — 2026-04-17 |
| 6 | + |
| 7 | +Mutating git operations: merge, cherry-pick, and optional push-after for `batch_commit`. |
| 8 | + |
| 9 | +### Added |
| 10 | + |
| 11 | +- **`git_merge`** tool — merge one or more source branches into a destination. Default strategy `auto` cascades fast-forward → rebase → merge-commit per source, preferring linear history. Refuses on dirty tree; stops on first conflict with structured path report. Optional `deleteMergedBranches` / `deleteMergedWorktrees` cascade cleanup, always skipping protected names (`main`, `master`, `dev`, `develop`, `stable`, `trunk`, `prod`, `production`, `release*`, `hotfix*`). |
| 12 | +- **`git_cherry_pick`** tool — play commits from one or more sources onto a destination. Sources may be SHAs, `A..B` ranges, or branch names (expanded to `onto..<branch>`, oldest-first). Uses `--empty=drop` so patch-equivalent re-applies add nothing. Refuses on dirty tree; stops on first conflict, aborting cleanly. Same protected-name cleanup flags as `git_merge`. |
| 13 | +- **`batch_commit`** `push: "after"` — push the current branch to its upstream once every commit in the batch lands. Omitted by default; no behavior change for existing callers. |
| 14 | + |
| 15 | +### Changed |
| 16 | + |
| 17 | +- **Internal** — shared ref/branch helpers extracted to a common module; merge/cherry-pick/batch-commit implementations now reuse the same dirty-tree guards, protected-name checks, and upstream detection. |
| 18 | +- **Tooling** — Biome upgraded to 2.4.11; dev dependency refresh. |
| 19 | + |
| 20 | +### Documentation |
| 21 | + |
| 22 | +- `docs/mcp-tools.md` — `git_merge` and `git_cherry_pick` sections with parameters, JSON shape, and error codes; `batch_commit` `push: "after"` option documented. |
| 23 | + |
| 24 | +## [2.1.0] — prior |
| 25 | + |
| 26 | +- Added `git_log` — path-filtered, time-windowed log across workspace roots. |
| 27 | +- Added `git_diff_summary` — structured, token-efficient diff viewer with per-file truncation and default exclusions (lock files, `dist`, vendor). |
| 28 | +- Added `batch_commit` — sequential multi-commit tool. Mutating, not idempotent. |
| 29 | +- Test harness: fake-server duck-type lets unit tests drive the full FastMCP execute path without a live transport. |
| 30 | + |
| 31 | +## [2.0.1] — prior |
| 32 | + |
| 33 | +- Bug fixes and internal cleanup; no public tool-surface change. |
| 34 | + |
| 35 | +## [2.0.0] — prior |
| 36 | + |
| 37 | +- **Breaking:** JSON response envelope removed. `MCP_JSON_FORMAT_VERSION` now `"2"`; payloads are minified, and optional fields are omitted when empty / `null` / `false` (consumers test for presence, not equality to `null`). |
| 38 | +- Initial preset file schema (`.rethunk/git-mcp-presets.json`) with wrapped and legacy-map layouts. |
| 39 | + |
| 40 | +## [1.0.0] — prior |
| 41 | + |
| 42 | +- Initial release: `git_status`, `git_inventory`, `git_parity`, `list_presets`. |
| 43 | + |
| 44 | +[2.2.0]: https://github.com/Rethunk-AI/mcp-multi-root-git/releases/tag/v2.2.0 |
| 45 | +[2.1.0]: https://github.com/Rethunk-AI/mcp-multi-root-git/releases/tag/v2.1.0 |
| 46 | +[2.0.1]: https://github.com/Rethunk-AI/mcp-multi-root-git/releases/tag/v2.0.1 |
| 47 | +[2.0.0]: https://github.com/Rethunk-AI/mcp-multi-root-git/releases/tag/v2.0.0 |
| 48 | +[1.0.0]: https://github.com/Rethunk-AI/mcp-multi-root-git/releases/tag/v1.0.0 |
0 commit comments