@gitkraken/core-gitlens 0.2.0 → 0.3.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 (448) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/dist/git/cache.d.ts +38 -8
  3. package/dist/git/cache.d.ts.map +1 -1
  4. package/dist/git/cache.js +120 -55
  5. package/dist/git/cache.js.map +1 -1
  6. package/dist/git/context.d.ts +19 -0
  7. package/dist/git/context.d.ts.map +1 -1
  8. package/dist/git/context.js.map +1 -1
  9. package/dist/git/features.d.ts +1 -1
  10. package/dist/git/features.d.ts.map +1 -1
  11. package/dist/git/features.js +1 -0
  12. package/dist/git/features.js.map +1 -1
  13. package/dist/git/models/commit.d.ts.map +1 -1
  14. package/dist/git/models/commit.js.map +1 -1
  15. package/dist/git/models/graph.d.ts +96 -0
  16. package/dist/git/models/graph.d.ts.map +1 -1
  17. package/dist/git/models/graph.js +24 -1
  18. package/dist/git/models/graph.js.map +1 -1
  19. package/dist/git/models/reference.d.ts +31 -0
  20. package/dist/git/models/reference.d.ts.map +1 -1
  21. package/dist/git/models/remote.d.ts.map +1 -1
  22. package/dist/git/models/remote.js.map +1 -1
  23. package/dist/git/models/remoteProvider.d.ts +1 -0
  24. package/dist/git/models/remoteProvider.d.ts.map +1 -1
  25. package/dist/git/models/remoteProvider.js.map +1 -1
  26. package/dist/git/models/repository.d.ts +30 -13
  27. package/dist/git/models/repository.d.ts.map +1 -1
  28. package/dist/git/models/repository.js +89 -87
  29. package/dist/git/models/repository.js.map +1 -1
  30. package/dist/git/models/search.d.ts +2 -2
  31. package/dist/git/models/search.d.ts.map +1 -1
  32. package/dist/git/models/statusFile.d.ts +9 -0
  33. package/dist/git/models/statusFile.d.ts.map +1 -1
  34. package/dist/git/models/statusFile.js +11 -0
  35. package/dist/git/models/statusFile.js.map +1 -1
  36. package/dist/git/models/worktree.d.ts +4 -1
  37. package/dist/git/models/worktree.d.ts.map +1 -1
  38. package/dist/git/models/worktree.js +2 -2
  39. package/dist/git/models/worktree.js.map +1 -1
  40. package/dist/git/parsers/diffParser.d.ts.map +1 -1
  41. package/dist/git/parsers/diffParser.js.map +1 -1
  42. package/dist/git/providers/branches.d.ts +15 -4
  43. package/dist/git/providers/branches.d.ts.map +1 -1
  44. package/dist/git/providers/commits.d.ts +4 -0
  45. package/dist/git/providers/commits.d.ts.map +1 -1
  46. package/dist/git/providers/config.d.ts +5 -4
  47. package/dist/git/providers/config.d.ts.map +1 -1
  48. package/dist/git/providers/operations.d.ts +61 -12
  49. package/dist/git/providers/operations.d.ts.map +1 -1
  50. package/dist/git/providers/pausedOperations.d.ts +3 -1
  51. package/dist/git/providers/pausedOperations.d.ts.map +1 -1
  52. package/dist/git/providers/refs.d.ts +23 -2
  53. package/dist/git/providers/refs.d.ts.map +1 -1
  54. package/dist/git/providers/staging.d.ts +16 -0
  55. package/dist/git/providers/staging.d.ts.map +1 -1
  56. package/dist/git/providers/status.d.ts +4 -1
  57. package/dist/git/providers/status.d.ts.map +1 -1
  58. package/dist/git/remotes/azure-devops.d.ts.map +1 -1
  59. package/dist/git/remotes/azure-devops.js.map +1 -1
  60. package/dist/git/remotes/custom.d.ts +2 -0
  61. package/dist/git/remotes/custom.d.ts.map +1 -1
  62. package/dist/git/remotes/custom.js +20 -0
  63. package/dist/git/remotes/custom.js.map +1 -1
  64. package/dist/git/{exec.types.d.ts → run.types.d.ts} +22 -3
  65. package/dist/git/run.types.d.ts.map +1 -0
  66. package/dist/git/run.types.js +2 -0
  67. package/dist/git/run.types.js.map +1 -0
  68. package/dist/git/service.d.ts.map +1 -1
  69. package/dist/git/service.js.map +1 -1
  70. package/dist/git/utils/autolink.utils.d.ts.map +1 -1
  71. package/dist/git/utils/autolink.utils.js.map +1 -1
  72. package/dist/git/utils/blame.utils.d.ts.map +1 -1
  73. package/dist/git/utils/blame.utils.js.map +1 -1
  74. package/dist/git/utils/conflictResolution.utils.d.ts +6 -0
  75. package/dist/git/utils/conflictResolution.utils.d.ts.map +1 -0
  76. package/dist/git/utils/conflictResolution.utils.js +25 -0
  77. package/dist/git/utils/conflictResolution.utils.js.map +1 -0
  78. package/dist/git/utils/contributor.utils.d.ts +3 -0
  79. package/dist/git/utils/contributor.utils.d.ts.map +1 -1
  80. package/dist/git/utils/contributor.utils.js +22 -0
  81. package/dist/git/utils/contributor.utils.js.map +1 -1
  82. package/dist/git/utils/fileStatus.utils.d.ts +2 -1
  83. package/dist/git/utils/fileStatus.utils.d.ts.map +1 -1
  84. package/dist/git/utils/fileStatus.utils.js +4 -0
  85. package/dist/git/utils/fileStatus.utils.js.map +1 -1
  86. package/dist/git/utils/reachability.utils.d.ts +37 -0
  87. package/dist/git/utils/reachability.utils.d.ts.map +1 -0
  88. package/dist/git/utils/reachability.utils.js +96 -0
  89. package/dist/git/utils/reachability.utils.js.map +1 -0
  90. package/dist/git/utils/search.utils.d.ts.map +1 -1
  91. package/dist/git/utils/search.utils.js +3 -0
  92. package/dist/git/utils/search.utils.js.map +1 -1
  93. package/dist/git/utils/sorting.d.ts +8 -0
  94. package/dist/git/utils/sorting.d.ts.map +1 -1
  95. package/dist/git/utils/sorting.js +15 -0
  96. package/dist/git/utils/sorting.js.map +1 -1
  97. package/dist/git/utils/status.utils.d.ts.map +1 -1
  98. package/dist/git/utils/status.utils.js.map +1 -1
  99. package/dist/git/watching/classifyChange.d.ts.map +1 -1
  100. package/dist/git/watching/classifyChange.js +8 -0
  101. package/dist/git/watching/classifyChange.js.map +1 -1
  102. package/dist/git/watching/gitIgnoreFilter.js +1 -1
  103. package/dist/git/watching/gitIgnoreFilter.js.map +1 -1
  104. package/dist/git/watching/initWatcher.d.ts.map +1 -1
  105. package/dist/git/watching/initWatcher.js.map +1 -1
  106. package/dist/git/watching/watchGroup.d.ts.map +1 -1
  107. package/dist/git/watching/watchGroup.js.map +1 -1
  108. package/dist/git/watching/watchService.d.ts +4 -2
  109. package/dist/git/watching/watchService.d.ts.map +1 -1
  110. package/dist/git/watching/watchService.js +31 -6
  111. package/dist/git/watching/watchService.js.map +1 -1
  112. package/dist/git/watching/watchSession.d.ts +14 -12
  113. package/dist/git/watching/watchSession.d.ts.map +1 -1
  114. package/dist/git/watching/watchSession.js +56 -55
  115. package/dist/git/watching/watchSession.js.map +1 -1
  116. package/dist/git-cli/exec/exec.types.d.ts +1 -1
  117. package/dist/git-cli/exec/exec.types.d.ts.map +1 -1
  118. package/dist/git-cli/exec/git.d.ts +3 -3
  119. package/dist/git-cli/exec/git.d.ts.map +1 -1
  120. package/dist/git-cli/exec/git.js.map +1 -1
  121. package/dist/git-cli/exec/gitQueue.d.ts +10 -2
  122. package/dist/git-cli/exec/gitQueue.d.ts.map +1 -1
  123. package/dist/git-cli/exec/gitQueue.js +39 -12
  124. package/dist/git-cli/exec/gitQueue.js.map +1 -1
  125. package/dist/git-cli/parsers/blameParser.d.ts.map +1 -1
  126. package/dist/git-cli/parsers/blameParser.js.map +1 -1
  127. package/dist/git-cli/parsers/logParser.js.map +1 -1
  128. package/dist/git-cli/parsers/refParser.d.ts +3 -30
  129. package/dist/git-cli/parsers/refParser.d.ts.map +1 -1
  130. package/dist/git-cli/parsers/refParser.js +30 -30
  131. package/dist/git-cli/parsers/refParser.js.map +1 -1
  132. package/dist/git-cli/providers/blame.d.ts.map +1 -1
  133. package/dist/git-cli/providers/blame.js.map +1 -1
  134. package/dist/git-cli/providers/branches.d.ts +15 -5
  135. package/dist/git-cli/providers/branches.d.ts.map +1 -1
  136. package/dist/git-cli/providers/branches.js +99 -68
  137. package/dist/git-cli/providers/branches.js.map +1 -1
  138. package/dist/git-cli/providers/commits.d.ts +1 -0
  139. package/dist/git-cli/providers/commits.d.ts.map +1 -1
  140. package/dist/git-cli/providers/commits.js +86 -30
  141. package/dist/git-cli/providers/commits.js.map +1 -1
  142. package/dist/git-cli/providers/config.d.ts +19 -6
  143. package/dist/git-cli/providers/config.d.ts.map +1 -1
  144. package/dist/git-cli/providers/config.js +86 -38
  145. package/dist/git-cli/providers/config.js.map +1 -1
  146. package/dist/git-cli/providers/diff.d.ts.map +1 -1
  147. package/dist/git-cli/providers/diff.js +5 -3
  148. package/dist/git-cli/providers/diff.js.map +1 -1
  149. package/dist/git-cli/providers/graph.d.ts.map +1 -1
  150. package/dist/git-cli/providers/graph.js +139 -16
  151. package/dist/git-cli/providers/graph.js.map +1 -1
  152. package/dist/git-cli/providers/operations.d.ts +17 -14
  153. package/dist/git-cli/providers/operations.d.ts.map +1 -1
  154. package/dist/git-cli/providers/operations.js +135 -63
  155. package/dist/git-cli/providers/operations.js.map +1 -1
  156. package/dist/git-cli/providers/patch.d.ts.map +1 -1
  157. package/dist/git-cli/providers/patch.js.map +1 -1
  158. package/dist/git-cli/providers/pausedOperations.d.ts +3 -1
  159. package/dist/git-cli/providers/pausedOperations.d.ts.map +1 -1
  160. package/dist/git-cli/providers/pausedOperations.js +7 -1
  161. package/dist/git-cli/providers/pausedOperations.js.map +1 -1
  162. package/dist/git-cli/providers/refs.d.ts +19 -2
  163. package/dist/git-cli/providers/refs.d.ts.map +1 -1
  164. package/dist/git-cli/providers/refs.js +286 -2
  165. package/dist/git-cli/providers/refs.js.map +1 -1
  166. package/dist/git-cli/providers/revision.js.map +1 -1
  167. package/dist/git-cli/providers/staging.d.ts +6 -0
  168. package/dist/git-cli/providers/staging.d.ts.map +1 -1
  169. package/dist/git-cli/providers/staging.js +32 -0
  170. package/dist/git-cli/providers/staging.js.map +1 -1
  171. package/dist/git-cli/providers/stash.d.ts.map +1 -1
  172. package/dist/git-cli/providers/stash.js +20 -2
  173. package/dist/git-cli/providers/stash.js.map +1 -1
  174. package/dist/git-cli/providers/status.d.ts +4 -1
  175. package/dist/git-cli/providers/status.d.ts.map +1 -1
  176. package/dist/git-cli/providers/status.js +8 -4
  177. package/dist/git-cli/providers/status.js.map +1 -1
  178. package/dist/git-cli/providers/tags.d.ts.map +1 -1
  179. package/dist/git-cli/providers/tags.js +10 -6
  180. package/dist/git-cli/providers/tags.js.map +1 -1
  181. package/dist/ipc/discovery.d.ts +49 -0
  182. package/dist/ipc/discovery.d.ts.map +1 -0
  183. package/dist/ipc/discovery.js +147 -0
  184. package/dist/ipc/discovery.js.map +1 -0
  185. package/dist/ipc/ipcServer.d.ts +20 -0
  186. package/dist/ipc/ipcServer.d.ts.map +1 -0
  187. package/dist/ipc/ipcServer.js +162 -0
  188. package/dist/ipc/ipcServer.js.map +1 -0
  189. package/dist/plus/agents/providers/claudeCodeProvider.d.ts +167 -0
  190. package/dist/plus/agents/providers/claudeCodeProvider.d.ts.map +1 -0
  191. package/dist/plus/agents/providers/claudeCodeProvider.js +1786 -0
  192. package/dist/plus/agents/providers/claudeCodeProvider.js.map +1 -0
  193. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts +36 -0
  194. package/dist/plus/agents/providers/claudeCodeTranscript.d.ts.map +1 -0
  195. package/dist/plus/agents/providers/claudeCodeTranscript.js +171 -0
  196. package/dist/plus/agents/providers/claudeCodeTranscript.js.map +1 -0
  197. package/dist/plus/agents/sanitizePrompt.d.ts +15 -0
  198. package/dist/plus/agents/sanitizePrompt.d.ts.map +1 -0
  199. package/dist/plus/agents/sanitizePrompt.js +103 -0
  200. package/dist/plus/agents/sanitizePrompt.js.map +1 -0
  201. package/dist/plus/agents/stateMachine.d.ts +32 -0
  202. package/dist/plus/agents/stateMachine.d.ts.map +1 -0
  203. package/dist/plus/agents/stateMachine.js +180 -0
  204. package/dist/plus/agents/stateMachine.js.map +1 -0
  205. package/dist/plus/agents/types.d.ts +254 -0
  206. package/dist/plus/agents/types.d.ts.map +1 -0
  207. package/dist/plus/agents/types.js +49 -0
  208. package/dist/plus/agents/types.js.map +1 -0
  209. package/dist/plus/ai/errors.d.ts +4 -1
  210. package/dist/plus/ai/errors.d.ts.map +1 -1
  211. package/dist/plus/ai/errors.js +38 -0
  212. package/dist/plus/ai/errors.js.map +1 -1
  213. package/dist/plus/ai/models/model.d.ts +1 -1
  214. package/dist/plus/ai/models/model.d.ts.map +1 -1
  215. package/dist/plus/ai/models/model.js.map +1 -1
  216. package/dist/plus/ai/models/promptTemplates.d.ts +11 -2
  217. package/dist/plus/ai/models/promptTemplates.d.ts.map +1 -1
  218. package/dist/plus/ai/models/provider.d.ts +3 -0
  219. package/dist/plus/ai/models/provider.d.ts.map +1 -1
  220. package/dist/plus/ai/prompts.d.ts +1 -0
  221. package/dist/plus/ai/prompts.d.ts.map +1 -1
  222. package/dist/plus/ai/prompts.js +48 -8
  223. package/dist/plus/ai/prompts.js.map +1 -1
  224. package/dist/plus/ai/providers/gitkrakenProvider.d.ts +1 -1
  225. package/dist/plus/ai/providers/gitkrakenProvider.d.ts.map +1 -1
  226. package/dist/plus/ai/providers/gitkrakenProvider.js +4 -1
  227. package/dist/plus/ai/providers/gitkrakenProvider.js.map +1 -1
  228. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts +4 -3
  229. package/dist/plus/ai/providers/openAICompatibleProviderBase.d.ts.map +1 -1
  230. package/dist/plus/ai/providers/openAICompatibleProviderBase.js +9 -6
  231. package/dist/plus/ai/providers/openAICompatibleProviderBase.js.map +1 -1
  232. package/dist/plus/ai/utils/ai.utils.d.ts.map +1 -1
  233. package/dist/plus/ai/utils/ai.utils.js +2 -0
  234. package/dist/plus/ai/utils/ai.utils.js.map +1 -1
  235. package/dist/plus/ai/utils/results.utils.d.ts.map +1 -1
  236. package/dist/plus/ai/utils/results.utils.js.map +1 -1
  237. package/dist/plus/git-github/api/github.d.ts +12 -1
  238. package/dist/plus/git-github/api/github.d.ts.map +1 -1
  239. package/dist/plus/git-github/api/github.js +245 -51
  240. package/dist/plus/git-github/api/github.js.map +1 -1
  241. package/dist/plus/git-github/api/types.d.ts +8 -0
  242. package/dist/plus/git-github/api/types.d.ts.map +1 -1
  243. package/dist/plus/git-github/models.d.ts +1 -1
  244. package/dist/plus/git-github/models.d.ts.map +1 -1
  245. package/dist/plus/git-github/models.js.map +1 -1
  246. package/dist/plus/git-github/providers/github/blame.d.ts.map +1 -1
  247. package/dist/plus/git-github/providers/github/blame.js.map +1 -1
  248. package/dist/plus/git-github/providers/github/branches.d.ts +5 -1
  249. package/dist/plus/git-github/providers/github/branches.d.ts.map +1 -1
  250. package/dist/plus/git-github/providers/github/branches.js +47 -24
  251. package/dist/plus/git-github/providers/github/branches.js.map +1 -1
  252. package/dist/plus/git-github/providers/github/commits.d.ts.map +1 -1
  253. package/dist/plus/git-github/providers/github/commits.js +144 -92
  254. package/dist/plus/git-github/providers/github/commits.js.map +1 -1
  255. package/dist/plus/git-github/providers/github/diff.d.ts +1 -1
  256. package/dist/plus/git-github/providers/github/diff.d.ts.map +1 -1
  257. package/dist/plus/git-github/providers/github/diff.js +23 -9
  258. package/dist/plus/git-github/providers/github/diff.js.map +1 -1
  259. package/dist/plus/git-github/providers/github/refs.d.ts +9 -1
  260. package/dist/plus/git-github/providers/github/refs.d.ts.map +1 -1
  261. package/dist/plus/git-github/providers/github/refs.js +39 -14
  262. package/dist/plus/git-github/providers/github/refs.js.map +1 -1
  263. package/dist/plus/git-github/providers/github/revision.d.ts.map +1 -1
  264. package/dist/plus/git-github/providers/github/revision.js +1 -2
  265. package/dist/plus/git-github/providers/github/revision.js.map +1 -1
  266. package/dist/plus/git-github/providers/github/status.d.ts +4 -1
  267. package/dist/plus/git-github/providers/github/status.d.ts.map +1 -1
  268. package/dist/plus/git-github/providers/github/status.js +1 -1
  269. package/dist/plus/git-github/providers/github/status.js.map +1 -1
  270. package/dist/plus/git-github/providers/github/tags.d.ts.map +1 -1
  271. package/dist/plus/git-github/providers/github/tags.js +35 -36
  272. package/dist/plus/git-github/providers/github/tags.js.map +1 -1
  273. package/dist/plus/git-github/providers/githubGitProvider.d.ts.map +1 -1
  274. package/dist/plus/git-github/providers/githubGitProvider.js.map +1 -1
  275. package/dist/utils/color.d.ts.map +1 -1
  276. package/dist/utils/color.js.map +1 -1
  277. package/dist/utils/date.d.ts.map +1 -1
  278. package/dist/utils/date.js +6 -0
  279. package/dist/utils/date.js.map +1 -1
  280. package/dist/utils/debounce.js +1 -1
  281. package/dist/utils/decorators/serializable.d.ts.map +1 -1
  282. package/dist/utils/decorators/serializable.js.map +1 -1
  283. package/dist/utils/dedupedAsyncCache.d.ts +37 -0
  284. package/dist/utils/dedupedAsyncCache.d.ts.map +1 -0
  285. package/dist/utils/dedupedAsyncCache.js +68 -0
  286. package/dist/utils/dedupedAsyncCache.js.map +1 -0
  287. package/dist/utils/diff.d.ts +2 -0
  288. package/dist/utils/diff.d.ts.map +1 -0
  289. package/dist/utils/diff.js +53 -0
  290. package/dist/utils/diff.js.map +1 -0
  291. package/dist/utils/disposable.d.ts.map +1 -1
  292. package/dist/utils/disposable.js.map +1 -1
  293. package/dist/utils/env/node/exec.d.ts.map +1 -1
  294. package/dist/utils/env/node/exec.js.map +1 -1
  295. package/dist/utils/error.d.ts.map +1 -1
  296. package/dist/utils/error.js.map +1 -1
  297. package/dist/utils/iterable.d.ts +7 -1
  298. package/dist/utils/iterable.d.ts.map +1 -1
  299. package/dist/utils/iterable.js +12 -4
  300. package/dist/utils/iterable.js.map +1 -1
  301. package/dist/utils/logger.d.ts.map +1 -1
  302. package/dist/utils/logger.js.map +1 -1
  303. package/dist/utils/lruMap.d.ts +9 -0
  304. package/dist/utils/lruMap.d.ts.map +1 -1
  305. package/dist/utils/lruMap.js +26 -4
  306. package/dist/utils/lruMap.js.map +1 -1
  307. package/dist/utils/markdown.d.ts.map +1 -1
  308. package/dist/utils/markdown.js.map +1 -1
  309. package/dist/utils/mru.d.ts.map +1 -1
  310. package/dist/utils/mru.js.map +1 -1
  311. package/dist/utils/object.d.ts +22 -1
  312. package/dist/utils/object.d.ts.map +1 -1
  313. package/dist/utils/object.js +56 -3
  314. package/dist/utils/object.js.map +1 -1
  315. package/dist/utils/paging.js +14 -15
  316. package/dist/utils/paging.js.map +1 -1
  317. package/dist/utils/path.d.ts.map +1 -1
  318. package/dist/utils/path.js.map +1 -1
  319. package/dist/utils/promise.d.ts +1 -0
  320. package/dist/utils/promise.d.ts.map +1 -1
  321. package/dist/utils/promise.js +17 -0
  322. package/dist/utils/promise.js.map +1 -1
  323. package/dist/utils/promiseCache.d.ts +10 -0
  324. package/dist/utils/promiseCache.d.ts.map +1 -1
  325. package/dist/utils/promiseCache.js +34 -4
  326. package/dist/utils/promiseCache.js.map +1 -1
  327. package/dist/utils/string.d.ts.map +1 -1
  328. package/dist/utils/string.js +1 -1
  329. package/dist/utils/string.js.map +1 -1
  330. package/dist/utils/uri.d.ts.map +1 -1
  331. package/dist/utils/uri.js.map +1 -1
  332. package/dist/utils/version.d.ts.map +1 -1
  333. package/dist/utils/version.js.map +1 -1
  334. package/package.json +13 -1
  335. package/src/git/cache.ts +192 -90
  336. package/src/git/context.ts +21 -0
  337. package/src/git/features.ts +2 -0
  338. package/src/git/models/commit.ts +1 -0
  339. package/src/git/models/graph.ts +97 -0
  340. package/src/git/models/reference.ts +33 -0
  341. package/src/git/models/remote.ts +1 -0
  342. package/src/git/models/remoteProvider.ts +1 -0
  343. package/src/git/models/repository.ts +105 -96
  344. package/src/git/models/search.ts +2 -2
  345. package/src/git/models/statusFile.ts +12 -0
  346. package/src/git/models/worktree.ts +10 -2
  347. package/src/git/parsers/diffParser.ts +2 -0
  348. package/src/git/providers/branches.ts +22 -4
  349. package/src/git/providers/commits.ts +4 -0
  350. package/src/git/providers/config.ts +3 -5
  351. package/src/git/providers/operations.ts +65 -1
  352. package/src/git/providers/pausedOperations.ts +1 -0
  353. package/src/git/providers/refs.ts +32 -3
  354. package/src/git/providers/staging.ts +12 -0
  355. package/src/git/providers/status.ts +6 -1
  356. package/src/git/remotes/azure-devops.ts +2 -0
  357. package/src/git/remotes/custom.ts +23 -0
  358. package/src/git/{exec.types.ts → run.types.ts} +22 -2
  359. package/src/git/service.ts +1 -0
  360. package/src/git/utils/autolink.utils.ts +1 -0
  361. package/src/git/utils/blame.utils.ts +2 -0
  362. package/src/git/utils/conflictResolution.utils.ts +31 -0
  363. package/src/git/utils/contributor.utils.ts +24 -0
  364. package/src/git/utils/fileStatus.utils.ts +7 -1
  365. package/src/git/utils/reachability.utils.ts +109 -0
  366. package/src/git/utils/search.utils.ts +2 -0
  367. package/src/git/utils/sorting.ts +17 -0
  368. package/src/git/utils/status.utils.ts +1 -0
  369. package/src/git/watching/classifyChange.ts +9 -0
  370. package/src/git/watching/gitIgnoreFilter.ts +2 -2
  371. package/src/git/watching/initWatcher.ts +2 -0
  372. package/src/git/watching/watchGroup.ts +3 -0
  373. package/src/git/watching/watchService.ts +45 -7
  374. package/src/git/watching/watchSession.ts +71 -55
  375. package/src/git-cli/exec/exec.types.ts +2 -2
  376. package/src/git-cli/exec/git.ts +6 -5
  377. package/src/git-cli/exec/gitQueue.ts +41 -12
  378. package/src/git-cli/parsers/blameParser.ts +1 -0
  379. package/src/git-cli/parsers/logParser.ts +1 -0
  380. package/src/git-cli/parsers/refParser.ts +33 -34
  381. package/src/git-cli/providers/blame.ts +1 -0
  382. package/src/git-cli/providers/branches.ts +165 -93
  383. package/src/git-cli/providers/commits.ts +107 -37
  384. package/src/git-cli/providers/config.ts +101 -48
  385. package/src/git-cli/providers/diff.ts +10 -3
  386. package/src/git-cli/providers/graph.ts +156 -16
  387. package/src/git-cli/providers/operations.ts +208 -83
  388. package/src/git-cli/providers/patch.ts +1 -0
  389. package/src/git-cli/providers/pausedOperations.ts +8 -0
  390. package/src/git-cli/providers/refs.ts +247 -3
  391. package/src/git-cli/providers/revision.ts +2 -2
  392. package/src/git-cli/providers/staging.ts +33 -0
  393. package/src/git-cli/providers/stash.ts +20 -2
  394. package/src/git-cli/providers/status.ts +24 -5
  395. package/src/git-cli/providers/tags.ts +15 -16
  396. package/src/ipc/discovery.ts +186 -0
  397. package/src/ipc/ipcServer.ts +171 -0
  398. package/src/plus/agents/providers/claudeCodeProvider.ts +2122 -0
  399. package/src/plus/agents/providers/claudeCodeTranscript.ts +214 -0
  400. package/src/plus/agents/sanitizePrompt.ts +109 -0
  401. package/src/plus/agents/stateMachine.ts +197 -0
  402. package/src/plus/agents/types.ts +325 -0
  403. package/src/plus/ai/errors.ts +40 -0
  404. package/src/plus/ai/models/model.ts +1 -0
  405. package/src/plus/ai/models/promptTemplates.ts +13 -0
  406. package/src/plus/ai/models/provider.ts +7 -1
  407. package/src/plus/ai/prompts.ts +49 -8
  408. package/src/plus/ai/providers/gitkrakenProvider.ts +4 -0
  409. package/src/plus/ai/providers/openAICompatibleProviderBase.ts +21 -4
  410. package/src/plus/ai/utils/ai.utils.ts +2 -0
  411. package/src/plus/ai/utils/results.utils.ts +2 -0
  412. package/src/plus/git-github/api/github.ts +315 -57
  413. package/src/plus/git-github/api/types.ts +15 -0
  414. package/src/plus/git-github/models.ts +1 -1
  415. package/src/plus/git-github/providers/github/blame.ts +2 -0
  416. package/src/plus/git-github/providers/github/branches.ts +61 -31
  417. package/src/plus/git-github/providers/github/commits.ts +231 -160
  418. package/src/plus/git-github/providers/github/diff.ts +27 -19
  419. package/src/plus/git-github/providers/github/refs.ts +58 -23
  420. package/src/plus/git-github/providers/github/revision.ts +1 -2
  421. package/src/plus/git-github/providers/github/status.ts +6 -1
  422. package/src/plus/git-github/providers/github/tags.ts +61 -62
  423. package/src/plus/git-github/providers/githubGitProvider.ts +1 -0
  424. package/src/utils/color.ts +2 -0
  425. package/src/utils/date.ts +5 -0
  426. package/src/utils/debounce.ts +1 -1
  427. package/src/utils/decorators/serializable.ts +1 -0
  428. package/src/utils/dedupedAsyncCache.ts +74 -0
  429. package/src/utils/diff.ts +61 -0
  430. package/src/utils/disposable.ts +2 -0
  431. package/src/utils/env/node/exec.ts +2 -0
  432. package/src/utils/error.ts +1 -0
  433. package/src/utils/iterable.ts +17 -3
  434. package/src/utils/logger.ts +1 -0
  435. package/src/utils/lruMap.ts +29 -4
  436. package/src/utils/markdown.ts +1 -0
  437. package/src/utils/mru.ts +2 -0
  438. package/src/utils/object.ts +55 -4
  439. package/src/utils/paging.ts +14 -14
  440. package/src/utils/path.ts +1 -0
  441. package/src/utils/promise.ts +22 -0
  442. package/src/utils/promiseCache.ts +48 -16
  443. package/src/utils/string.ts +3 -1
  444. package/src/utils/uri.ts +1 -0
  445. package/src/utils/version.ts +1 -0
  446. package/dist/git/exec.types.d.ts.map +0 -1
  447. package/dist/git/exec.types.js +0 -2
  448. package/dist/git/exec.types.js.map +0 -1
