Releases
v0.1.10
Compare
Sorry, something went wrong.
No results found
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 )
You can’t perform that action at this time.