Skip to content

Commit 7e707b3

Browse files
author
Laurent Guitton
committed
chore: bump version to 2.22.0
1 parent bf48d86 commit 7e707b3

16 files changed

Lines changed: 51 additions & 29 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.22.0] - 2026-06-18
11+
1012
### Added
1113

1214
- **File-level bulk conflict resolution** — in the merge editor header, "Accept all: Current · Incoming · Both" resolves *every* hunk of a file in one click (including complex/low-confidence hunks the safe "Resolve auto" leaves behind), with a non-blocking "⚠ may break a generated file" hint on Both for build-generated files. After a bulk action, a memorize offer surfaces as a persistent app-level toast (survives the auto-advance to the next conflicted file) so the rule can be saved; the saved-rule banner becomes one-click actionable ("Apply rule to N hunks") with an applicability count, gracefully skipping hunks the rule can't apply. Built on a single pure `resolveAllConflictBlocks` engine (one marker pass, callback-driven) with `resolveFileBulk` / `applyMemoryToFile` composable methods; reuses the existing undo and save/stage/advance flow. No `packages/core` change. New `merge.bulk*` / `mergeEditor.memory*` i18n keys in all 5 locales; pure-engine unit tests.
@@ -1067,6 +1069,7 @@ Design-system foundations — the app header and every overlay now ride on a sha
10671069
[2.11.0]: https://github.com/devlint/GitWand/compare/v2.10.0...v2.11.0
10681070
[2.10.0]: https://github.com/devlint/GitWand/compare/v2.9.0...v2.10.0
10691071
[2.9.0]: https://github.com/devlint/GitWand/compare/v2.8.2...v2.9.0
1072+
[2.22.0]: https://github.com/devlint/GitWand/compare/v2.21.0...v2.22.0
10701073
[2.21.0]: https://github.com/devlint/GitWand/compare/v2.20.1...v2.21.0
10711074
[2.20.1]: https://github.com/devlint/GitWand/compare/v2.20.0...v2.20.1
10721075
[2.8.2]: https://github.com/devlint/GitWand/compare/v2.8.0...v2.8.2

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<p align="center">
2222
<img alt="License" src="https://img.shields.io/badge/license-MIT-8B5CF6">
2323
<img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-100%25-3178C6">
24-
<img alt="Version" src="https://img.shields.io/badge/version-2.21.0-22c55e">
24+
<img alt="Version" src="https://img.shields.io/badge/version-2.22.0-22c55e">
2525
</p>
2626

2727
---

ROADMAP.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
## What's Next
88

9-
### v2.22.0 — Safety Bundle: pre-commit secrets scanner
9+
### v2.23.0 — Safety Bundle: pre-commit secrets scanner
1010

1111
_Inspired by GitSquid. A "safety" feature with zero network dependency — everything local._
1212

@@ -18,7 +18,7 @@ _Inspired by GitSquid. A "safety" feature with zero network dependency — every
1818

1919
---
2020

21-
### v2.23.0 — Stacked Branches (native)
21+
### v2.24.0 — Stacked Branches (native)
2222

2323
_A differentiating feature: stacked PRs workflow without an external CLI (Graphite, ghstack…)._
2424