@@ -1,10 +1,11 @@
1
- import type { Cache } from '../../git/cache.js';
1
+ import type { Cache, GkConfigInvalidationTarget } from '../../git/cache.js';
2
2
  import type { GitServiceContext } from '../../git/context.js';
3
3
  import type { BranchDisposition } from '../../git/models/branch.js';
4
4
  import { GitBranch } from '../../git/models/branch.js';
5
5
  import type { ConflictDetectionResult } from '../../git/models/mergeConflicts.js';
6
6
  import type { GitBranchReference } from '../../git/models/reference.js';
7
7
  import type { BranchContributionsOverview, GitBranchesSubProvider, GitBranchMergedStatus } from '../../git/providers/branches.js';
8
+ import type { GitCommandPriority } from '../../git/run.types.js';
8
9
  import type { BranchSortOptions } from '../../git/utils/sorting.js';
9
10
  import type { PagedResult, PagingOptions } from '../../utils/paging.js';
10
11
  import type { CliGitProviderInternal } from '../cliGitProvider.js';
@@ -31,6 +32,7 @@ export declare class BranchesGitSubProvider implements GitBranchesSubProvider {
31
32
  };
32
33
  };
33
34
  } | undefined>;
35
+ priority?: GitCommandPriority;
34
36
  }, cancellation?: AbortSignal): Promise<BranchContributionsOverview | undefined>;
