Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
7d3ce44
fix(shell): validate command name before rendering it into shell code
max-sixty May 20, 2026
9162456
fix(shell): detect noncanonical integration lines on install
max-sixty May 20, 2026
fabbcaa
fix(shell): add --cmd to config shell uninstall
max-sixty May 20, 2026
689ba0c
test(shell): cover invalid command-name guard and add zsh rejection case
max-sixty May 21, 2026
e62283f
refactor(shell): drop redundant panic re-validation of command name
max-sixty May 21, 2026
8edf5e2
refactor(shell): validate command names only at the CLI edge
max-sixty May 22, 2026
7cf56fb
fix(switch): atomic no-overwrite backup for `--clobber` (#2849)
max-sixty May 21, 2026
a95ceee
docs: make the Network Access inventory activity-based (#2850)
max-sixty May 21, 2026
865b8d9
test(hook-plan): isolate approval test from the real user config dir …
max-sixty May 21, 2026
4350f0d
fix(config): deprecation-migration data-safety and log-layout fixes (…
max-sixty May 21, 2026
2890ee0
docs(CLAUDE): rename pre-start/post-start to pre-create/post-create (…
worktrunk-bot May 21, 2026
52f86bf
revert(hooks): keep docs on pre-start/post-start; code accepts both (…
worktrunk-bot May 21, 2026
8b5d5f6
chore(clawpatch): add threat-model specs for review surfaces (#2859)
max-sixty May 21, 2026
f582c8b
refactor(switch): unify the picker and argument-path switch pipelines…
max-sixty May 21, 2026
d73ea84
feat(switch): deprecate shell command lines in --execute (#2852)
max-sixty May 21, 2026
2773cfd
refactor(config): require an explicit path for config mutations (#2862)
max-sixty May 21, 2026
251d1b4
feat(switch): add a feedback link to the --execute deprecation warnin…
max-sixty May 21, 2026
ad7b0dd
refactor(config): fold require_user_config_path into require_config_p…
max-sixty May 21, 2026
fe0fbbb
fix(statusline): reserve a fixed 5 columns instead of 20% of width (#…
max-sixty May 21, 2026
4fe3f19
docs(remove): state that --force discards all uncommitted changes (#2…
max-sixty May 22, 2026
5d7dac1
refactor(cli): consolidate --no-verify deprecation into one path (#2868)
max-sixty May 22, 2026
f6343d7
fix(output): correct user-output consistency defects (#2867)
max-sixty May 22, 2026
160d0c7
fix(relocate): atomic no-overwrite rename for --clobber backup (#2865)
max-sixty May 22, 2026
9a4ff00
fix(hooks): resolve all hook config from the invoking worktree (#2873)
max-sixty May 22, 2026
ffefa6e
fix(picker): identify worktree rows by path, not branch name (#2866)
max-sixty May 22, 2026
a756bfb
Release v0.53.0 (#2876)
max-sixty May 22, 2026
effb72c
test(hooks): exercise the pre-create alias direction post-revert (#2877)
max-sixty May 22, 2026
013cc5c
fix(hooks): correct pre-start docstring; rename mismatched test (#2879)
max-sixty May 23, 2026
ff118b3
chore(output): emit deprecation warning when only legacy directive va…
worktrunk-bot May 23, 2026
9f3b2c9
fix(shell): drop --cmd from uninstall, scan all worktrunk-managed int…
max-sixty May 24, 2026
fa148bb
Merge remote-tracking branch 'origin/main' into clawpatch-shell
max-sixty May 28, 2026
0f34b13
Merge branch 'main' into clawpatch-shell
max-sixty May 31, 2026
afbe4d4
test(shell): cover uninstall scan helpers; simplify error propagation
max-sixty May 31, 2026
a2bbfa7
Merge branch 'main' into clawpatch-shell
max-sixty Jul 23, 2026
453f60c
test(shell): pin nushell vendor-autoload dir in custom-cmd uninstall-…
max-sixty Jul 23, 2026
07f73df
refactor(shell): read the binary name off the line instead of matchin…
max-sixty Jul 24, 2026
a7ffaab
refactor(shell): tighten uninstall deletion criteria; drop dead detector
max-sixty Jul 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/content/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ Use `-D` to force-delete branches with unmerged changes. Use `--no-delete-branch
- `wt remove` — besides the target worktree, two cleanup mechanisms run. The removed worktree's own `git fsmonitor--daemon` (git's per-worktree filesystem watcher under `core.fsmonitor=true`, which would leak once its worktree is gone) is sent `git fsmonitor--daemon stop`, then force-terminated (`SIGTERM`, then `SIGKILL`) via the PID resolved from its IPC socket if it didn't exit. A background sweep then deletes `.git/wt/trash/` entries older than 24 hours (directories orphaned when a previous background removal was interrupted) and terminates fsmonitor daemons whose worktree no longer exists (orphans from `git worktree remove`, `rm -rf`, or a crashed `wt`)
- `wt config state clear` — removes all worktrunk data from `.git/` (config keys, caches, markers, hints, variables, logs, stale trash)
- `wt config shell install` — when migrating an integration to a new location, removes the worktrunk-managed file left at the old one: fish `conf.d/wt.fish` (now `functions/wt.fish`) and nushell wrappers stranded under `<config-dir>/vendor/autoload` (now `<data-dir>/vendor/autoload`)
- `wt config shell uninstall` — removes shell integration from rc files
- `wt config shell uninstall` — removes integration lines from bash/zsh/PowerShell rc files, and deletes worktrunk's wrapper and completion files (fish `functions/`, `conf.d/`, and `completions/`; nushell `vendor/autoload`). Files are recognized by worktrunk's own content markers, whatever binary name they were installed under; files without the markers are left alone

See [What files does Worktrunk create?](#what-files-does-worktrunk-create) for details.

Expand Down
2 changes: 1 addition & 1 deletion plugins/worktrunk/skills/worktrunk/reference/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ Use `-D` to force-delete branches with unmerged changes. Use `--no-delete-branch
- `wt remove` — besides the target worktree, two cleanup mechanisms run. The removed worktree's own `git fsmonitor--daemon` (git's per-worktree filesystem watcher under `core.fsmonitor=true`, which would leak once its worktree is gone) is sent `git fsmonitor--daemon stop`, then force-terminated (`SIGTERM`, then `SIGKILL`) via the PID resolved from its IPC socket if it didn't exit. A background sweep then deletes `.git/wt/trash/` entries older than 24 hours (directories orphaned when a previous background removal was interrupted) and terminates fsmonitor daemons whose worktree no longer exists (orphans from `git worktree remove`, `rm -rf`, or a crashed `wt`)
- `wt config state clear` — removes all worktrunk data from `.git/` (config keys, caches, markers, hints, variables, logs, stale trash)
- `wt config shell install` — when migrating an integration to a new location, removes the worktrunk-managed file left at the old one: fish `conf.d/wt.fish` (now `functions/wt.fish`) and nushell wrappers stranded under `<config-dir>/vendor/autoload` (now `<data-dir>/vendor/autoload`)
- `wt config shell uninstall` — removes shell integration from rc files
- `wt config shell uninstall` — removes integration lines from bash/zsh/PowerShell rc files, and deletes worktrunk's wrapper and completion files (fish `functions/`, `conf.d/`, and `completions/`; nushell `vendor/autoload`). Files are recognized by worktrunk's own content markers, whatever binary name they were installed under; files without the markers are left alone

See [What files does Worktrunk create?](#what-files-does-worktrunk-create) for details.

Expand Down
2 changes: 1 addition & 1 deletion skills/worktrunk/reference/faq.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/cli/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,8 @@ $ wt config shell uninstall --yes

## Version tolerance

Detects various forms of the integration pattern regardless of:
- Command prefix (wt, worktree, etc.)
Uninstall removes every worktrunk-managed integration it finds, regardless of:
- Binary name it was installed under (`wt`, `git-wt`, …)
- Minor syntax variations between versions"#
)]
Uninstall {
Expand Down
Loading
Loading