@gitkraken/core-gitlens 0.16.0 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/dist/git/cache.js +2 -2
  3. package/dist/git/cache.js.map +1 -1
  4. package/dist/git/run.types.d.ts +3 -0
  5. package/dist/git/watching/classifyChange.js +3 -0
  6. package/dist/git/watching/classifyChange.js.map +1 -1
  7. package/dist/git/watching/watchSession.d.ts +2 -0
  8. package/dist/git/watching/watchSession.js +9 -1
  9. package/dist/git/watching/watchSession.js.map +1 -1
  10. package/dist/git-cli/cliGitProvider.d.ts +1 -1
  11. package/dist/git-cli/cliGitProvider.js +7 -4
  12. package/dist/git-cli/cliGitProvider.js.map +1 -1
  13. package/dist/git-cli/exec/commandClassifier.d.ts +18 -3
  14. package/dist/git-cli/exec/commandClassifier.js +562 -16
  15. package/dist/git-cli/exec/commandClassifier.js.map +1 -1
  16. package/dist/git-cli/exec/exec.d.ts +2 -2
  17. package/dist/git-cli/exec/git.d.ts +31 -4
  18. package/dist/git-cli/exec/git.js +105 -43
  19. package/dist/git-cli/exec/git.js.map +1 -1
  20. package/dist/git-cli/exec/headState.d.ts +32 -0
  21. package/dist/git-cli/exec/headState.js +78 -0
  22. package/dist/git-cli/exec/headState.js.map +1 -0
  23. package/dist/git-cli/providers/branches.js +14 -4
  24. package/dist/git-cli/providers/branches.js.map +1 -1
  25. package/dist/git-cli/providers/operations.d.ts +6 -7
  26. package/dist/git-cli/providers/operations.js +46 -64
  27. package/dist/git-cli/providers/operations.js.map +1 -1
  28. package/dist/git-cli/providers/refs.d.ts +4 -1
  29. package/dist/git-cli/providers/refs.js +13 -9
  30. package/dist/git-cli/providers/refs.js.map +1 -1
  31. package/dist/utils/env/node/exec.d.ts +38 -1
  32. package/dist/utils/env/node/exec.js +14 -6
  33. package/dist/utils/env/node/exec.js.map +1 -1
  34. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,19 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.16.1] - 2026-10-23
