You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [2.22.0] - 2026-06-18
11
+
10
12
### Added
11
13
12
14
-**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
_Inspired by GitSquid. A "safety" feature with zero network dependency — everything local._
12
12
@@ -18,7 +18,7 @@ _Inspired by GitSquid. A "safety" feature with zero network dependency — every
18
18
19
19
---
20
20
21
-
### v2.23.0 — Stacked Branches (native)
21
+
### v2.24.0 — Stacked Branches (native)
22
22
23
23
_A differentiating feature: stacked PRs workflow without an external CLI (Graphite, ghstack…)._
24
24
@@ -36,7 +36,7 @@ The paradigm: short stacked branches (`feat/step-1` → `feat/step-2` → `feat/
36
36
37
37
---
38
38
39
-
### v2.24.0 — Voice Input (experimental)
39
+
### v2.25.0 — Voice Input (experimental)
40
40
41
41
-**Local dictation**: microphone button in the commit panel — transcription via embedded Whisper (`whisper-rs` Rust) — zero cloud
42
42
-**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/
46
46
47
47
---
48
48
49
-
### v2.25.0 — Terminal tabs & AI workspace
49
+
### v2.26.0 — Terminal tabs & AI workspace
50
50
51
51
_Inspired by t1gu1's feedback: "How can I code with AI in GitWand?" — GitWand as a native AI workspace._
52
52
@@ -60,7 +60,7 @@ _Inspired by t1gu1's feedback: "How can I code with AI in GitWand?" — GitWand
60
60
61
61
- "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
62
62
- 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+
64
64
65
65
---
66
66
@@ -101,6 +101,7 @@ Positioning: neither "yet another Git GUI" nor an IDE. A first-class Git navigat
101
101
102
102
| Version | Highlights |
103
103
|---------|-----------|
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 |
104
105
|**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 |
105
106
|**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 |
106
107
|**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) |
0 commit comments