Skip to content

Commit 4cf984d

Browse files
author
Laurent Guitton
committed
chore: bump version to 2.24.0
1 parent 8888430 commit 4cf984d

16 files changed

Lines changed: 60 additions & 35 deletions

File tree

CHANGELOG.md

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

88
## [Unreleased]
99

10+
## [2.24.0] - 2026-06-19
11+
12+
### Added
13+
14+
- **Full-screen views + floating navigation dock** — the permanent left sidebar (3 tabs) and right Git Tree strip are gone. Navigation now lives in a floating bottom-center `AppDock` (Dashboard · Changes · PRs · Git Tree), so each view renders full-bleed. Dashboard, Changes (files │ diff │ collapsible commit rail), History (commit list │ diff) and PRs (list │ detail) compose their own panes; the Git Tree becomes a first-class full-screen `graph` view (selecting a commit drills into History). `RepoSidebar` gained a `pane` prop so a single component renders any one slice; the commit composer rail is collapsible and its state persisted. New `sidebar.toggleCommitPanel` i18n key in all 5 locales.
15+
- **Launchpad — in-app issue review, action inbox & internal navigation** — issues now open in an in-app detail view (`IssueDetailView` + `useIssuePanel`) instead of bouncing to the browser. A new action inbox surfaces per-repo action cards (`useLaunchpadInbox` / `useRepoActionCards`), Launchpad scope selection is extracted into `useLaunchpadScope`, and internal navigation lets you move between Launchpad surfaces (and the branch selector) without leaving the app. New i18n keys in all 5 locales; composable unit tests added.
16+
- **File-tree view for the history (commit) sidebar** — the list/tree toggle now also applies when browsing a previously committed (already pushed) commit: the commit's changed-files list can render as a nested, collapsible folder tree, with the status badge per file and click-to-scroll preserved. The layout choice is shared with the Changes view — switching to tree in one switches both — and folder collapse state is persisted per folder path. The pure tree-builder (`useFileTree`) was generalised over any `{ path: string }` entry so it serves both the working-tree `RepoFileEntry` list and the commit `GitDiff` list. The lone "H" header icon is indented to align with the chevron-prefixed change sections.
17+
18+
### Changed
19+
20+
- **Lazy-load `EditCommitOverlay` and `SplitCommitModal`** — both were always-mounted despite being gated by user actions; `v-if` guards plus `defineAsyncComponent` keep their chunks out of the main bundle until they're actually needed.
21+
1022
### Fixed
1123

1224
- **AppImage external links — silent no-open** — inside the released Linux AppImage, `AppRun` prepends `$APPDIR` entries to `PATH`, `XDG_DATA_DIRS` and `XDG_CONFIG_DIRS`, so a spawned `xdg-open` could resolve a bundled helper or miss the system browser/mime association and exit `0` without opening anything. URL openers now strip the `$APPDIR`-injected search-path entries before spawning (never emptying a variable), and capture each opener's stderr + exit code into the command log so a future silent failure stays diagnosable. Follow-up to the v2.22 AppImage link fix (GitHub issue #52).
@@ -15,10 +27,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1527

1628
### Added
1729

18-
- **Full-screen views + floating navigation dock** — the permanent left sidebar (3 tabs) and right Git Tree strip are gone. Navigation now lives in a floating bottom-center `AppDock` (Dashboard · Changes · PRs · Git Tree), so each view renders full-bleed. Dashboard, Changes (files │ diff │ collapsible commit rail), History (commit list │ diff) and PRs (list │ detail) compose their own panes; the Git Tree becomes a first-class full-screen `graph` view (selecting a commit drills into History). `RepoSidebar` gained a `pane` prop so a single component renders any one slice; the commit composer rail is collapsible and its state persisted. New `sidebar.toggleCommitPanel` i18n key in all 5 locales.
1930
- **File-tree view for the changes sidebar** — the Changes view gains a list/tree layout toggle (in the controls row, to the right of the monorepo scope picker; full-width with text labels when no scope picker is present). The tree layout nests each git section's files under their folders, with collapsible folders (per-section collapse state, persisted in `localStorage`); selecting a file auto-expands its ancestor folders. The chosen layout is persisted. Pure tree-building logic lives in a new `useFileTree` composable with unit tests; `viewLayout` / `viewAsList` / `viewAsTree` i18n keys added in all 5 locales.
2031
- **Per-file and per-folder discard** — every file row now carries a discard button alongside stage/unstage, and tree folder rows carry folder-level stage/unstage + discard (operating on all files under the folder). Section-header, folder and file actions share a new segmented "action group" control (fused square buttons split by a hairline divider), and the stage/unstage/discard buttons are now always visible rather than hover-only.
21-
- **File-tree view for the history (commit) sidebar** — the list/tree toggle now also applies when browsing a previously committed (already pushed) commit: the commit's changed-files list can render as a nested, collapsible folder tree, with the status badge per file and click-to-scroll preserved. The layout choice is shared with the Changes view — switching to tree in one switches both — and folder collapse state is persisted per folder path. The pure tree-builder (`useFileTree`) was generalised over any `{ path: string }` entry so it serves both the working-tree `RepoFileEntry` list and the commit `GitDiff` list. The lone "H" header icon is indented to align with the chevron-prefixed change sections.
2232

2333
### Changed
2434

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.23.0-22c55e">
24+
<img alt="Version" src="https://img.shields.io/badge/version-2.24.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.24.0 — Safety Bundle: pre-commit secrets scanner
9+
### v2.25.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.25.0 — Stacked Branches (native)
21+
### v2.26.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.26.0 — Voice Input (experimental)
39+
### v2.27.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.27.0 — Terminal tabs & AI workspace
49+
### v2.28.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.26+
63+
- User feedback expected to shape v2.28+
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.24.0** | Full-screen views & in-app Launchpad — the permanent sidebar/Git-Tree strips give way to a floating bottom-center `AppDock`; Dashboard, Changes, History, PRs and a first-class full-screen Git Tree each render full-bleed (`RepoSidebar` gains a `pane` prop; collapsible, persisted commit composer rail). Launchpad gains in-app issue review (`IssueDetailView` + `useIssuePanel`), an action inbox (`useLaunchpadInbox` / `useRepoActionCards`), extracted scope (`useLaunchpadScope`) and internal navigation. The list/tree file-tree toggle extends to the history (commit) sidebar (`useFileTree` generalised over any `{ path }` entry). Plus a Linux AppImage follow-up: URL openers de-pollute `PATH`/`XDG_*` so a spawned `xdg-open` resolves the system browser instead of silently no-opening (#52), with opener stderr/exit captured. `EditCommitOverlay`/`SplitCommitModal` lazy-loaded. Full dev:web parity + 5-locale i18n |
104105
| **v2.23.0** | Changes sidebar & rebase polish — list/tree layout toggle for the changes view (collapsible folders, persisted layout + per-section collapse state, auto-expand to the selected file) via a new `useFileTree` composable; per-file and per-folder stage/unstage/discard fused into an always-visible segmented "action group". Interactive rebase now works in the packaged desktop app (dedicated `git_interactive_rebase` Tauri command replacing a dev-only HTTP endpoint) and branch pickers list branches by most-recent commit (shared `branchSort`). Plus a Linux AppImage fix: external links/OAuth buttons route through a robust multi-opener chain. Full dev:web parity + 5-locale i18n |
105106
| **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 |
106107
| **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 |

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.23.0",
3+
"version": "2.24.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.23.0"
3+
version = "2.24.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.23.0",
4+
"version": "2.24.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.23.0",
3+
"version": "2.24.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.23.0",
3+
"version": "2.24.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.23.0",
3+
"version": "2.24.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.23.0",
3+
"version": "2.24.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)