Skip to content

Update dependency max-sixty/worktrunk to v0.74.0 - #131

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/max-sixty-worktrunk-0.x
Open

Update dependency max-sixty/worktrunk to v0.74.0#131
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/max-sixty-worktrunk-0.x

Conversation

@renovate

@renovate renovate Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
max-sixty/worktrunk minor 0.72.00.74.0

Release Notes

max-sixty/worktrunk (max-sixty/worktrunk)

v0.74.0: 0.74.0

Compare Source

Release Notes

Improved
  • A JSON bool or null nested in a vars value renders as True, False, or None: minijinja 2.22 adopted Jinja2's spelling for all three, so {{ vars.<key>.<field> }} into an object set by wt config state vars set prints those words. A var whose whole value is true stays a string. (Breaking: the old spellings were true, false, and none.) (#​3795)

  • wt config approvals add --yes records approvals without a terminal: the command refused every non-interactive run, so a container or CI job could not pre-approve a project it had just cloned. --yes now lists what it trusts and writes it, and a save it cannot make fails the command rather than warning and exiting 0. (#​3819)

  • remote_repo names the repository as the remote spells it: repo is the directory on disk, so a renamed clone reports the new name. {{ remote_repo }} takes it from the primary remote's URL, available everywhere owner is and unset when no remote parses. (#​3745, thanks @​canac)

Fixed
  • wt remove --force deleted a live worktree moved onto another's registered path: the ownership gate asked which repository the occupant belonged to, which a sibling worktree of this repo satisfies, so the directory went to trash with its uncommitted work. The directory and the registration must now name each other, as git worktree remove requires. Also reaches wt merge, wt step prune, and picker removal, and refuses a bare repository's path that --force previously deleted. (#​3808)

  • wt step copy-ignored skips a source file that vanishes mid-copy: the walk collects leaves, then copies them in parallel, so a file removed in between — a concurrent build rewriting target/, say — aborted the batch, under --force after deleting the destination. The source is stat'd before anything is removed now. (#​3744, fixes #​3743, thanks @​dataders for reporting and fixing)

  • wt step promote refuses to delete a source it did not fully copy: across filesystems the move copies then deletes, and an entry with no copy — a socket or FIFO, or a file a concurrent build rewrote mid-walk — was deleted anyway. The copy now reports what it skipped, and a non-zero count fails the move. (#​3820)

  • An ssh:// remote's host comes from the authority, not a later path segment: the search for the userinfo @ covered the whole remainder, so ssh://git@attacker.example/owner/repo@github.com/org/repo.git resolved to github.com and borrowed that repository's approvals while git dialed the attacker. Every URL form now splits the authority first, so @ in a namespace parses instead of being rejected. (#​3813)

  • WORKTRUNK_* env vars and --config-set outrank a [projects."…"] entry: layer and specificity resolved separately, so a project entry answered for the global key whichever layer set it — WORKTRUNK_WORKTREE_PATH could not override a project's worktree-path. Both invocation layers now apply at either scope, and the help text gained a precedence section. (#​3790, fixes #​3788, thanks @​jeremy0dell for reporting)

  • Shell completions register under the --cmd name: wt config shell init zsh --cmd wot renamed the wrapper, but clap emitted the registration under wt. Bash and zsh completed nothing and regenerated the script on every TAB, PowerShell registered the wrong command, and zsh's compdef handed worktrunk's completer to the other wt. (#​3817, fixes #​3816, thanks @​sbarre for reporting)

Documentation
  • The picker's Alt-x never forces: the keybinding table read Remove selected worktree/branch, which sent a reader looking for a force-remove that isn't there. (#​3811, raised in #​3809, thanks @​josh-burton)
Internal
  • Library API rework (Breaking library API): GitError::WorktreePathNotOurs gained an occupant_registered_at field, and WorkingTree::ensure_belongs_to_repo is now ensure_holds_this_worktree. (#​3808)

Install worktrunk 0.74.0

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.74.0/worktrunk-installer.sh | sh && wt config shell install
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.74.0/worktrunk-installer.ps1 | iex"; git-wt config shell install
Install prebuilt binaries via Homebrew
brew install worktrunk && wt config shell install

Download worktrunk 0.74.0

File Platform Checksum
worktrunk-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
worktrunk-x86_64-apple-darwin.tar.xz Intel macOS checksum
worktrunk-x86_64-pc-windows-msvc.zip x64 Windows checksum
worktrunk-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
worktrunk-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum
Install via Cargo
cargo install worktrunk && wt config shell install
Install via Winget (Windows)
winget install max-sixty.worktrunk && git-wt config shell install
Install via AUR (Arch Linux)
paru worktrunk-bin && wt config shell install

v0.73.0: 0.73.0

Compare Source

Release Notes

Fixed
  • wt remove refuses a registered path that now holds a different repository: A clone made at a stale registration's path was removed whole, uncommitted work included — and wt routed the user there, since the dirty gate read the occupant's files as this worktree's and offered --force as the cure. Removal now compares the directory's git dir against this repository's; --force waives uncommitted changes, not the check for whose directory it is. (#​3785)

  • The Nix flake names three systems, dropping Intel macOS: nixpkgs drops x86_64-darwin in 26.11, so the flake would stop evaluating there once flake.lock advances past it. (Breaking: nix build, nix run, and the home-manager module no longer resolve on Intel macOS. Release binaries are unaffected and still ship for it.) (#​3776)

  • NO_COLOR and a redirected stream reach every surface: Escapes still landed in progressive wt list, -v diagnostics, clap's error tips, and parts of stderr — the deprecation warning, the wt config update preview, the [y/N] prompt — so a redirected log carried escapes on one line and not the next. Color now resolves in one place. (#​3777, #​3771)

  • A trailing separator no longer hides the branch: Git's ref format forbids a name ending in /, and shell completion produces exactly that spelling whenever a docs directory sits beside the branch, so wt switch docs/ never had a candidate. Selectors are normalized before resolution now — wt remove, merge targets, --base, and the pre-switch hook's target alike. (#​3785)

  • A path holding no worktree is reported as a path: wt remove ../repo.ghost answered No branch named … and pointed at a listing it could never appear in; wt switch and wt merge offered --create <path>, which git rejects; and wt config state marker set --branch <path> silently stored state keyed by a path. (#​3773, thanks @​judewang for reporting)

  • A failed GitLab project lookup carries glab's own verdict: wt switch mr:<n> on a fork MR answered a 401, a 404, and a network failure with the same Failed to fetch project 456, swallowing the output every other remote_ref failure path forwards. A non-project response body now says so too. (#​3799)

  • A deleted-and-recreated worktree directory is reported, not leaked as git's exit 128: An rm -rf followed by a mkdir passes the Path::exists() probe, so wt switch, wt merge, wt step push, and wt remove walked into a raw git failure. All four now name the missing worktree and the git worktree prune that clears it. (#​3785)

Internal
  • Library API rework (Breaking library API): cargo-semver-checks fails four lints — GitError gained WorktreeNotFoundAtPath and WorktreePathNotOurs, shifting seven later discriminants, its DetachedHead variant gained a worktree field, ResolvedWorktree gained NoWorktreeAtPath, and Repository::resolve_worktree_name was removed. (#​3785, #​3773)

  • Tests and benches spawn a pinned wt binary: a concurrent cargo removes and recreates target/debug/wt as it uplifts, so spawns hit a one-off NotFound; every spawn now routes through a hardlinked pin. (#​3784, #​3792)

  • The nix devShell and task setup-web install what the test suite drives: both were missing nushell, pwsh, and jq, which --features shell-integration-tests shells out to. (#​3768, #​3776)

  • Benchmark fixtures reduced to two provenance-based bases: Generated builds a repository locally and Imported copies the pinned rust-lang/rust corpus, with worktree, branch, and remote-ref populations as parameters. (#​3761)

Install worktrunk 0.73.0

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.73.0/worktrunk-installer.sh | sh && wt config shell install
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.73.0/worktrunk-installer.ps1 | iex"; git-wt config shell install
Install prebuilt binaries via Homebrew
brew install worktrunk && wt config shell install

Download worktrunk 0.73.0

File Platform Checksum
worktrunk-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
worktrunk-x86_64-apple-darwin.tar.xz Intel macOS checksum
worktrunk-x86_64-pc-windows-msvc.zip x64 Windows checksum
worktrunk-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
worktrunk-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum
Install via Cargo
cargo install worktrunk && wt config shell install
Install via Winget (Windows)
winget install max-sixty.worktrunk && git-wt config shell install
Install via AUR (Arch Linux)
paru worktrunk-bin && wt config shell install

Configuration

📅 Schedule: (in timezone America/Chicago)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from gtbuchanan as a code owner August 20, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants