Skip to content

v0.1.10

Choose a tag to compare

@DaveDev42 DaveDev42 released this 17 May 09:25
7a07e85

0.1.10 (2026-05-14)

Features

  • acquire session lockfile when entering gw shell (24da17e)
  • acquire session lockfile when launching AI tools (a0a2a34)
  • add busy detection with lockfile + process cwd scan (102435d)
  • add busy status to worktree state with highest non-stale priority (ae18947)
  • add Claude Code skill for worktree task delegation (52f0d06)
  • add Claude Code skill for worktree task delegation (478619b)
  • add dynamic branch name tab completion for all subcommands (b2d895c)
  • add get_pr_state helper to query GitHub PR status via gh CLI (d217d5f)
  • add icon and color mappings for merged and pr-open worktree statuses (c917728)
  • add merged and pr-open worktree statuses (3096081)
  • add session lockfile with RAII guard and PID liveness check (2fc68aa)
  • add SHA256 checksums to release artifacts (d70336e)
  • add WezTerm background tab (w-t-b) + fix iTerm AppleScript (dd69f47)
  • add WezTerm background tab launch method (w-t-b) (cac993c)
  • auto-detect repository default branch (2e4321c)
  • auto-upgrade via self-replace from GitHub Releases (48b948e)
  • busy: detect_busy_tiered combines Claude session + lockfile (Hard) and scan (Soft) (45d5f9c)
  • busy: refusal message renderer for tiered busy model (3d717db)
  • centralize messages and add format_age tests (b675c83)
  • claude_session: find_active_sessions with threshold + cwd filter (aef7172)
  • claude_session: newest_event_timestamp / cwd jsonl tail parsers (7b74c8e)
  • claude_session: path encoding for ~/.claude/projects/ lookup (dbcc655)
  • clean: skip busy worktrees and report summary, --force to override (1fc20ee)
  • cli: --no-cache on clean and global; parallelize TODO; rename pr_state (f324ae6)
  • cli: accept multiple delete targets and -i/--dry-run flags (320a472)
  • cli: add --no-cache flag to list subcommand (4b96b17)
  • cli: add --prompt-file and --prompt-stdin to gw new (30f8086)
  • cli: add --prompt-file and --prompt-stdin to gw new (0425c7a)
  • cli: resolve prompt from --prompt/--prompt-file/--prompt-stdin (235fac2)
  • code quality — extract helpers, split doctor, shell completion prompt (faa6eba)
  • code quality refactoring, shell completion parity, CI improvements (e00938c)
  • Complete feature parity — all missing commands and options (908b81c)
  • Complete Python feature parity — all 15 items implemented (e4d86ba)
  • config list table, config key tab completion, cw bash completion (8ad734f)
  • config: re-add gw config (list/get/set/edit) (#165) (2833afb)
  • delete_batch: add plan types and resolver (ef2e834)
  • delete_batch: add summary printer and batch confirmation (908ca1d)
  • delete: block busy worktree deletion with TTY-aware prompt (9d33e08)
  • delete: multi-target support with -i and --dry-run (6713359)
  • delete: orchestrate multi-target delete with dry-run and batch confirm (d186c5a)
  • delete: tiered refusal in batch + clean paths (a247dd8)
  • delete: tiered refusal messages, drop interactive y/N prompt (e3f41ba)
  • display,tests: show busy in tree/stats UI; robust busy integration tests (a9b69b0)
  • doctor: --session-start --quiet single-line hook-friendly mode (0deecda)
  • doctor: detect plugin install + suggest upgrade from legacy skill (2f031e9)
  • expand skill with full gw reference and references/ support (aa1a9c1)
  • forward args to AI tool, drop --no-term/--prompt-stdin, add env auto-snapshot (#148) (6726284)
  • guard: hook helper to block risky bash in unhealthy cwd (1d17d58)
  • guard: inject PreToolUse(Bash) hook into gw-spawned Claude sessions (#147) (b12f4f8)
  • gw plugin + worktree-health skill + tiered in-use detection (513645d)
  • hybrid worktree busy detection for delete/clean (1abcb24)
  • improve tab completion for all option values (c5bb0d0)
  • improve tab completion for all option values (08dc42a)
  • integrate merged and pr-open statuses into worktree display (ccd518e)
  • launchers: keep an interactive shell open after the AI tool exits (#163) (04cdd94)
  • launchers: name new multiplexer tabs/windows after the worktree (#160) (ede873c)
  • list: progressive Inline Viewport rendering in TTY mode (67bae1d)
  • list: restore terminal on err, early-return on empty worktree set (268758f)
  • Phase 1 — project scaffolding with core infrastructure (8bdeb88)
  • Phase 2 — core commands (new, delete, merge, pr, sync, config) (c310fe6)
  • Phase 3 — terminal launchers and AI tool integration (5e9d07b)
  • Phase 4 — shell functions, auto-update, and upgrade (e99b7c7)
  • Phase 5 — backup, diagnostics, CI/CD, and polish (983bdc3)
  • pr_cache: add module skeleton with repo-hash and cache path (85dd3b7)
  • pr_cache: fetch PR state from gh in one batched call (3bfbe53)
  • pr_cache: persist PR state to disk with 60s TTL (2c7699b)
  • pr_cache: public load_or_fetch with --no-cache semantics (f61b3dd)
  • Python parity improvements — CLI flags, config fallback, colored hooks (a3c8ee2)
  • QA improvements — config get, delete --force, hook aliases, backup filtering (b8a7cc0)
  • redesign — worktree-first surface, mr-style scope discovery (#130) (c897059)
  • refresh shell cache on gw shell-setup (eebde54)
  • register gw/cw tab completion in shell functions (1eab90d)
  • rename gw-delegate skill to gw with natural language support (30f2012)
  • rename gw-delegate skill to gw with natural language support (dfe1fcb)
  • Rename to git-worktree-manager (gw) (3c061f1)
  • restore -T/--term per-invocation launcher override (#138) (d60cd52)
  • rich TUI output, duration parsing, hook error formatting (7047b87)
  • setup_claude: manage skill body — guidance + rulebook + hook catalog (89b7490)
  • setup_claude: migrate existing skill body into delegate skill (94bfe0f)
  • setup-claude: harden plugin with pre-flight + busy-sibling rules (#129) (ba6432b)
  • show launch method display names in config show/list (b0f552f)
  • smart config set for ai_tool and launch.method (79f2102)
  • spawn_spec: add 24h sweep_stale for crash-residue cleanup (4516521)
  • spawn_spec: implement execute reading spec and execvp-ing target (865f766)
  • spawn_spec: implement materialize writing 0600 tempfile (6166cbb)
  • spawn_spec: scaffold SpawnSpec struct with round-trip test (be10b65)
  • spawn-ai: enable no-arg recovery from corrupted launcher line (#125) (48e3c4f)
  • suggest .claude/settings.local.json in .cwshare setup (1e742ba)
  • suggest .claude/settings.local.json in .cwshare setup (4594ef6)
  • tui: add multi-select widget and wire gw delete -i (b4b37f1)
  • tui: Inline Viewport app skeleton with snapshot tests (8084246)
  • tui: progressive render loop consuming mpsc updates (6f4f52a)
  • tui: promote tui to directory module, add style palette and panic hook (c5e6855)
  • tui: show relative age and busy badge in delete -i selector (#116) (dea9e43)
  • upgrade: add --yes flag for non-interactive upgrade (#104) (5ada374)
  • use self_update crate for upgrade, detect Homebrew installs (eb6aff4)

Bug Fixes

  • add --fail to version check curl and validate curl in PATH (b062de8)
  • add curl PATH check to fetch_latest_version for consistency (88c50a6)
  • Add cw-cd backward compatibility alias (#9) (f2a1361)
  • ai-tools: eliminate shell-escape failures via gw _spawn-ai wrapper (567e129)
  • ai-tools: route AI spawn through gw _spawn-ai wrapper (b6ca8a2)
  • auto-update Homebrew formula on release (517eefa)
  • auto-update Homebrew formula on release (b40b091)
  • backup: show main-worktree backups and sanitize slash-in-branch (9ea6c6e)
  • bump MSRV to 1.85, fix rustfmt formatting (e59ff8e)
  • busy-detection: address review pass 2 issues (4e2e9bb)
  • busy: broaden multiplexer match + disable lsof truncation (22f7778)
  • busy: clean up process name and pgid-based sibling exclusion (92d6d5b)
  • busy: exclude terminal multiplexer servers from cwd scan (5711658)
  • busy: local Command import in scan_cwd test so Linux compiles (feb3472)
  • busy: narrow Command import to macos; Linux uses /proc (4687770)
  • busy: require live claude process to flag worktree busy (#112) (49a622a)
  • busy: resolve argv-rewritten cmd and exclude pipeline siblings (6d2e957)
  • busy: verify cwd is inside target on macOS lsof parse (cfe0346)
  • check GITHUB_TOKEN/GH_TOKEN env before spawning gh CLI (e62c3f7)
  • clean: use PrCache for --merged detection to handle squash merges (#109) (ee80a26)
  • cli: reject gw --prompt/--prompt-file leaked into forward args (#157) (05a83b6)
  • companion binary overwritten with old version during upgrade (c6d4334)
  • companion binary overwritten with old version during upgrade (505f4d9)
  • config: skip shell-completion hint for gw config commands (#166) (96d58b5)
  • create draft releases until binaries are uploaded (319829c)
  • create GitHub releases as draft until binaries are uploaded (4b5cb45)
  • critical busy-detection bugs found during smoke testing (6fe35d8)
  • delete_batch: distinguish Nothing-selected from Cancelled in -i flow (de39b00)
  • delete_batch: route summary to stdout and add dry-run trailer (ca85db6)
  • delete: use explicit --force as busy override, not default git-force flag (02a8a4e)
  • deps: bump ratatui 0.28.1 → 0.30.0 and migrate TUI code (c1d3035)
  • deps: bump ratatui to 0.30 (befe0e7)
  • disable native-tls in self_update to fix cross-compilation (cf359f5)
  • disable zip default-features to fix MSRV 1.85 and remove time vulnerability (78ffb28)
  • env: strip CLAUDE_CODE_ENTRYPOINT/EXECPATH from forwarded env to keep launched claude in TUI mode (#154) (ecd8aa7)
  • extract testable pure function and add unit tests for tab lookup (a9f9335)
  • improve curl error message and add User-Agent to version check (6b1bd42)
  • launchers: close zellij tab/pane when wrapped shell exits (#167) (1e60496)
  • lift hyphen-led target into forward_args for spawn/resume (#149) (fa6b9e6)
  • list: apply all 52 review items — correctness, hygiene, API, polish, docs (3d7a942)
  • list: correctness, behavior polish, docs, tests — apply pass-2 items A/B/D/E (ec2e0a9)
  • list: panic-safe sweep, in_place_scope, extract footer helper (d4b64d2)
  • list: pass-3 correctness — atomic flag ordering, panic readability, ratatui setup race (0d074e8)
  • list: pass-4 — env safety, prefetch filter, exhaustive PrState, comment fixes (1e91d72)
  • list: pass-5 final — sweep scope, panic message clarity, test rigor (89d472e)
  • lockfile: cfg-gate STALE_TTL so unix build does not warn (44469dd)
  • lockfile: post-rename ownership check, thiserror, tmp cleanup sweep, version field (41d1ef9)
  • pin time and base64ct for MSRV 1.85 compatibility (edf490d)
  • prevent env var race condition and config leakage in launch method tests (378c4eb)
  • prevent env var race condition in launch method tests (cf0e62f)
  • release: gate downstream jobs on resolve-release success (#135) (36fd4a9)
  • remove invalid [warnings] section from audit.toml (67433d3)
  • replace self_update with reqwest[rustls-native-roots] for enterprise MDM TLS support (cb12a30)
  • restore audit.toml ignores for zip→time and indicatif→number_prefix (ec6ceed)
  • restore focus to active tab instead of calling tab in w-t-b launcher (3354dc1)
  • restore focus to active tab instead of calling tab in w-t-b launcher (f785abd)
  • resume: always inject resume flag, drop session-detection gate (#150) (5fef11b)
  • revert version to 0.0.1 so Release Please creates v0.0.2 (addd37f)
  • setup_claude: add setup_claude_under(home) so tests can install hermetically on Windows (44f1bc1)
  • setup-claude: install plugin via local Claude Code marketplace (#107) (2c9370e)
  • skip Unix-only tests on Windows (79ce973)
  • spawn_spec: address review feedback (exit 127, TOCTOU, spec alignment) (9faa657)
  • spawn_spec: drop exec so launching shell survives AI exit (90a8c24)
  • spawn_spec: drop exec so launching shell survives AI exit (05845f3)
  • spawn_spec: pass-2 polish and restrict integration test to Unix (2f02adf)
  • spawn_spec: quote paths containing backslashes to protect Windows temp paths (fe83a48)
  • spawn-ai: use absolute self-exe path and escape iTerm AppleScript (#140) (e447c94)
  • spawn: use interactive prompt for gw new/spawn --prompt (#143) (e9dcab9)
  • suppress curl progress bar in non-terminal environments (be49d15)
  • test: isolate external_process busy-detection test into its own binary (#118) (730329c)
  • tests: isolate custom_path test in dedicated TempDir (99d329f)
  • tests: isolate setup_remote in dedicated TempDir to prevent path collisions (7c1e088)
  • tests: isolate test helpers and re-enable ignored tests (183c828)
  • tests: only ignore delete-cwd test on Windows via cfg_attr (87a7f4c)
  • tests: un-ignore all remote worktree tests (6f71c54)
  • tui: drop let _ on unit-typed ratatui::restore (dbc88e0)
  • upgrade companion binary from downloaded file, not installed one (620d8f0)
  • upgrade companion binary from downloaded file, not installed one (7f28260)
  • use >= in clean --older-than so 0 matches all worktrees (a8cd381)
  • use >= in clean --older-than so 0 matches all worktrees (d9417d3)
  • use cyan instead of blue for pr-open status in stats bar (d11b81d)
  • use gh auth token for GitHub API to avoid rate limits (ef4e498)
  • wezterm: make w-t and w-t-b launchers work on Windows (a6a6234)
  • wezterm: make w-t and w-t-b launchers work on Windows (74995dd)
  • Windows CI — UNC path comparison + cargo fmt for tests (2a3495e)
  • windows: run main on 8 MiB stack thread to avoid clap parser overflow (6c9613e)
  • wire dead --bg / --fg / backup --output flags (#111) (61c46f8)

Performance Improvements

  • entrypoint: skip startup scans for Path/ShellFunction completion helpers (3c77661)
  • list: batched gh, on-disk cache, parallelism, progressive ratatui rendering (ae7b0f2)
  • list: parallelize worktree status with rayon (80e8e9c)
  • use lockfile-only busy check in gw list (7275a80)
  • use lockfile-only busy check in gw list (3f76ca2)
  • zero-latency startup update check with background refresh (cb6550d)