Skip to content
gwmgwmgwmv1.10.0

v0.2.0

Validated via v0.2.0-rc.1 (pre-release published on 2026-05-18).

  • TUI keybinding o reveals the selected worktree’s directory in the OS file manager (open on macOS, xdg-open on Linux, explorer on Windows).
  • WorktreeInfo.status (BranchStatus): dirty / clean / upstream-tracked / ahead / behind, computed via libgit2.
  • STATUS column in both the TUI table and gwm list CLI output, with colour-coding (green clean / synced, yellow dirty or behind, cyan ahead, red prunable, magenta locked, dark_gray unknown).
  • CI on the dev integration branch: fmt, clippy, multi-OS test, and cargo audit now run on every push to dev and on every PR targeting dev (same matrix as main).
  • .github/workflows/pre-release.yml: builds the 5 release targets (Linux x86_64 + aarch64, macOS Intel + Apple Silicon, Windows x86_64) and publishes a GitHub Release with prerelease: true whenever a SemVer-rc / -alpha / -beta tag is pushed (e.g. v0.2.0-rc.1). Also supports workflow_dispatch for manual reruns.
  • TUI details sidebar (auto-shown when terminal width ≥ 120 cols, toggle with v): lazyssh-style panel listing the selected worktree’s branch, path, head, locked / prunable / main flags, status, plus git log --oneline -n 10, git status --short, and a commands cheat-sheet.
  • TUI keybinding l: suspend the TUI and launch lazygit -p <selected-worktree-path> fullscreen; resume the TUI when lazygit exits. Surfaces a clear error in the status bar if lazygit is not on $PATH.
  • TUI focus toggle (Tab): swap focus between the worktree list and the sidebar. j / k (and arrows) scroll the focused panel; the focused panel’s border turns cyan.
  • TUI vim motions: gg jumps to the first worktree, G to the last.
  • worktree::git_log_oneline(path, n) and worktree::git_status_short(path) - thin Command::new("git") wrappers used by the sidebar (and exposed for tests).
  • .gwm.toml config for this repo (Rust-flavoured): target/ no_symlink + cargo fetch bootstrap step + direnv allow when an .envrc exists.
  • dependabot.yml: target-branch: dev on both ecosystems so new automated PRs land on the integration branch instead of main.
  • TUI worktree view: ratatui List → Table with dynamic column widths derived from data (name/branch capped to [18, 38], status fixed 16, path takes the rest). No more …-truncated names for typical branch lengths.
  • gwm list CLI output uses the same dynamic column widths.
  • TUI list j / k: now reset the sidebar scroll offset when navigating worktrees, and scroll the sidebar instead of moving selection when the sidebar has focus.
  • Sidebar content is now cached on the App (keyed by selected worktree’s path); git log / git status only run when the selection actually changes. Sidebar scrolling clamps to the rendered content height.
  • Windows .sha256 sidecars (release + pre-release workflows) now use Set-Content -Encoding ascii and the conventional <hash> <file> format so they verify cleanly with sha256sum -c across platforms.
  • ratatui 0.28 → 0.30 (and crossterm 0.28 → 0.29). Renamed Table::highlight_style → row_highlight_style to track the deprecation.
  • git2 0.19 → 0.20.
  • toml 0.8 → 1.1.
  • thiserror 1 → 2.
  • which 6 → 8.
  • actions/checkout 4 → 6, actions/upload-artifact 4 → 7, actions/download-artifact 4 → 8, softprops/action-gh-release 2 → 3.