Releases
v0.22.0
Compare
Sorry, something went wrong.
No results found
0.22.0 (2026-10-19)
Features
actions: the robot, the pull request and the review writes run as operations: once, the other one waits (1df098e )
bd: bd lease adopt --move moves the adopted worktrees into the pool directory with git worktree move (c2a305b )
bd: bd lease checks out a slot with one worker per core, unless the repository sets checkout.workers (43a428e )
bd: bd lease keeps a pool of worktrees whose state is the authority, so a get reuses a free slot whatever master did (64e0f9c )
bd: bd lease return stops the Bazel servers of the slot, which serve only it, and keeps their output bases (9f242da )
bd: bd sync, bd status and bd commits say which commits resolved a conflict of git by words (90cf21c )
bd: bd update names the commits that resolved by words, and every round names the rounds that resolved themselves (2bb64a4 )
bd: on macOS bd lease adds a new slot as an APFS clone of a free slot or of the source, then checks out the diff (d1922ec )
diff: each inner range of a 2-way block has the kind of its change and marks its empty side, as IntelliJ types a fragment (a109564 )
diff: git-ops resolves a conflicting cherry-pick by its words, all or nothing, and gives the files and the tree (27d0139 )
diff: Inline strikes its deleted parts through, so they read as deleted without their colour (c0ea327 )
diff: text-diff composes the result of a merge on the bytes of its texts, with the line ends kept (68aab7e )
diff: the commit row says "Resolved N conflicts by words" and shows what the sync committed (4d9e108 )
diff: the diff looks as IntelliJ's in Islands Light and Islands Dark, with ligatures on by default (628c74b )
diff: the divider of Split drags, as IntelliJ's DiffSplitter, and a double click makes the sides equal (693f908 )
diff: the merges of a resolved copy name the blob that the sync committed for each file (bf6afdc )
diff: the setting branchdeck.resolveByWords, the word_resolution store, and the resolve mode in the conflict keys (5a1a60c )
diff: the sync commits a conflict of git that its words resolve, and the note and the event say so (8897d50 )
diff: Update Project and the rounds of bd update resolve a conflict of git by words, as the sync does (3c7e7b7 )
diff: Update Project applies an update whose conflicts resolve by words and says so in the tooltip and the toast (3386854 )
keys: P, D, O and M run the item of the branch menu they are the hints of, a disabled one says why (b0a1f6d )
review: each file of a review is a card, as in IntelliJ's combined diff, its sticky header the top of the card (01b6c9a )
review: the sidebar of a review starts at 19rem, and F or its button hides it so the diffs take the window (c372bbd )
settings: Diffs & Merge turns the resolve by words on and off for every repository, in the global git config (449da7f )
settings: set_repository_config writes a key to the global git config too, for the Diffs & Merge page (5afdde8 )
settings: the diffs get a page of their own, Diffs & Merge, with a row and a description for each setting (28b3ebf )
update: Update Project is a rewrite of the repository: it waits for a running regroup, and the rewrites for it (b863f6c )
Bug Fixes
bd: a resolve session is state version 2, and bd reads the version before the other fields (e6be824 )
bd: bd lease return decides unlanded work by a dry run of the pick onto the source branch, not by reachability alone (4e98d11 )
bd: bd lease return signals a Bazel server only while its pid still has the start time of the scan (e461b59 )
bd: the lease code and its tests build on Windows and the pool checkout test expects a worktree add where no clone is (bcadc73 )
check: a restack of the fix keeps the parent of a stacked leaf and replaces the parent its plan gives (6e22cbd )
check: bd check --fix tries the direct restack first, stops at its budget and prints each trial (d9f52f9 )
diff: the diffs that mount take no focus from the trigger of an open menu, so the "⋯" of the commit heading stays open (36cbe14 )
e2e: a merge test merges only once the page has the pull requests the merge reads (e876fc3 )
e2e: a test merges a running robot only once the page shows it running (2852e23 )
e2e: the menu test of the review window opens the next menu once the one before is gone (1dc0053 )
e2e: the strikethrough test of Inline reads the styles of the rows in one call (7bf03fb )
e2e: the sync of a test waits for the unassigned commits card, which moves the table down (164905e )
lock: the locked error names the holder of the repository lock, its command, pid and how long it holds it (f9db549 )
menu: the branch menu follows its stores while it is mounted; a disabled submenu and a busy "⋯" say why (a4f776e )
pick: a commit with the patch id of a branch commit is left out before the replay, the rest replays in segments (fff38e4 )
pick: a picked commit whose branch is not built on what it needs is named, with the plan that moves it (1820b71 )
review: Request Review… checks the code owners of a readiness that comes after it opened (a04b0a1 )
safe-push: --check holds the repository lock for its sync only and builds only what lands (3ca1df1 )
stack: a (parent/leaf) prefix that stacks a root group is reported as reparented, conflicting parents name the restack (6ce0ba3 )
stack: the "⋯" of an island follows its stores while it is open, the pull requests that load after the sync too (6216b03 )
symbols: a Rust .collect() is no use of a removed fn collect, and a crate uses another's items only through its name (82a43cb )
symbols: the crate of an item a commit deletes with its module is known, so another crate's record::collect is no use of it (5fc0980 )
sync: each commit chain writes on a temporary ref of its own and deletes it after a checkpoint (d743156 )
update: the bd conflict prompt leaves the protocol to bd: hint, session.next and retryable instead of restated exit codes (7685542 )
You can’t perform that action at this time.