All posts

Release3 min read

GitLane v2.1.3

Pull requests on Cursor Origin, squash below HEAD, and fixes for diffs, AI agents, tags, and tabs.

Also in the journal: Pull requests on Cursor Origin · Squash a range below HEAD

What's changed

Cursor Origin (#387):

  • New: Repositories on origin.cursor.com now show pull requests in GitLane, using your signed-in origin CLI. You can browse the list, open a PR, read the body, commits, diffs, and discussion, reply to or resolve existing review threads, and squash-merge or merge-commit. Creating, editing, closing, and approving PRs are not in this release. Origin credentials stay in the CLI; git still uses your system helper or SSH.

Diffs (#386):

  • Fixed: A renamed file no longer renders in the review pane as a whole-file add (+N −0, often labelled Untracked) while the file list already showed a rename. A pure move shows an empty-diff notice instead of a blank body, and an edited move keeps the old path so staging it doesn't leave a stranded deletion.

Squash (#371):

  • New: You can squash a commit range that sits below the branch tip, not only a range that ends at HEAD. Commits above the range keep their messages and authors, and staged work is left alone. Undo with git reset --hard ORIG_HEAD.

AI agents (#372):

  • Fixed: On Windows, npx-based ACP adapters (Claude, Codex, and the rest) now launch instead of failing with "npx was not found".
  • Fixed: The status pill no longer shows Ready for an adapter that has never actually run — package runners start as "Not checked" until they connect.
  • Fixed: A failed launch shows that adapter's own install command with Copy and Docs, instead of pointing every missing tool at Claude.
  • Fixed: Connect works with no repository open, so the AI Agents settings panel is usable from the first screen.

Push, pull, and tags (#376):

  • Fixed: Pushing or deleting a tag from a branch that tracks another local branch failed with Remote '.' was not found or has no URL configured whenever an account was bound.
  • Fixed: A reset whose mode wasn't recognised silently performed a weaker mixed reset than the UI reported. Unknown modes are now rejected outright.

Sign-in and credentials (#376, #379):

  • Fixed: Credential failures on a self-hosted GitLab or Bitbucket host showed the generic "check your git credential helper" hint instead of the provider-specific sign-in guidance.
  • Fixed: If the provider OAuth progress listener failed to attach, the Sign in button went permanently dead for the rest of the session.

Repositories and tabs (#376, #377, #380):

  • Fixed: Cancelling the folder picker closed the repo overlay as if you'd opened something.
  • Fixed: Closing the last tab left the previous repo's stash list in memory, and a few panes could stay stuck in a loading state after switching repos.
  • Fixed: A repo going missing wiped the tab strip's labels, worktree flags, and grouping for every open tab.
  • Fixed: A path that had been replaced by a regular file was reported as "not a repository" in the tab but "missing" in recents.

Diffs and agents (#376, #378):

  • Fixed: Copied files in a commit range were counted as conflicted in the change summary.
  • Fixed: An agent that narrated a long preamble and then sent a short final answer lost the whole turn to a false "answer too large" error.
  • Fixed: A failing git subprocess could crash the write path instead of surfacing the error.

Full changelog: https://github.com/Siomkin/GitLane/compare/v2.1.1...v2.1.3

Installers: Download GitLane.