10
+
11
+ ### Added
12
+
13
+ - Adds `GitOptions.spawn`, which launches the git process of every run and stream in place of Node's `spawn` (locating git still uses `execFile`), so a host whose process is large can start git from a helper process: on Linux a spawn forks the calling process, blocking its event loop for a time that grows with its memory. Exports `ProcessSpawner`, `ProcessSpawnOptions` and `SpawnedProcess` for it (git-cli, utils)
14
+
15
+ ### Fixed
16
+
17
+ - Fixes a fetch that moves a remote-tracking ref making every worktree that asks for its push target re-run `rev-parse` to find its checked-out branch, one git process per worktree on top of the one shared ref list read: `getPushTarget` without a branch now takes the branch from the worktree's own `HEAD` file, so it runs no git process and is never older than the file. A `HEAD` file that can't say (reftable, an unreadable file, a branch that is a symbolic ref to another, such as a `master` kept pointing at `main`, or a HEAD kept as a symlink by `core.preferSymlinkRefs`, which reads as an object id like a detached HEAD but which the git dir's listing flags as a link) resolves the branch with git as before (git, git-cli)
18
+ - Fixes a raw git write run with `notify: 'infer'` (a sync rebase, a compose run or an undo) making every worktree of the repository re-read its refs, because it announced whole ref kinds with no names: such a write now names the refs its argv proves it moved, as typed writes do since 0.15.5, so a host can skip worktrees that don't follow them. `update-ref` names its ref, and a write to a ref outside `refs/heads`, `refs/tags`, `refs/remotes` and `refs/stash` (a tool's own bookkeeping, such as `refs/undo/*`) announces nothing, as `updateReference` already did, and the file watcher no longer reports such a ref as an index, config or `HEAD` change when its name holds one of those words (`refs/kepler/sync/resolved/fix-index`); `branch`, `tag`, `checkout -b`/`switch -c`, `worktree add -b` and a plain `checkout <name>` name their branch or tag, with a branch's config change confined to its own section; `stash` writes name `refs/stash` (and `stash branch` the branch it creates), and `stash create` and `stash apply` move no ref; a detached checkout, a full-SHA checkout and every `worktree` subcommand other than `add` announce no branch. A `commit`, `reset`, `merge`, `cherry-pick`, `revert` or `am`, and a `rebase` with update-refs provably off, read the worktree's `HEAD` file before and after the run, without running git: on one branch both times they name it, and detached both times (a sync's scratch worktree) they announce no branch move at all; a `HEAD` kept as a symlink by `core.preferSymlinkRefs`, which reads as its branch's object id as a detached one does, counts as neither, so its branch move is announced unnamed. Anything the argv can't prove (`update-ref --stdin`, a rename of the current branch, a rebase that may update other branches) stays unnamed. With 60 linked worktrees, a sync rebase and apply of one branch went from ~420 git processes to ~65 and its undo from ~385 to ~30, none of them in the other worktrees (git, git-cli)
19
+ - Fixes `updateReference` and `deleteReference` announcing their ref unnamed (a remote's `HEAD`, which an update moves through to the branch it points to, stays unnamed), and typed `reset`, `merge`, `cherryPick` and `revert` announcing their branch unnamed: they now name it, as `commit` does, and a detached HEAD's move announces no branch move. Such a move, raw or typed, still resets that worktree's branch and worktree lists, blame, diffs and contributors (git, git-cli)
20
+ - Fixes `Git.stream` rejecting a stream its own `timeout` killed with a `CancelledRunError` whose reason is `'unknown'` rather than `'timeout'`, so a caller that branches on the reason read it as an outside kill; `run` already reported `'timeout'` (git-cli)
21
+
9
22
  ## [0.16.0] - 2026-10-22
10
23
 
11
24
  ### Fixed
@@ -871,7 +884,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
871
884
 
872
885
  - Initial release. Bundles `@gitlens/utils`, `@gitlens/git`, `@gitlens/git-cli`, `@gitlens/ai`, and `@gitlens/git-github` into a single core npm package with subpath exports.
873
886
 
874
- [unreleased]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.16.0...HEAD
887
+ [unreleased]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.16.1...HEAD
888
+ [0.16.1]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.16.0...gitkraken:releases/core/v0.16.1
875
889
  [0.16.0]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.15.7...gitkraken:releases/core/v0.16.0
876
890
  [0.15.7]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.15.6...gitkraken:releases/core/v0.15.7
877
891
  [0.15.6]: https://github.com/gitkraken/vscode-gitlens/compare/releases/core/v0.15.5...gitkraken:releases/core/v0.15.6
package/dist/git/cache.js CHANGED
@@ -710,7 +710,7 @@ var Cache = class Cache {
710
710
  if (hasAny("index", "head", "heads", "remotes", "ignores", "config")) this.incrementStatusGeneration(repoPath);
711
711
  const types = /* @__PURE__ */ new Set();
712
712
  if (hasAny("head")) types.add("branch");
713
- if (hasAny("index", "heads", "pausedOp")) {
713
+ if (hasAny("index", "head", "heads", "pausedOp")) {
714
714
  types.add("blame");
715
715
  types.add("diff");
716
716
  types.add("fileLog");
@@ -721,7 +721,7 @@ var Cache = class Cache {
721
721
  types.add("branches");
722
722
  types.add("worktrees");
723
723
  }
724
- if (hasAny("heads")) {
724
+ if (hasAny("head", "heads")) {
725
725
  types.add("branches");
726
726
  types.add("contributors");
727
727
  types.add("worktrees");