Skip to content

fix(deps): update rust crate worktrunk to 0.64.0#2016

Open
shunkakinoki wants to merge 1 commit into
mainfrom
renovate/cargo
Open

fix(deps): update rust crate worktrunk to 0.64.0#2016
shunkakinoki wants to merge 1 commit into
mainfrom
renovate/cargo

Conversation

@shunkakinoki

@shunkakinoki shunkakinoki commented Jul 7, 2026

Copy link
Copy Markdown
Owner

This PR contains the following updates:

Package Type Update Change Pending
worktrunk (source) dependencies minor 0.62.00.64.0 0.65.0

Release Notes

max-sixty/worktrunk (worktrunk)

v0.64.0

Compare Source

Improved
  • {{ git.branch.* }} template namespace for custom columns: wt list custom columns can now read a branch's own git config via {{ git.branch.<key> }} — both convention keys you set yourself (branch.<name>.jira) and the git-native branch.<name>.description — without re-storing the values through wt config state vars set. It complements {{ vars.* }}, which reads only worktrunk's own state namespace. (#​3319, thanks @​cazador481 for the request)

  • Faster warm-cache wt list re-runs: A repeat wt list (with .git/wt/cache/ already populated) is ~36% faster, by removing redundant per-row git subprocesses — priming the commit→tree cache from the %ct batch already issued, persisting merge-base results to a content-addressed on-disk cache, and seeding worktree roots and git-dirs from the single git worktree list instead of re-forking git rev-parse per worktree. (#​3334)

Fixed
  • Refs that look like flags can't inject git options: wt's git diff previews and diffstats (picker diff previews, show_diffstat, push diffstat) now fence user-controlled refs behind --end-of-options, and branch removal (git branch -D) passes them after --, so a branch literally named like a flag (-x, --foo) reaches git as a positional ref instead of being misparsed as an option. (#​3317)

  • Statusline renders untruncated when COLUMNS=0: wt list statusline treated COLUMNS=0 as a zero-width budget and dropped every segment, rendering an empty line. A zero or unparsable COLUMNS is now treated as no detectable width, so the line renders everything untruncated — as the statusline sizing already documented for a missing width. (#​3318)

  • Watchdog "still waiting" line uses the hint symbol: The transient Waiting for the commit message (Ns) line shown during a slow wt step commit LLM call now uses the hint prefix () instead of the info symbol (), matching the convention for fully-dim status lines. (#​3330)

v0.63.0

Compare Source

Improved
  • [list] columns can force a column on past --full: Listing a column now overrides the --full / [list] summary presets — columns = ["branch", "ci"] shows the CI column without --full. Hard data-source prerequisites still apply: a listed summary with no [commit.generation] command, or url with no template, stays hidden, since listing can't conjure data that isn't configured. (#​3295)

  • Alt-r in the picker refreshes the preview panes, not just the rows: Alt-r re-collected the rows but kept serving cached preview content, so editing a tracked file and refreshing still showed the pre-edit diff. It now clears the preview cache too, recomputing the working-tree / log / branch-diff / upstream / summary tabs and re-fetching pr / comments. Unchanged branches re-read from the content-keyed on-disk cache, so only genuinely changed content pays a recompute. (#​3293)

  • A narrowed wt list is now actually faster: A narrowed [list] columns selection (e.g. ["branch", "path"]) now runs only the git work its columns need. It previously ran every per-worktree git status, diff, and ahead/behind walk regardless, then discarded the unselected results — so a trimmed view was no faster than the full table, and on a repo with many dirty worktrees that discarded work was the bulk of the wall-clock cost. (#​3274, thanks @​jtaby for reporting)

  • Fewer duplicate git calls in wt list --full: The two integration probes per row (the conflict bit for main-state and the clean-merge tree for the integration column) issued a byte-identical git merge-tree, and the shared default-branch tip was peeled to its tree once per row. Both are now deduplicated through the in-memory cache, so each resolves once per run instead of once per worktree. (#​3288, #​3289)

  • Picker comments tab avoids redundant forge fetches: The picker's comments preview tab gained an on-disk cache keyed by the PR's updatedAt (which rides for free on the CI fetch the picker already makes), so a repeat wt switch skips the per-row gh pr view --json comments fetch when the thread is unchanged and paints the tab instantly instead of showing "Loading comments…". The cache is also primed from the gh pr list call the picker already makes, so the tab skips its own fetch even on a session's first open (including PRs with no comments). GitHub only. (#​3294, #​3299)

  • Statusline width comes from COLUMNS, not a parent-process walk: wt list statusline used to spawn up to 10 ps calls plus stty per render to recover a terminal width, because Claude Code piped the subprocess with no inherited TTY. Claude Code now sets COLUMNS/LINES to the terminal dimensions before running the script (since v2.1.153), so the width comes straight from there — less a fixed 5-column margin for Claude Code's own UI — and the ps/stty walk is gone. On an older Claude Code that doesn't set COLUMNS, the line renders untruncated rather than walking the process tree. (#​3286, closes #​2950)

Fixed
  • wt list diff and ahead/behind columns use the upstream default tip: The main↕ (ahead/behind) and main…± (diff) columns measured every branch against the local default-branch tip, so in a fork whose local main lagged its upstream they reported inflated counts — one fork branch showed ↑44 and +∞ / -5K when it was ~2 commits past the real upstream tip. They now diff against the same upstream-aware base the integration column already uses. (#​3280)

  • Integrated branches no longer flash in wt list: A squash-merged branch whose default branch later re-edited the same lines showed (would-conflict), even though wt step prune classified it as (fully integrated) and removed it. The list now ranks the integration verdict above the downstream conflict, matching prune; a genuinely un-integrated conflict still shows . (#​3278)

  • wt list divergence-overflow marker uses one emphasis level: When an ahead/behind count overflows its digit budget, the main↕ column's compact C/K/ marker rendered the "behind" subcolumn as dim + bold (reading as bold red) instead of a clean one-level step. It now steps exactly one level — dim red → normal red — matching the "ahead" subcolumn, across wt list and the picker. (#​3303)

  • Branch deletion on removal is atomic: wt remove and prune now delete a branch with a compare-and-swap (git update-ref -d <ref> <expected-sha>) against the SHA the integration check already read, closing the window where a branch whose tip moved in between (e.g. a hook landing a commit) could be deleted. Such a branch is now retained with a clear message and a wt remove -D <branch> recovery hint. This also unifies the previously divergent safe-delete paths; explicit force-delete still uses git branch -D. (#​2903)

  • wt list and picker Age/Message columns paint as soon as the commit batch lands: These columns carry no async task — their data arrives with the initial git log batch — but stayed on the · placeholder until some slower task happened to redraw the row, so the commit message lagged behind a cache-warm Summary preview. They now paint the moment the batch lands. (#​3287)

  • Picker Alt-x removal: no cursor flash, --prs rows preserved: Removing a row with Alt-x flashed the > pointer to the top of the list for a frame, and in --prs mode made the streamed PR/MR rows vanish until the next Alt-r. Removal is now a synchronous in-place pool resync: the cursor lands on the row that slid up with no flash, and the PR/MR rows survive. (#​3268, #​3275)

  • Removable rows stay gray when selected in the picker: A safe-to-delete worktree (integrated, or clean and even with the default branch) renders its row gray, but the gray vanished under the selection highlight — exactly when you're about to act on it. The gray now survives selection (selected row only; wt list and unselected rows are unchanged). (#​3267)

  • Picker preview keeps its scroll when CI status arrives: Scrolling down a diff and waiting a couple of seconds snapped it back to the top when the live CI fetch landed and re-rendered the pane. The re-render is now precise — a tab re-runs only when its own content would actually change — so a CI update no longer throws away the scroll position of an unrelated tab. (#​3292)

  • Picker summary tab dims when there's nothing to summarize: The summary preview tab (5) stayed lit on a clean branch with no commits ahead, unlike the diff tabs (1/3/4), which dim once their diff is known empty. It now dims in concert with them once both the branch diff and working tree are known empty. (#​3291)

  • Picker default view keeps collect order: With no query typed, the wt switch picker reordered rows by where each name's last / falls, so slash-bearing branches (feature/…, perf/…) sank toward the bottom and intermixed with other row kinds. The default view now preserves collect order. (#​3301)

  • Picker branch-diff preview and summary use the upstream-aware base: Like the wt list columns above, the picker's branch-diff preview pane and the LLM branch summary diffed against the raw local default branch, so a fork whose local default lagged upstream made them describe dozens of already-merged commits. They now use the same upstream-aware comparison base. (#​3305)

  • Picker comment previews render fenced code blocks cleanly: A fenced code block inside a PR/MR comment rendered as a garbled double gutter in the wt switch comments preview — alternating bar/no-bar lines with broken alignment. The code block now renders without the nested gutter. (#​3306)

  • First-run hints show the config path wt actually loads from: The picker's disabled-summary tab and the commit-generation setup prompt hardcoded ~/.config/worktrunk/config.toml, so a user with --config, WORKTRUNK_CONFIG_PATH, or a non-default $XDG_CONFIG_HOME was told to edit a file wt never reads. Both now show the resolved path. (#​3290, #​3298)

Internal
  • -vv trace and profiler accuracy: trace.log is now purely human-readable, with the machine-parseable [wt-trace] fields living only in trace.jsonl; and the performance profile's cache analysis no longer reports stdin-driven commands (LLM claude -p calls, git patch-id) as duplicate re-runs, since their real input isn't captured in the command string. (#​3296, #​3297)

Configuration

📅 Schedule: (in timezone UTC)

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

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, 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 has been generated by Mend Renovate.

@shunkakinoki shunkakinoki enabled auto-merge (squash) July 7, 2026 04:21
@indent-zero

indent-zero Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor
PR Summary

Renovate patch/minor bump of the worktrunk Rust crate. Force-push rebased onto the latest main (which advanced with unrelated commits) and moved the bump target from 0.63.0 to 0.64.0. The PR's actual scope versus main remains limited to Cargo.toml + Cargo.lock; lib.rs is empty and worktrunk is consumed only as a CLI (config/worktrunk/default.nix), so risk is confined to upstream behavior.

  • Bumped worktrunk from 0.62.0 to 0.64.0 in Cargo.toml.
  • Updated Cargo.lock with the new worktrunk version and checksum.
  • Transitively upgraded petname from 3.0.0 to 3.1.0 to satisfy the new worktrunk release (which continues to declare an explicit petname-macros dependency).

Issues

No issues found.

CI Checks

nix-check is failing solely because its nix-darwin job cannot compile the unrelated vector-0.56.0 derivation (could not compile 'vector' (bin "vector")). This is a nixpkgs/upstream build failure and is not caused by the worktrunk 0.62.0 → 0.63.0 bump in this PR — worktrunk builds successfully and nothing in the diff touches vector or its inputs. The Mesa Review / Mesa Description checks are neutral (informational), not failures. Consider retrying nix-darwin or unblocking with the usual override; the PR change itself is safe to merge from a code standpoint.

@cursor

cursor Bot commented Jul 7, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@shunkakinoki, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 57 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f52140dc-2284-40f6-82e3-29e8770f284c

📥 Commits

Reviewing files that changed from the base of the PR and between 213475a and c42d7a2.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • Cargo.toml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch renovate/cargo

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 2 files

Re-trigger cubic

@cursor

cursor Bot commented Jul 8, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@shunkakinoki shunkakinoki changed the title fix(deps): update rust crate worktrunk to 0.63.0 fix(deps): update rust crate worktrunk to 0.64.0 Jul 8, 2026
@mesa-dot-dev

mesa-dot-dev Bot commented Jul 8, 2026

Copy link
Copy Markdown

Mesa Description

TL;DR

Updates the worktrunk Rust dependency to bring in performance optimizations, upstream-aware diff/ahead-behind calculations, and various picker UI/caching improvements.

What changed?

  • Cargo.toml: Upgraded the worktrunk dependency version from 0.62.0 to 0.64.0.
  • Cargo.lock: Updated and locked transitive dependencies to support the version bump.

Description generated by Mesa. Update settings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants