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
+24-5Lines changed: 24 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,18 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [3.2.0] - 2026-07-02
11
+
10
12
### Added
11
13
14
+
-**Integrated terminal — WebGL rendering, agent tabs, New AI task** — the terminal panel now renders via WebGL for smoother output, gains inline search (`Ctrl+F`, prev/next) and clickable links, and its tabs carry a type (`shell` / `claude` / `codex`) with a distinct icon and an unread-output dot. "Launch Claude Code" / "Launch Codex" now open a real PTY shell tab instead of a non-functional stub, and a new "New AI task" button creates a scratch git worktree and opens a Claude Code terminal tab in one click. Hardening: `safe_repo_path()` on all terminal filesystem operations, a shell-executable whitelist, PTY orphan/zombie prevention on tab close, bounded keystroke input, and a UTF-8 boundary carry-buffer fix for multibyte characters straddling PTY read chunks.
15
+
-**File Explorer / Editor panel** — a new dockable panel (drag/resize/fullscreen, mirroring the Terminal panel) lists the full repo file tree (gitignore-aware, via `git ls-files`) and opens files in a lazy-loaded CodeMirror 6 editor with per-tab undo history, syntax highlighting, and a lock/undo/save toolbar. Reachable from a new Files tile in the AppDock, with per-repo layout settings and folder file-counts pre-computed in a single tree walk.
12
16
-**Per-project worktree submenu** — each project tab now has a caret (▼) between its name and close button that opens a submenu listing `main` plus every worktree of the project. Selecting one switches that project's checkout in place (no extra tab); the active checkout is checkmarked.
13
17
-**AI tasks manage their worktree** — `gitwand-scratch-*` worktrees appear in the submenu with a sparkle icon and a delete action that prompts to either merge the work back into the project or delete the isolated worktree (with branch cleanup), instead of leaving it orphaned on disk.
14
-
15
-
### Fixed
16
-
17
-
-**Git Tree: deleting a worktree branch** — right-clicking a branch that's checked out in a worktree now offers "Delete worktree" (and "Merge & delete worktree" for AI-task scratch worktrees) instead of a plain "Delete branch" that git rejects. Removing/merging a worktree also reloads the branch list so the deleted branch no longer lingers in the view.
18
+
-**GitTree filter mode + branch/date-bucket navigation** — the Git Tree toolbar gains a filter mode that recalculates the DAG to show only matching commits, quick-toggle buttons for branch/author filters, and date-bucket separators in the commit timeline. The branch search box now offers a branch-name autocomplete dropdown (teleported to `<body>` to escape `overflow:hidden` clipping) and can resolve `#<PR number>` directly to the branch that PR is on — cache-first against the already-loaded PR list, with a debounced fallback fetch and a `#1234` badge on branches with a known PR.
19
+
-**Submodule updates** — the Submodules panel now shows update-available indicators and lets you pull remote submodule changes (rebase) or discard them (`git submodule update --force`), backed by new Rust `ops.rs` commands.
20
+
-**Per-author line churn stats** — the contributor dashboard now aggregates insertions/deletions per author (via `git log --numstat`) alongside the existing commit counts. Also brings GitHub API request caching via ETags and consolidated PR detail queries to cut API usage.
21
+
-**Antigravity CLI provider** — the Antigravity CLI (`agy`) is now a selectable local AI provider in Settings, with backend detection and execution support.
22
+
-**Rebase onto any ref, with branch reset** — the rebase editor now accepts remote branches, tags, and raw SHAs (not just local branches) as the base, with free-form ref input; when there are no commits to replay, it offers a branch reset routed through the app's standard confirmation flow instead of an inline prompt.
18
23
19
24
### Changed
20
25
26
+
-**Sidebar: unified Changes section** — the working-tree "Unstaged" and "Untracked" sections are merged into a single "Changes" section for a simpler, more conventional view.
27
+
-**PR create: base branch is now a `<select>`** — replaces the free-form text input + datalist, restricting the target to valid base branches (main/master first, then `release/*`, then the rest by recency).
28
+
-**AI presets: duplicate default entry removed** — the built-in `__builtin_default` preset (which duplicated the Default menu entry already routed via `activate(null)`) is gone; the active-preset checkmark now refreshes immediately after save instead of staying stale until reload.
21
29
-**Closing a project asks for confirmation** — a confirmation prompt guards the tab close button (now next to the worktree caret) against misclicks. Closing a project only closes the tab; its worktrees stay on disk.
30
+
-**Tauri bumped to 2.11** — `@tauri-apps/api`, CLI and plugins aligned with the Rust-side bump; the fragile inline find/chmod postinstall step was replaced with a cross-platform `scripts/fix-spawn-helper.mjs`.
31
+
-**Website: "Today" card refresh** — the What's New card moved to first position with its badge bumped to v3.0 and a rewritten triaged-inbox description across all 5 locales; the social-share `og-image` was refreshed to match.
32
+
33
+
### Fixed
34
+
35
+
-**Git Tree: deleting a worktree branch** — right-clicking a branch that's checked out in a worktree now offers "Delete worktree" (and "Merge & delete worktree" for AI-task scratch worktrees) instead of a plain "Delete branch" that git rejects. Removing/merging a worktree also reloads the branch list so the deleted branch no longer lingers in the view.
36
+
-**Fork PR checkout** — checking out a PR now resolves its real source repository and fetches `pull/N/head` from upstream when the PR originates from a fork; the branch, status, and log resync immediately after checkout instead of showing stale state.
37
+
-**Real Tauri error messages surfaced** — `invoke()` rejects with a plain string, not an `Error` object, so `err.message` was always `undefined` across ~20 catch blocks in `useGitRepo.ts`, showing e.g. "git log: undefined" instead of the actual git error.
38
+
-**"Changes" missing from selectable startup views** — Settings > Dock's startup-view picker now includes Changes alongside the other panes.
39
+
-**PR create: close button legibility** — improved contrast on the close button in the PR creation view.
22
40
23
41
## [3.1.0] - 2026-06-25
24
42
@@ -1148,7 +1166,8 @@ Design-system foundations — the app header and every overlay now ride on a sha
1148
1166
- CI pipeline via GitHub Actions (Node 18, 20, 22)
Copy file name to clipboardExpand all lines: ROADMAP.md
+2-27Lines changed: 2 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,33 +6,6 @@
6
6
7
7
## What's Next
8
8
9
-
### v3.2.0 — Terminal tabs & AI workspace
10
-
11
-
_Inspired by t1gu1's feedback: "How can I code with AI in GitWand?" — GitWand as a native AI workspace._
12
-
13
-
**Prerequisite fix — "Launch Claude Code" opens no usable session**_(follow-up to v2.8.0 Agent Sessions)_
14
-
15
-
The Agent Sessions launch action is wired end-to-end but doesn't produce a working session — a blocker for the AI-workspace vision below.
16
-
17
-
-**Root cause**: `agent_session_launch` spawns the `claude` CLI via `hidden_cmd` with `stdin`/`stdout`/`stderr` redirected to `null` and no terminal window (`hidden_cmd` is the *headless* helper — it sets `CREATE_NO_WINDOW` on Windows). But Claude Code is an interactive TUI requiring a TTY, so the process exits immediately / runs invisibly — the user clicks and nothing happens.
18
-
-**Fix**: open a real terminal in the worktree's cwd and run `claude` there, reusing the cross-platform pattern already implemented in `claude_cli_login` (`osascript` → Terminal.app on macOS, `cmd /k start` on Windows, `gnome-terminal`/`konsole`/`kitty`/… on Linux). Factor that terminal-launch logic into a shared helper.
19
-
-**Drop the fake "active" state**: the frontend sets `active = true` optimistically after a 1.5 s `setTimeout` with no confirmation the agent actually started — re-poll `agent_session_list` after launch instead.
20
-
-**Make Cursor/Windsurf launchable too**: today the Launch button only shows for `claude`/`other`; those GUI editors have no launch path from the panel.
21
-
22
-
**Terminal with tabs**
23
-
24
-
- The integrated terminal extended with tabs: multiple simultaneous shell sessions (`⌘T` new, `⌘W` close, `⌘1..9` switch)
25
-
- Automatic title from the first command, or editable with a double-click
26
-
- Terminal panel anchored at the bottom, resizable height
27
-
28
-
**AI workspace (exploratory phase)**
29
-
30
-
- "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
31
-
- Vision: GitWand as the command center for coding with AI — see what the agent changes, stage what you want, commit — without leaving the app
|**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 |
179
154
|**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 |
0 commit comments