@@ -36,7 +36,7 @@ The paradigm: short stacked branches (`feat/step-1` → `feat/step-2` → `feat/
3636

3737
---
3838

39-
### v2.24.0 — Voice Input (experimental)
39+
### v2.25.0 — Voice Input (experimental)
4040

4141
- **Local dictation**: microphone button in the commit panel — transcription via embedded Whisper (`whisper-rs` Rust) — zero cloud
4242
- **Optional AI enrichment**: pass dictated text through `useAIProvider` for conventional commit formatting
@@ -46,7 +46,7 @@ The paradigm: short stacked branches (`feat/step-1` → `feat/step-2` → `feat/
4646

4747
---
4848

49-
### v2.25.0 — Terminal tabs & AI workspace
49+
### v2.26.0 — Terminal tabs & AI workspace
5050

5151
_Inspired by t1gu1's feedback: "How can I code with AI in GitWand?" — GitWand as a native AI workspace._
5252

@@ -60,7 +60,7 @@ _Inspired by t1gu1's feedback: "How can I code with AI in GitWand?" — GitWand
6060

6161
- "New AI task" button: opens a blank worktree + launches a Claude Code (or Codex CLI) session in a dedicated terminal tab — the worktree diff displays live in GitWand
6262
- Vision: GitWand as the command center for coding with AI — see what the agent changes, stage what you want, commit — without leaving the app
63-
- User feedback expected to shape v2.25+
63+
- User feedback expected to shape v2.26+
6464

6565
---
6666

@@ -101,6 +101,7 @@ Positioning: neither "yet another Git GUI" nor an IDE. A first-class Git navigat
101101
102102
| Version | Highlights |
103103
|---------|-----------|
104+
| **v2.22.0** | Advanced conflict resolution — file-level bulk resolution ("Accept all: Current · Incoming · Both" in one click, persistent memorize-rule toast, one-click "Apply rule to N hunks"); tree-conflict resolution for markerless conflicts (modify/delete, both-deleted, add/delete) via `get_tree_conflicts`/`resolve_tree_conflict` with a dedicated editor panel + sidebar badge; markerless content-conflict reconstruction (`reconstruct_conflict` rebuilds the 3-way text from index stages when the working tree lost its `<<<<<<<` markers). Plus remote-state reliability fixes: false "Publish branch" on already-published branches (`remote_branch_exists`), false "offline" blocking push/pull (WKWebView spurious events → hysteresis + authoritative `confirmOnline` probe), and `git_remote_info` preferring `origin` (fixes the bogus "unpushed tags" modal). Full dev:web parity + 5-locale i18n |
104105
| **v2.21.0** | Monorepo Scope — pick a sub-workspace and scope the commit graph, search & stats to its file tree. Auto-detects 6 workspace formats (pnpm, npm/yarn, Cargo `[workspace]`, `nx.json`, `turbo.json`, `go.work`), parsed natively in Rust with a documented precedence; scope persisted per repo (additive `scope` field in `.gitwand-workspace.json`, validated on load); `git_log` pathspec filtering + a new `git_rev_count` driving a stable "N commits hidden" badge; sidebar `ScopePicker` (auto-detected packages + "Custom folder…" ad-hoc), active-scope chip & badge in the graph header. Picker shows only on detected monorepos; full dev:web parity via a mock `detect-monorepo` route |
105106
| **v2.20.0** | Scratch worktree + extended Conflict Predictor — "Resolve in scratch worktree" from the merge preview opens a temporary isolated `gitwand-scratch-<timestamp>` worktree as a repo tab (resolve away from the active checkout, bring changes back in one click or discard, auto-cleanup, origin-anchored lifecycle); Conflict Predictor extended to rebase (per-commit replay against `onto`) and cherry-pick — side-effect-free `preview_rebase` / `preview_cherry_pick` Tauri commands, MCP `gitwand_preview_merge` `operation` param, new `gitwand preview` CLI command, operation selector + risk badge (low/medium/high) + hunk-by-hunk preview in the panel |
106107
| **v2.19.0** | GitHub OAuth & Azure DevOps + cross-fork PRs — "Sign in with GitHub" via OAuth device flow (tokens in the OS keychain, tokenless REST path, no `gh` CLI required), Azure DevOps as a first-class forge (`AzureProvider`, Entra ID device flow + auto token refresh, PR list/detail/diff/create/merge/checkout, comments, branch-policy CI checks, reviewer votes), cross-fork pull requests (target-repo selector defaulting to upstream, fork PRs surfaced in the list), and a backend performance pass (async Tauri commands, disk-persisted SWR PR cache, libgit2 `git_status` fast-path) |

apps/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@gitwand/desktop",
3-
"version": "2.21.0",
3+
"version": "2.22.0",
44
"private": true,
55
"description": "GitWand Desktop — lightweight Git client with smart conflict resolution (Tauri + Vue 3)",
66
"type": "module",

apps/desktop/src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "gitwand-desktop"
3-
version = "2.21.0"
3+
version = "2.22.0"
44
description = "GitWand Desktop — standalone merge conflict resolution"
55
authors = ["Laurent Guitton <lb.guitton@gmail.com>"]
66
license = "MIT"

apps/desktop/src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/crates/tauri-config-schema/schema.json",
33
"productName": "GitWand",
4-
"version": "2.21.0",
4+
"version": "2.22.0",
55
"identifier": "com.gitwand.desktop",
66
"build": {
77
"frontendDist": "../dist",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gitwand",
3-
"version": "2.21.0",
3+
"version": "2.22.0",
44
"private": true,
55
"description": "Git's magic wand — automatic conflict resolution and smart merge tools",
66
"author": "Laurent Guitton <lb.guitton@gmail.com>",

packages/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@gitwand/cli",
3-
"version": "2.21.0",
3+
"version": "2.22.0",
44
"description": "GitWand CLI — resolve Git conflicts from your terminal or CI pipeline",
55
"type": "module",
66
"main": "dist/index.js",

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@gitwand/core",
3-
"version": "2.21.0",
3+
"version": "2.22.0",
44
"description": "GitWand core — automatic Git conflict resolution engine (powers @gitwand/cli, @gitwand/mcp, and the GitWand desktop app)",
55
"type": "module",
66
"main": "dist/index.js",

packages/mcp/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@gitwand/mcp",
3-
"version": "2.21.0",
3+
"version": "2.22.0",
44
"mcpName": "io.github.devlint/gitwand",
55
"description": "GitWand MCP server — smart Git conflict resolution for AI agents (Claude, Cursor, Windsurf, Claude Code)",
66
"type": "module",

0 commit comments

Comments
 (0)