35
37
  getBranchesWithCommits(repoPath: string, commits: string[], branch?: string, options?: {
36
38
  all?: boolean;
@@ -44,7 +46,9 @@ export declare class BranchesGitSubProvider implements GitBranchesSubProvider {
44
46
  private branchesContainingCore;
45
47
  getCurrentBranchReference(repoPath: string, cancellation?: AbortSignal): Promise<GitBranchReference | undefined>;
46
48
  private getCurrentBranchReferenceCore;
47
- getDefaultBranchName(repoPath: string | undefined, remote?: string, cancellation?: AbortSignal): Promise<string | undefined>;
49
+ getDefaultBranchName(repoPath: string | undefined, remote?: string, options?: {
50
+ priority?: GitCommandPriority;
51
+ }, cancellation?: AbortSignal): Promise<string | undefined>;
48
52
  createBranch(repoPath: string, name: string, ref: string, options?: {
49
53
  noTracking?: boolean;
50
54
  }): Promise<void>;
@@ -62,7 +66,9 @@ export declare class BranchesGitSubProvider implements GitBranchesSubProvider {
62
66
  /** Detects potential conflict when merge a branch into a target branch (git merge) */
63
67
  getPotentialMergeConflicts(repoPath: string, branch: string, targetBranch: string, cancellation?: AbortSignal): Promise<ConflictDetectionResult>;
64
68
  private checkForPotentialConflicts;
65
- getBaseBranchName(repoPath: string, ref: string, cancellation?: AbortSignal): Promise<string | undefined>;
69
+ getBaseBranchName(repoPath: string, ref: string, options?: {
70
+ priority?: GitCommandPriority;
71
+ }, cancellation?: AbortSignal): Promise<string | undefined>;
66
72
  private getBaseBranchFromReflog;
67
73
  getStoredMergeTargetBranchName(repoPath: string, ref: string): Promise<string | undefined>;
68
74
  getStoredDetectedMergeTargetBranchName(repoPath: string, ref: string): Promise<string | undefined>;
@@ -75,8 +81,12 @@ export declare class BranchesGitSubProvider implements GitBranchesSubProvider {
75
81
  onCurrentBranchAgentActivity(repoPath: string): Promise<void>;
76
82
  renameBranch(repoPath: string, oldName: string, newName: string): Promise<void>;
77
83
  setUpstreamBranch(repoPath: string, name: string, upstream: string | undefined): Promise<void>;
78
- storeBaseBranchName(repoPath: string, ref: string, base: string): Promise<void>;
79
- storeMergeTargetBranchName(repoPath: string, ref: string, target: string): Promise<void>;
84
+ storeBaseBranchName(repoPath: string, ref: string, base: string, options?: {
85
+ skipInvalidation?: readonly GkConfigInvalidationTarget[];
86
+ }): Promise<void>;
87
+ storeMergeTargetBranchName(repoPath: string, ref: string, target: string, options?: {
88
+ skipInvalidation?: readonly GkConfigInvalidationTarget[];
89
+ }): Promise<void>;
80
90
  storeUserMergeTargetBranchName(repoPath: string, ref: string, target: string | undefined): Promise<void>;
81
91
  /**
82
92
  * Gets all branch metadata (dates and disposition) from git config in a single batch operation.
@@ -1 +1 @@
1
- {"version":3,"file":"branches.d.ts","sourceRoot":"","sources":["../../src/providers/branches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branches.d.ts","sourceRoot":"","sources":["../../src/providers/branches.ts"],"names":[],"mappings":"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"}
@@ -75,7 +75,6 @@ import { getSettledValue } from '../../utils/promise.js';
75
75
  import { maybeStopWatch } from '../../utils/stopwatch.js';
76
76
  import { getGitCommandError, gitConfigsBranch, gitConfigsLog, GitError, GitErrors, GitWarnings } from '../exec/git.js';
77
77
  import { parseMergeTreeConflict } from '../parsers/mergeTreeParser.js';
78
- import { getBranchParser } from '../parsers/refParser.js';
79
78
  /** Minimum time between writes to the config for last accessed/modified dates */
80
79
  const dateMetadataStaleThresholdMs = 5 * 60 * 1000; // 5 minutes
81
80
  export class BranchesGitSubProvider {
@@ -110,7 +109,7 @@ export class BranchesGitSubProvider {
110
109
  return undefined;
111
110
  const [pausedOpStatusResult, committerDateResult, defaultWorktreePathResult, metadataMapResult] = await Promise.allSettled([
112
111
  isDetachedHead(ref.name)
113
- ? this.provider.pausedOps?.getPausedOperationStatus(repoPath, cancellation)
112
+ ? this.provider.pausedOps?.getPausedOperationStatus(repoPath, undefined, cancellation)
114
113
  : undefined,
115
114
  this.git
116
115
  .run({
@@ -147,32 +146,37 @@ export class BranchesGitSubProvider {
147
146
  try {
148
147
  const env_1 = { stack: [], error: void 0, hasError: false };
149
148
  try {
150
- const supported = await this.git.supported('git:for-each-ref');
151
- const parser = getBranchParser(supported);
152
- const [gitResult, defaultWorktreePathResult, metadataMapResult] = await Promise.allSettled([
153
- this.git.run({ cwd: commonPath, cancellation: signal }, 'for-each-ref', ...parser.arguments, 'refs/heads/', 'refs/remotes/'),
149
+ const [recordsResult, supportedResult, defaultWorktreePathResult, metadataMapResult] = await Promise.allSettled([
150
+ this.provider.refs.getRefs(commonPath, signal),
151
+ this.git.supported('git:for-each-ref'),
154
152
  this.provider.config.getDefaultWorktreePath?.(commonPath),
155
153
  this.getBranchMetadataMap(commonPath),
156
154
  ]);
157
- const result = getSettledValue(gitResult);
155
+ const records = getSettledValue(recordsResult) ?? [];
156
+ const supported = getSettledValue(supportedResult) ?? [];
158
157
  const metadataMap = getSettledValue(metadataMapResult) ?? new Map();
159
158
  const defaultWorktreePath = getSettledValue(defaultWorktreePathResult);
159
+ const worktreePathSupported = supported.includes('git:for-each-ref:worktreePath');
160
160
  // If we don't get any data, assume the repo doesn't have any commits yet so check if we have a current branch
161
- if (!result?.stdout) {
161
+ if (!records.length) {
162
162
  const current = await this.getCurrentBranch(commonPath, metadataMap, options?.ordering ?? this.context.config?.commits.ordering ?? undefined, signal);
163
163
  return current != null ? { values: [current] } : emptyPagedResult;
164
164
  }
165
165
  const sw = __addDisposableResource(env_1, maybeStopWatch(scope, { log: { onlyExit: true, level: 'debug' } }), false);
166
166
  const branches = [];
167
- for (const entry of parser.parse(result.stdout)) {
167
+ for (const record of records) {
168
+ const fullName = record.name;
169
+ // Filter to branches and remote-tracking branches; skip tags from the unified records.
170
+ if (!fullName.startsWith('refs/heads/') && !fullName.startsWith('refs/remotes/'))
171
+ continue;
168
172
  // Skip HEAD refs in remote branches
169
- if (isRemoteHEAD(entry.name))
173
+ if (isRemoteHEAD(fullName))
170
174
  continue;
171
- const upstream = parseUpstream(entry.upstream, entry.upstreamTracking);
172
- const metadata = metadataMap.get(parseRefName(entry.name).name);
173
- const worktreePath = entry.worktreePath ? normalizePath(entry.worktreePath) : undefined;
174
- branches.push(new GitBranch(commonPath, entry.name, false, // Don't trust %(HEAD) for current as it's per-worktree -- we will set it later
175
- entry.date ? new Date(entry.date) : undefined, metadata, entry.sha, upstream, supported.includes('git:for-each-ref:worktreePath')
175
+ const upstream = parseUpstream(record.upstream, record.upstreamTracking);
176
+ const metadata = metadataMap.get(parseRefName(fullName).name);
177
+ const worktreePath = record.worktreePath ? normalizePath(record.worktreePath) : undefined;
178
+ branches.push(new GitBranch(commonPath, fullName, false, // Don't trust %(HEAD) for current as it's per-worktree -- we will set it later
179
+ record.committerDate ? new Date(record.committerDate) : undefined, metadata, record.objectname, upstream, worktreePathSupported
176
180
  ? worktreePath
177
181
  ? { path: worktreePath, isDefault: worktreePath === defaultWorktreePath }
178
182
  : false
@@ -182,6 +186,7 @@ export class BranchesGitSubProvider {
182
186
  // Pre-populate current branch cache for worktrees based on worktreePath info
183
187
  // This eliminates the need for rev-parse calls during branch reconstruction
184
188
  for (const branch of branches) {
189
+ // oxlint-disable-next-line typescript/prefer-optional-chain
185
190
  if (branch.worktree && branch.worktree.path) {
186
191
  const { name } = parseRefName(branch.refName);
187
192
  const reference = createReference(name, branch.worktree.path, {
@@ -286,33 +291,12 @@ export class BranchesGitSubProvider {
286
291
  }
287
292
  async getBranchContributionsOverview(repoPath, ref, options, cancellation) {
288
293
  const scope = getScopedLogger();
289
- const getCore = async (_commonPath, _cacheable, signal, storedTarget) => {
290
- let mergeTarget;
291
- // Tier 1: Stored merge target (user-set or previously detected from PR). Caller has
292
- // already read this once for the cache decision; reuse rather than re-fetching.
293
- if (storedTarget) {
294
- const validated = await this.provider.refs.getSymbolicReferenceName(repoPath, storedTarget);
295
- mergeTarget = validated || storedTarget;
296
- }
297
- // Tier 2: PR-based lookup. The branch object is only needed here (for `remoteName`),
298
- // so lazy-load it on the cold path instead of paying for it on every call.
299
- if (mergeTarget == null && options?.associatedPullRequest != null) {
300
- const pr = await options.associatedPullRequest;
301
- if (pr?.refs?.base != null) {
302
- const branch = await this.getBranch(repoPath, ref, signal);
303
- if (branch == null)
304
- return undefined;
305
- mergeTarget = `${branch.remoteName}/${pr.refs.base.branch}`;
306
- // Store for future reuse — turns the next call into a Tier 1 cache-eligible path.
307
- void this.storeMergeTargetBranchName(repoPath, ref, mergeTarget);
308
- }
309
- }
310
- // Tier 3: Base branch, then default branch
311
- mergeTarget ??= await this.getBaseBranchName(repoPath, ref, signal);
312
- mergeTarget ??= await this.getDefaultBranchName(repoPath, undefined, signal);
313
- if (mergeTarget == null)
314
- return undefined;
315
- const mergeBase = await this.provider.refs.getMergeBase(repoPath, ref, mergeTarget, undefined, signal);
294
+ const priority = options?.priority;
295
+ const priorityOpts = priority != null ? { priority: priority } : undefined;
296
+ // Expensive body runs only on cache miss. Closes over `mergeTarget` so the cache key
297
+ // (`${ref}|${mergeTarget}`) fully captures every input that affects the result.
298
+ const fetchBody = async (mergeTarget, signal) => {
299
+ const mergeBase = await this.provider.refs.getMergeBase(repoPath, ref, mergeTarget, priorityOpts, signal);
316
300
  if (mergeBase == null)
317
301
  return undefined;
318
302
  // Fetch the merge-base commit's dates in parallel with contributors so consumers
@@ -367,14 +351,47 @@ export class BranchesGitSubProvider {
367
351
  };
368
352
  };
369
353
  try {
370
- // Pre-check Tier 1: when a stored merge target exists the result is deterministic for
371
- // `ref` (Tier 2's PR resolution is short-circuited), so it's safe to cache. Otherwise
372
- // the result depends on PR resolution which the cache key can't capture bypass.
354
+ // Resolve `mergeTarget` through Tier 1 Tier 2 Tier 3. The pieces of each tier are
355
+ // already individually cached (`getStoredMergeTargetBranchName`, `getBaseBranchName`,
356
+ // `getDefaultBranchName`), so this resolution path is cheap on warm caches. Only the
357
+ // expensive body below (`getMergeBase` + `getContributors` w/ stats + `getCommitDates`)
358
+ // is wrapped by `cache.getBranchOverview`, keyed on the resolved `mergeTarget` so any
359
+ // caller that resolves to the same target shares; differing targets get independent
360
+ // slots, which is the correctness constraint that previously forced the Tier 2/3 paths
361
+ // to bypass the cache entirely.
362
+ let mergeTarget;
363
+ // Tier 1: Stored merge target (user-set or previously detected from PR).
373
364
  const storedTarget = await this.getStoredMergeTargetBranchName(repoPath, ref);
374
- if (storedTarget != null) {
375
- return await this.cache.getBranchOverview(repoPath, ref, (commonPath, cacheable, signal) => getCore(commonPath, cacheable, signal ?? cancellation, storedTarget), { cancellation: cancellation });
365
+ if (storedTarget) {
366
+ const validated = await this.provider.refs.getSymbolicReferenceName(repoPath, storedTarget, priorityOpts, cancellation);
367
+ mergeTarget = validated || storedTarget;
376
368
  }
377
- return await getCore(repoPath, undefined, cancellation, undefined);
369
+ // Tier 2: PR-based lookup. The branch object is only needed here (for `remoteName`),
370
+ // so lazy-load it on the cold path instead of paying for it on every call.
371
+ if (mergeTarget == null && options?.associatedPullRequest != null) {
372
+ const pr = await options.associatedPullRequest;
373
+ if (pr?.refs?.base != null) {
374
+ const branch = await this.getBranch(repoPath, ref, cancellation);
375
+ if (branch == null)
376
+ return undefined;
377
+ mergeTarget = `${branch.remoteName}/${pr.refs.base.branch}`;
378
+ // Store for future reuse — turns the next call into a Tier 1 path. Skip the
379
+ // `branchOverviews` invalidation that the write would otherwise trigger: we're
380
+ // about to populate `${ref}|${mergeTarget}` with this exact target, so evicting
381
+ // it would just force the next caller to redo the body. (gk-merge-target writes
382
+ // do not affect `baseBranchName`, so no need to skip that target.)
383
+ void this.storeMergeTargetBranchName(repoPath, ref, mergeTarget, {
384
+ skipInvalidation: ['branchOverviews'],
385
+ });
386
+ }
387
+ }
388
+ // Tier 3: Base branch, then default branch.
389
+ mergeTarget ??= await this.getBaseBranchName(repoPath, ref, priorityOpts, cancellation);
390
+ mergeTarget ??= await this.getDefaultBranchName(repoPath, undefined, priorityOpts, cancellation);
391
+ if (mergeTarget == null)
392
+ return undefined;
393
+ const resolvedTarget = mergeTarget;
394
+ return await this.cache.getBranchOverview(repoPath, `${ref}|${resolvedTarget}`, (_commonPath, _cacheable, signal) => fetchBody(resolvedTarget, signal ?? cancellation), { cancellation: cancellation });
378
395
  }
379
396
  catch (ex) {
380
397
  scope?.error(ex);
@@ -459,7 +476,7 @@ export class BranchesGitSubProvider {
459
476
  throw ex;
460
477
  }
461
478
  if (data == null) {
462
- const symbolicRef = await this.getDefaultBranchName(repoPath, 'origin', signal);
479
+ const symbolicRef = await this.getDefaultBranchName(repoPath, 'origin', undefined, signal);
463
480
  if (symbolicRef != null) {
464
481
  data = [
465
482
  symbolicRef.startsWith('origin/')
@@ -516,15 +533,17 @@ export class BranchesGitSubProvider {
516
533
  });
517
534
  }, { cancellation: cancellation });
518
535
  }
519
- async getDefaultBranchName(repoPath, remote, cancellation) {
536
+ async getDefaultBranchName(repoPath, remote, options, cancellation) {
520
537
  if (repoPath == null)
521
538
  return undefined;
522
539
  remote ??= 'origin';
540
+ const priority = options?.priority;
541
+ const priorityOpts = priority != null ? { priority: priority } : undefined;
523
542
  return this.cache.getDefaultBranchName(repoPath, remote, async (commonPath) => {
524
543
  let retried = false;
525
544
  while (true) {
526
545
  try {
527
- const result = await this.git.run({ cwd: commonPath, cancellation: cancellation }, 'symbolic-ref', '--short', `refs/remotes/${remote}/HEAD`);
546
+ const result = await this.git.run({ cwd: commonPath, cancellation: cancellation, ...priorityOpts }, 'symbolic-ref', '--short', `refs/remotes/${remote}/HEAD`);
528
547
  return result.stdout.trim() || undefined;
529
548
  }
530
549
  catch (ex) {
@@ -532,10 +551,10 @@ export class BranchesGitSubProvider {
532
551
  try {
533
552
  if (!retried) {
534
553
  retried = true;
535
- await this.git.run({ cwd: commonPath, cancellation: cancellation }, 'remote', 'set-head', '-a', remote);
554
+ await this.git.run({ cwd: commonPath, cancellation: cancellation, ...priorityOpts }, 'remote', 'set-head', '-a', remote);
536
555
  continue;
537
556
  }
538
- const result = await this.git.run({ cwd: commonPath, cancellation: cancellation }, 'ls-remote', '--symref', remote, 'HEAD');
557
+ const result = await this.git.run({ cwd: commonPath, cancellation: cancellation, ...priorityOpts }, 'ls-remote', '--symref', remote, 'HEAD');
539
558
  if (result.stdout) {
540
559
  const match = /ref:\s(\S+)\s+HEAD/m.exec(result.stdout);
541
560
  if (match != null) {
@@ -907,7 +926,9 @@ export class BranchesGitSubProvider {
907
926
  }
908
927
  return { status: 'clean' };
909
928
  }
910
- getBaseBranchName(repoPath, ref, cancellation) {
929
+ getBaseBranchName(repoPath, ref, options, cancellation) {
930
+ const priority = options?.priority;
931
+ const priorityOpts = priority != null ? { priority: priority } : undefined;
911
932
  return this.cache.getBaseBranchName(repoPath, ref, async (commonPath, signal) => {
912
933
  try {
913
934
  // getGkConfig has built-in fallback to regular config for backward compatibility
@@ -919,27 +940,37 @@ export class BranchesGitSubProvider {
919
940
  update = mergeBase != null;
920
941
  }
921
942
  if (mergeBase != null) {
922
- const branch = await this.provider.refs.getSymbolicReferenceName(commonPath, mergeBase);
943
+ const branch = await this.provider.refs.getSymbolicReferenceName(commonPath, mergeBase, priorityOpts);
923
944
  if (branch != null) {
924
945
  if (update) {
925
- void this.storeBaseBranchName(commonPath, ref, branch);
946
+ // Self-write: the value we're storing is exactly what this factory is
947
+ // returning, so any in-flight `branchOverviews` or `baseBranchName` entry
948
+ // being populated against this resolution should NOT be evicted.
949
+ void this.storeBaseBranchName(commonPath, ref, branch, {
950
+ skipInvalidation: ['branchOverviews', 'baseBranchName'],
951
+ });
926
952
  }
927
953
  return branch;
928
954
  }
929
955
  }
930
956
  }
931
957
  catch { }
932
- const branch = await this.getBaseBranchFromReflog(commonPath, ref, { upstream: true }, signal);
958
+ const branch = await this.getBaseBranchFromReflog(commonPath, ref, { upstream: true, priority: priority }, signal);
933
959
  if (branch != null) {
934
- void this.storeBaseBranchName(commonPath, ref, branch);
960
+ // Self-write: see comment on the migration path above.
961
+ void this.storeBaseBranchName(commonPath, ref, branch, {
962
+ skipInvalidation: ['branchOverviews', 'baseBranchName'],
963
+ });
935
964
  return branch;
936
965
  }
937
966
  return undefined;
938
967
  }, cancellation);
939
968
  }
940
969
  async getBaseBranchFromReflog(repoPath, ref, options, cancellation) {
970
+ const priority = options?.priority;
971
+ const priorityOpts = priority != null ? { priority: priority } : undefined;
941
972
  try {
942
- let result = await this.git.run({ cwd: repoPath, cancellation: cancellation }, 'reflog', ref, '--grep-reflog=branch: Created from *.');
973
+ let result = await this.git.run({ cwd: repoPath, cancellation: cancellation, ...priorityOpts }, 'reflog', ref, '--grep-reflog=branch: Created from *.');
943
974
  let entries = result.stdout.split('\n').filter(entry => Boolean(entry));
944
975
  if (entries.length !== 1)
945
976
  return undefined;
@@ -949,17 +980,17 @@ export class BranchesGitSubProvider {
949
980
  let name = match[1];
950
981
  if (name !== 'HEAD') {
951
982
  if (options?.upstream) {
952
- const upstream = await this.provider.refs.getSymbolicReferenceName(repoPath, `${name}@{u}`);
983
+ const upstream = await this.provider.refs.getSymbolicReferenceName(repoPath, `${name}@{u}`, priorityOpts);
953
984
  if (upstream)
954
985
  return upstream;
955
986
  }
956
- name = await this.provider.refs.getSymbolicReferenceName(repoPath, name);
987
+ name = await this.provider.refs.getSymbolicReferenceName(repoPath, name, priorityOpts);
957
988
  if (name)
958
989
  return name;
959
990
  }
960
991
  }
961
992
  // Check if branch was created from HEAD
962
- result = await this.git.run({ cwd: repoPath, cancellation: cancellation }, 'reflog', 'HEAD', `--grep-reflog=checkout: moving from .* to ${ref.replace('refs/heads/', '')}`);
993
+ result = await this.git.run({ cwd: repoPath, cancellation: cancellation, ...priorityOpts }, 'reflog', 'HEAD', `--grep-reflog=checkout: moving from .* to ${ref.replace('refs/heads/', '')}`);
963
994
  entries = result.stdout.split('\n').filter(entry => Boolean(entry));
964
995
  if (!entries.length)
965
996
  return undefined;
@@ -967,11 +998,11 @@ export class BranchesGitSubProvider {
967
998
  if (match?.length === 2) {
968
999
  let name = match[1];
969
1000
  if (options?.upstream) {
970
- const upstream = await this.provider.refs.getSymbolicReferenceName(repoPath, `${name}@{u}`);
1001
+ const upstream = await this.provider.refs.getSymbolicReferenceName(repoPath, `${name}@{u}`, priorityOpts);
971
1002
  if (upstream)
972
1003
  return upstream;
973
1004
  }
974
- name = await this.provider.refs.getSymbolicReferenceName(repoPath, name);
1005
+ name = await this.provider.refs.getSymbolicReferenceName(repoPath, name, priorityOpts);
975
1006
  if (name)
976
1007
  return name;
977
1008
  }
@@ -1051,11 +1082,11 @@ export class BranchesGitSubProvider {
1051
1082
  }, ex));
1052
1083
  }
1053
1084
  }
1054
- async storeBaseBranchName(repoPath, ref, base) {
1055
- await this.provider.config.setGkConfig(repoPath, `branch.${ref}.gk-merge-base`, base);
1085
+ async storeBaseBranchName(repoPath, ref, base, options) {
1086
+ await this.provider.config.setGkConfig(repoPath, `branch.${ref}.gk-merge-base`, base, options);
1056
1087
  }
1057
- async storeMergeTargetBranchName(repoPath, ref, target) {
1058
- await this.provider.config.setGkConfig(repoPath, `branch.${ref}.gk-merge-target`, target);
1088
+ async storeMergeTargetBranchName(repoPath, ref, target, options) {
1089
+ await this.provider.config.setGkConfig(repoPath, `branch.${ref}.gk-merge-target`, target, options);
1059
1090
  }
1060
1091
  async storeUserMergeTargetBranchName(repoPath, ref, target) {
1061
1092
  await this.provider.config.setGkConfig(repoPath, `branch.${ref}.gk-merge-target-user`, target);