@cerbur/clutch-dsh-worktree 0.1.17 → 0.1.19

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 (288) hide show
  1. package/README.md +207 -42
  2. package/README.zh.md +174 -38
  3. package/assets/screenshots/screenshots-agent-steer.jpg +0 -0
  4. package/assets/screenshots/screenshots-baseline-sync.png +0 -0
  5. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  6. package/lib/client/WorktreeSurface.js +55 -12
  7. package/lib/client/WorktreeSurface.js.map +1 -1
  8. package/lib/client/branch/GitBranchSelector.d.ts +23 -0
  9. package/lib/client/branch/GitBranchSelector.d.ts.map +1 -0
  10. package/lib/client/branch/GitBranchSelector.js +142 -0
  11. package/lib/client/branch/GitBranchSelector.js.map +1 -0
  12. package/lib/client/context/worktree-context-store.d.ts +3 -1
  13. package/lib/client/context/worktree-context-store.d.ts.map +1 -1
  14. package/lib/client/context/worktree-context-store.js +4 -2
  15. package/lib/client/context/worktree-context-store.js.map +1 -1
  16. package/lib/client/context/worktree-context.d.ts +3 -2
  17. package/lib/client/context/worktree-context.d.ts.map +1 -1
  18. package/lib/client/context/worktree-context.js +5 -3
  19. package/lib/client/context/worktree-context.js.map +1 -1
  20. package/lib/client/dashboard/WorktreeDashboard.d.ts +11 -3
  21. package/lib/client/dashboard/WorktreeDashboard.d.ts.map +1 -1
  22. package/lib/client/dashboard/WorktreeDashboard.js +181 -75
  23. package/lib/client/dashboard/WorktreeDashboard.js.map +1 -1
  24. package/lib/client/dashboard/dashboard-selection.d.ts +8 -3
  25. package/lib/client/dashboard/dashboard-selection.d.ts.map +1 -1
  26. package/lib/client/dashboard/dashboard-selection.js +29 -4
  27. package/lib/client/dashboard/dashboard-selection.js.map +1 -1
  28. package/lib/client/dashboard/git/GitChangedFiles.d.ts +2 -1
  29. package/lib/client/dashboard/git/GitChangedFiles.d.ts.map +1 -1
  30. package/lib/client/dashboard/git/GitChangedFiles.js +8 -6
  31. package/lib/client/dashboard/git/GitChangedFiles.js.map +1 -1
  32. package/lib/client/dashboard/git/GitCommitList.d.ts +6 -1
  33. package/lib/client/dashboard/git/GitCommitList.d.ts.map +1 -1
  34. package/lib/client/dashboard/git/GitCommitList.js +34 -29
  35. package/lib/client/dashboard/git/GitCommitList.js.map +1 -1
  36. package/lib/client/dashboard/git/GitCommitStats.d.ts +8 -0
  37. package/lib/client/dashboard/git/GitCommitStats.d.ts.map +1 -0
  38. package/lib/client/dashboard/git/GitCommitStats.js +7 -0
  39. package/lib/client/dashboard/git/GitCommitStats.js.map +1 -0
  40. package/lib/client/dashboard/git/WorktreeGitOverview.d.ts.map +1 -1
  41. package/lib/client/dashboard/git/WorktreeGitOverview.js +2 -1
  42. package/lib/client/dashboard/git/WorktreeGitOverview.js.map +1 -1
  43. package/lib/client/dashboard/git/WorktreeGitPanel.d.ts +1 -1
  44. package/lib/client/dashboard/git/WorktreeGitPanel.d.ts.map +1 -1
  45. package/lib/client/dashboard/git/WorktreeGitPanel.js +28 -9
  46. package/lib/client/dashboard/git/WorktreeGitPanel.js.map +1 -1
  47. package/lib/client/dashboard/git/file-address.d.ts +5 -2
  48. package/lib/client/dashboard/git/file-address.d.ts.map +1 -1
  49. package/lib/client/dashboard/git/file-address.js +50 -7
  50. package/lib/client/dashboard/git/file-address.js.map +1 -1
  51. package/lib/client/dashboard/git/git-facts.js +1 -1
  52. package/lib/client/dashboard/git/git-facts.js.map +1 -1
  53. package/lib/client/dashboard/git/useWorktreeGitState.d.ts +7 -2
  54. package/lib/client/dashboard/git/useWorktreeGitState.d.ts.map +1 -1
  55. package/lib/client/dashboard/git/useWorktreeGitState.js +84 -21
  56. package/lib/client/dashboard/git/useWorktreeGitState.js.map +1 -1
  57. package/lib/client/dsh-icons.d.ts +2 -0
  58. package/lib/client/dsh-icons.d.ts.map +1 -1
  59. package/lib/client/dsh-icons.js +2 -0
  60. package/lib/client/dsh-icons.js.map +1 -1
  61. package/lib/client/dsh-slot-contract.d.ts +8 -1
  62. package/lib/client/dsh-slot-contract.d.ts.map +1 -1
  63. package/lib/client/entry.d.ts.map +1 -1
  64. package/lib/client/entry.js +22 -4
  65. package/lib/client/entry.js.map +1 -1
  66. package/lib/client/locales.d.ts +86 -2
  67. package/lib/client/locales.d.ts.map +1 -1
  68. package/lib/client/locales.js +100 -16
  69. package/lib/client/locales.js.map +1 -1
  70. package/lib/client/permission/worktree-permission.d.ts.map +1 -1
  71. package/lib/client/permission/worktree-permission.js +14 -6
  72. package/lib/client/permission/worktree-permission.js.map +1 -1
  73. package/lib/client/select/SearchableSingleSelect.d.ts +44 -0
  74. package/lib/client/select/SearchableSingleSelect.d.ts.map +1 -0
  75. package/lib/client/select/SearchableSingleSelect.js +180 -0
  76. package/lib/client/select/SearchableSingleSelect.js.map +1 -0
  77. package/lib/client/select/WorktreeSelector.d.ts +14 -0
  78. package/lib/client/select/WorktreeSelector.d.ts.map +1 -0
  79. package/lib/client/select/WorktreeSelector.js +11 -0
  80. package/lib/client/select/WorktreeSelector.js.map +1 -0
  81. package/lib/client/settings/diagnostics.d.ts +4 -0
  82. package/lib/client/settings/diagnostics.d.ts.map +1 -1
  83. package/lib/client/settings/diagnostics.js +12 -0
  84. package/lib/client/settings/diagnostics.js.map +1 -1
  85. package/lib/client/steer/SteerDock.d.ts +8 -0
  86. package/lib/client/steer/SteerDock.d.ts.map +1 -0
  87. package/lib/client/steer/SteerDock.js +12 -0
  88. package/lib/client/steer/SteerDock.js.map +1 -0
  89. package/lib/client/steer/steer-activity.d.ts +18 -0
  90. package/lib/client/steer/steer-activity.d.ts.map +1 -0
  91. package/lib/client/steer/steer-activity.js +37 -0
  92. package/lib/client/steer/steer-activity.js.map +1 -0
  93. package/lib/client/steer/steer-state.d.ts +24 -0
  94. package/lib/client/steer/steer-state.d.ts.map +1 -0
  95. package/lib/client/steer/steer-state.js +102 -0
  96. package/lib/client/steer/steer-state.js.map +1 -0
  97. package/lib/client/surface/actions/useLifecycleActions.js +1 -1
  98. package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
  99. package/lib/client/surface/actions/useWorktreeRegistration.d.ts +1 -1
  100. package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
  101. package/lib/client/surface/actions/useWorktreeRegistration.js +32 -11
  102. package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
  103. package/lib/client/surface/components/RegistrationDialog.d.ts +3 -3
  104. package/lib/client/surface/components/RegistrationDialog.d.ts.map +1 -1
  105. package/lib/client/surface/components/RegistrationDialog.js +70 -5
  106. package/lib/client/surface/components/RegistrationDialog.js.map +1 -1
  107. package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -1
  108. package/lib/client/surface/components/WorkspaceTree.js +11 -8
  109. package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
  110. package/lib/client/surface/components/dialogs.d.ts +1 -1
  111. package/lib/client/surface/components/dialogs.d.ts.map +1 -1
  112. package/lib/client/surface/components/dialogs.js +24 -15
  113. package/lib/client/surface/components/dialogs.js.map +1 -1
  114. package/lib/client/surface/state/useRegistrationState.d.ts +6 -1
  115. package/lib/client/surface/state/useRegistrationState.d.ts.map +1 -1
  116. package/lib/client/surface/state/useRegistrationState.js +7 -0
  117. package/lib/client/surface/state/useRegistrationState.js.map +1 -1
  118. package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
  119. package/lib/client/surface/state/useSurfaceRefresh.js +6 -3
  120. package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
  121. package/lib/client/surface/types.d.ts +10 -2
  122. package/lib/client/surface/types.d.ts.map +1 -1
  123. package/lib/client/view/worktree-error-copy.d.ts.map +1 -1
  124. package/lib/client/view/worktree-error-copy.js +4 -0
  125. package/lib/client/view/worktree-error-copy.js.map +1 -1
  126. package/lib/client/view/worktree-view-read.d.ts +7 -2
  127. package/lib/client/view/worktree-view-read.d.ts.map +1 -1
  128. package/lib/client/view/worktree-view-read.js +57 -18
  129. package/lib/client/view/worktree-view-read.js.map +1 -1
  130. package/lib/client/worktree-connection.d.ts +4 -0
  131. package/lib/client/worktree-connection.d.ts.map +1 -1
  132. package/lib/client/worktree-connection.js +20 -1
  133. package/lib/client/worktree-connection.js.map +1 -1
  134. package/lib/client.js +2361 -834
  135. package/lib/client.js.map +1 -1
  136. package/lib/contract/baseline-sync.d.ts +27 -0
  137. package/lib/contract/baseline-sync.d.ts.map +1 -0
  138. package/lib/contract/baseline-sync.js +2 -0
  139. package/lib/contract/baseline-sync.js.map +1 -0
  140. package/lib/contract/index.contract.js +16 -0
  141. package/lib/contract/index.contract.js.map +1 -1
  142. package/lib/contract/index.d.ts +73 -12
  143. package/lib/contract/index.d.ts.map +1 -1
  144. package/lib/contract/index.js +4 -0
  145. package/lib/contract/index.js.map +1 -1
  146. package/lib/contract/worktree-permission.d.ts +2 -0
  147. package/lib/contract/worktree-permission.d.ts.map +1 -1
  148. package/lib/contract/worktree-permission.js +1 -1
  149. package/lib/contract/worktree-permission.js.map +1 -1
  150. package/lib/contract/worktree-tool-changes.d.ts +2 -0
  151. package/lib/contract/worktree-tool-changes.d.ts.map +1 -1
  152. package/lib/host/baseline-sync.d.ts +15 -0
  153. package/lib/host/baseline-sync.d.ts.map +1 -0
  154. package/lib/host/baseline-sync.js +93 -0
  155. package/lib/host/baseline-sync.js.map +1 -0
  156. package/lib/host/remote.d.ts +2 -1
  157. package/lib/host/remote.d.ts.map +1 -1
  158. package/lib/host/remote.js +8 -1
  159. package/lib/host/remote.js.map +1 -1
  160. package/lib/host/service.d.ts +18 -6
  161. package/lib/host/service.d.ts.map +1 -1
  162. package/lib/host/service.js +45 -2
  163. package/lib/host/service.js.map +1 -1
  164. package/lib/host/worktree-permission.d.ts +12 -0
  165. package/lib/host/worktree-permission.d.ts.map +1 -1
  166. package/lib/host/worktree-permission.js +87 -16
  167. package/lib/host/worktree-permission.js.map +1 -1
  168. package/lib/host/worktree-tool-changes.d.ts +1 -1
  169. package/lib/host/worktree-tool-changes.d.ts.map +1 -1
  170. package/lib/host/worktree-tool-changes.js +5 -2
  171. package/lib/host/worktree-tool-changes.js.map +1 -1
  172. package/lib/index.d.ts +1 -1
  173. package/lib/index.d.ts.map +1 -1
  174. package/lib/index.js.map +1 -1
  175. package/lib/manage/manager-git-history.d.ts +5 -7
  176. package/lib/manage/manager-git-history.d.ts.map +1 -1
  177. package/lib/manage/manager-git-history.js +158 -65
  178. package/lib/manage/manager-git-history.js.map +1 -1
  179. package/lib/manage/manager-git-paths.d.ts +7 -0
  180. package/lib/manage/manager-git-paths.d.ts.map +1 -0
  181. package/lib/manage/manager-git-paths.js +62 -0
  182. package/lib/manage/manager-git-paths.js.map +1 -0
  183. package/lib/manage/manager-worktrees.d.ts +9 -1
  184. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  185. package/lib/manage/manager-worktrees.js +69 -14
  186. package/lib/manage/manager-worktrees.js.map +1 -1
  187. package/lib/manage/manager.d.ts +17 -5
  188. package/lib/manage/manager.d.ts.map +1 -1
  189. package/lib/manage/manager.js +81 -4
  190. package/lib/manage/manager.js.map +1 -1
  191. package/lib/manage/types.d.ts +5 -0
  192. package/lib/manage/types.d.ts.map +1 -1
  193. package/lib/provider/git/adapter.d.ts +13 -12
  194. package/lib/provider/git/adapter.d.ts.map +1 -1
  195. package/lib/provider/git/adapter.js +152 -29
  196. package/lib/provider/git/adapter.js.map +1 -1
  197. package/lib/provider/git/branch-name.d.ts +5 -0
  198. package/lib/provider/git/branch-name.d.ts.map +1 -0
  199. package/lib/provider/git/branch-name.js +16 -0
  200. package/lib/provider/git/branch-name.js.map +1 -0
  201. package/lib/provider/git/branches.d.ts +11 -0
  202. package/lib/provider/git/branches.d.ts.map +1 -0
  203. package/lib/provider/git/branches.js +37 -0
  204. package/lib/provider/git/branches.js.map +1 -0
  205. package/lib/provider/sidecar/repository.d.ts.map +1 -1
  206. package/lib/provider/sidecar/repository.js +2 -1
  207. package/lib/provider/sidecar/repository.js.map +1 -1
  208. package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -1
  209. package/lib/provider/sidecar/sidecar-schema.js +2 -0
  210. package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
  211. package/lib/provider/transaction/operations/create.d.ts.map +1 -1
  212. package/lib/provider/transaction/operations/create.js +18 -6
  213. package/lib/provider/transaction/operations/create.js.map +1 -1
  214. package/lib/provider/transaction/recovery/failure-recovery.d.ts.map +1 -1
  215. package/lib/provider/transaction/recovery/failure-recovery.js +3 -2
  216. package/lib/provider/transaction/recovery/failure-recovery.js.map +1 -1
  217. package/lib/provider/transaction/recovery/recover.d.ts.map +1 -1
  218. package/lib/provider/transaction/recovery/recover.js +8 -5
  219. package/lib/provider/transaction/recovery/recover.js.map +1 -1
  220. package/lib/provider/transaction/support/journal.d.ts.map +1 -1
  221. package/lib/provider/transaction/support/journal.js +1 -0
  222. package/lib/provider/transaction/support/journal.js.map +1 -1
  223. package/lib/provider/types.d.ts +24 -4
  224. package/lib/provider/types.d.ts.map +1 -1
  225. package/lib/provider/types.js.map +1 -1
  226. package/lib/tool/agent-relay.d.ts +55 -0
  227. package/lib/tool/agent-relay.d.ts.map +1 -0
  228. package/lib/tool/agent-relay.js +159 -0
  229. package/lib/tool/agent-relay.js.map +1 -0
  230. package/lib/tool/delegation.d.ts +1 -0
  231. package/lib/tool/delegation.d.ts.map +1 -1
  232. package/lib/tool/delegation.js +32 -6
  233. package/lib/tool/delegation.js.map +1 -1
  234. package/lib/tool/dispatch-session.d.ts +18 -0
  235. package/lib/tool/dispatch-session.d.ts.map +1 -0
  236. package/lib/tool/dispatch-session.js +41 -0
  237. package/lib/tool/dispatch-session.js.map +1 -0
  238. package/lib/tool/errors.d.ts +6 -0
  239. package/lib/tool/errors.d.ts.map +1 -1
  240. package/lib/tool/errors.js +16 -2
  241. package/lib/tool/errors.js.map +1 -1
  242. package/lib/tool/guidance.d.ts +1 -0
  243. package/lib/tool/guidance.d.ts.map +1 -1
  244. package/lib/tool/guidance.js +2 -0
  245. package/lib/tool/guidance.js.map +1 -1
  246. package/lib/tool/index.d.ts.map +1 -1
  247. package/lib/tool/index.js +38 -4
  248. package/lib/tool/index.js.map +1 -1
  249. package/lib/tool/inputs.d.ts.map +1 -1
  250. package/lib/tool/inputs.js +6 -6
  251. package/lib/tool/inputs.js.map +1 -1
  252. package/lib/tool/list-models.js +2 -2
  253. package/lib/tool/list-models.js.map +1 -1
  254. package/lib/tool/list-sessions.js +2 -2
  255. package/lib/tool/list-sessions.js.map +1 -1
  256. package/lib/tool/list-worktrees.d.ts.map +1 -1
  257. package/lib/tool/list-worktrees.js +9 -2
  258. package/lib/tool/list-worktrees.js.map +1 -1
  259. package/lib/tool/native-session.d.ts +4 -0
  260. package/lib/tool/native-session.d.ts.map +1 -1
  261. package/lib/tool/native-session.js +17 -0
  262. package/lib/tool/native-session.js.map +1 -1
  263. package/lib/tool/new-worktree.js +4 -4
  264. package/lib/tool/new-worktree.js.map +1 -1
  265. package/lib/tool/report-result.d.ts.map +1 -1
  266. package/lib/tool/report-result.js +9 -7
  267. package/lib/tool/report-result.js.map +1 -1
  268. package/lib/tool/schema.d.ts +8 -0
  269. package/lib/tool/schema.d.ts.map +1 -1
  270. package/lib/tool/schema.js +31 -2
  271. package/lib/tool/schema.js.map +1 -1
  272. package/lib/tool/send-message.d.ts.map +1 -1
  273. package/lib/tool/send-message.js +8 -7
  274. package/lib/tool/send-message.js.map +1 -1
  275. package/lib/tool/span-worktree.d.ts.map +1 -1
  276. package/lib/tool/span-worktree.js +33 -59
  277. package/lib/tool/span-worktree.js.map +1 -1
  278. package/lib/tool/types.d.ts +2 -0
  279. package/lib/tool/types.d.ts.map +1 -1
  280. package/lib/tool/wire-schema.d.ts +4 -0
  281. package/lib/tool/wire-schema.d.ts.map +1 -0
  282. package/lib/tool/wire-schema.js +24 -0
  283. package/lib/tool/wire-schema.js.map +1 -0
  284. package/lib/typert.host.js +283 -52
  285. package/lib/typert.remote-client.d.ts +13 -5
  286. package/lib/typert.remote-client.d.ts.map +1 -1
  287. package/lib/typert.remote-client.js +283 -52
  288. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeGitPanel.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAIV,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAkBhE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CACrB,eAAe,EACf,cAAc,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,2BAA2B,CACjG,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAgED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,CAAC,GACF,EAAE,qBAAqB,+BAuXvB"}
1
+ {"version":3,"file":"WorktreeGitPanel.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAIV,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAmBhE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CACrB,eAAe,EACf,cAAc,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,2BAA2B,CACjG,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAgED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,CAAC,GACF,EAAE,qBAAqB,+BA+XvB"}
@@ -3,10 +3,12 @@ import { NotificationToasts } from '../../surface/components/NotificationToasts.
3
3
  import { toWorktreeViewError } from '../../view/worktree-view.js';
4
4
  import { formatWorktreeViewError } from '../../view/worktree-error-copy.js';
5
5
  import { failureToastKey } from '../../surface/notification-queue.js';
6
- import { useRef } from 'react';
6
+ import { useMemo, useRef } from 'react';
7
+ import { GitBranchSelector } from '../../branch/GitBranchSelector.js';
7
8
  import { isMainWorktreeId, normalizeBaselineBranch, sumLineTotals } from './git-facts.js';
8
9
  import { GitChangedFiles } from './GitChangedFiles.js';
9
10
  import { GitLineStats } from './GitLineStats.js';
11
+ import { GitCommitStats } from './GitCommitStats.js';
10
12
  import { GitCommitList } from './GitCommitList.js';
11
13
  import { GitDiffView } from './GitDiffView.js';
12
14
  import { GIT_SPLIT_DEFAULT_COLUMN_PERCENT, GIT_SPLIT_DEFAULT_ROW_PERCENT, GIT_SPLIT_MIN_COLUMN_PX, GIT_SPLIT_MIN_ROW_PX, } from './git-column-split.js';
@@ -20,7 +22,7 @@ function selectedCommit(history, sha) {
20
22
  return history?.commits.find((commit) => commit.sha === sha);
21
23
  }
22
24
  function commitCountLabel(history, t) {
23
- const committedCount = history.commits.filter((commit) => commit.kind !== 'working-tree').length;
25
+ const committedCount = history.ahead ?? history.commits.filter((commit) => commit.kind !== 'working-tree').length;
24
26
  return history.commits.some((commit) => commit.kind === 'working-tree')
25
27
  ? t('dashboard.git.commitCountWithWorkingTree', { commits: committedCount })
26
28
  : t('dashboard.git.commitCount', { n: committedCount });
@@ -79,13 +81,15 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
79
81
  fallback: GIT_SPLIT_DEFAULT_COLUMN_PERCENT,
80
82
  });
81
83
  const historyValue = state.history.status === 'ready' ? state.history.value : undefined;
84
+ const comparison = !isMain || historyValue?.baseline !== undefined;
82
85
  const commit = selectedCommit(historyValue, state.selectedCommit);
83
86
  const files = state.files.status === 'ready' ? readyFiles(state.files.value) : [];
84
87
  const diff = state.diff.status === 'ready' ? state.diff.value : undefined;
85
88
  const refreshing = state.history.status === 'ready' && state.history.refreshing === true;
86
89
  const unavailable = historyValue?.unavailableReason;
87
- const branchOptions = (state.branches.status === 'ready' ? state.branches.value : [])
88
- .filter((branch) => branch.name !== currentBranch);
90
+ const branchRoster = state.branches.status === 'ready' ? state.branches.value : undefined;
91
+ const branchOptions = useMemo(() => (branchRoster ?? [])
92
+ .filter((branch) => branch.kind === 'remote' || branch.name !== currentBranch), [branchRoster, currentBranch]);
89
93
  const branchError = state.branches.status === 'error'
90
94
  ? state.branches.error
91
95
  : state.branches.status === 'ready'
@@ -102,8 +106,11 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
102
106
  : commitLabel(commit, t);
103
107
  const hasTarget = state.view === 'summary' || commit !== undefined;
104
108
  const lineTotals = state.files.status === 'ready' && hasTarget ? sumLineTotals(files) : undefined;
109
+ const refreshRequired = state.loadMoreError !== undefined &&
110
+ toWorktreeViewError(state.loadMoreError).code === 'WORKTREE_STATE_CONFLICT';
105
111
  return (_jsxs("section", { className: styles.gitPanel, "data-dashboard-git-panel": true, children: [_jsx(NotificationToasts, { notices: [
106
112
  ['branches', branchError],
113
+ ['pagination', state.loadMoreError],
107
114
  [
108
115
  'history',
109
116
  state.history.status === 'error' || state.history.status === 'ready'
@@ -140,6 +147,8 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
140
147
  onClick: () => {
141
148
  if (scope === 'branches')
142
149
  void state.loadBranches();
150
+ else if (scope === 'pagination' && diagnostic.code !== 'WORKTREE_STATE_CONFLICT')
151
+ void state.loadMore();
143
152
  else
144
153
  void state.refresh();
145
154
  },
@@ -147,10 +156,20 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
147
156
  ],
148
157
  },
149
158
  ];
150
- }) }), _jsxs("header", { className: styles.gitPanelHeader, children: [_jsxs("div", { className: styles.gitPanelHeading, children: [_jsx("h2", { children: t('dashboard.git.title') }), !isMain && (_jsxs("label", { className: styles.gitBaselineSelector, children: [_jsx("span", { children: t('dashboard.git.baselineSelector') }), _jsxs("select", { value: state.baselineBranch ?? '', "data-dashboard-git-baseline": true, disabled: state.branches.status === 'loading', onChange: (event) => state.selectBaselineBranch(event.currentTarget.value || undefined), children: [_jsx("option", { value: "", children: t('dashboard.git.selectBaseline') }), state.baselineBranch !== undefined && !branchOptions.some((branch) => branch.name === state.baselineBranch) && (_jsx("option", { value: state.baselineBranch, children: state.baselineBranch })), branchOptions.map((branch) => (_jsx("option", { value: branch.name, children: branch.name }, branch.name)))] })] })), baselineCommit !== undefined && (_jsxs("dl", { className: styles.gitBaselineFacts, children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.base') }), _jsxs("dd", { children: [baselineRef !== undefined ? (_jsxs(_Fragment, { children: [baselineRef, _jsxs("code", { children: ["@ ", shortCommit(baselineCommit)] })] })) : (_jsx("code", { children: shortCommit(baselineCommit) })), historyValue?.baseline?.source === 'derived' && (_jsx("span", { className: styles.gitDerived, children: t('dashboard.git.derived') }))] })] }), historyValue !== undefined && (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }), _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.commits') }), _jsx("dd", { children: commitCountLabel(historyValue, t) })] }), historyValue.ahead !== undefined && historyValue.behind !== undefined && (_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.aheadBehind') }), _jsx("dd", { children: _jsx(GitLineStats, { additions: historyValue.ahead, deletions: historyValue.behind, ariaLabel: t('dashboard.git.aheadBehindStats', {
151
- ahead: historyValue.ahead,
152
- behind: historyValue.behind,
153
- }) }) })] }))] }))] })), isMain && historyValue !== undefined && (_jsxs("dl", { className: styles.gitBaselineFacts, children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }), _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.commits') }), _jsx("dd", { children: commitCountLabel(historyValue, t) })] })] }))] }), _jsx("button", { type: "button", className: styles.gitRefresh, "data-dashboard-git-refresh": true, disabled: refreshing || state.history.status === 'loading', "aria-busy": refreshing || state.history.status === 'loading', onClick: () => void state.refresh(), children: refreshing ? t('dashboard.git.refreshing') : t('dashboard.git.refresh') })] }), !isMain && unavailable === 'baseline-unselected' && (_jsxs("div", { className: styles.gitBaselinePrompt, "data-dashboard-git-baseline-prompt": true, children: [_jsx("strong", { children: t('dashboard.git.selectBaselineTitle') }), _jsx("p", { children: t('dashboard.git.selectBaselineDescription') })] })), state.history.status === 'loading' && (_jsx("div", { className: styles.gitLoading, role: "status", children: t('dashboard.git.loading') })), state.history.status === 'ready' && historyValue !== undefined && unavailable !== undefined && (_jsx(UnavailableNotice, { reason: unavailable, t: t })), state.history.status === 'ready' && historyValue !== undefined && unavailable === undefined && (_jsxs("div", { className: styles.gitColumns, ref: gridRef, children: [_jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "commits", "aria-label": t('dashboard.git.commits'), children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.commits') }), _jsxs("div", { className: styles.gitColumnHeaderControls, children: [historyValue.truncated && _jsx("span", { children: t('dashboard.git.truncatedHistory') }), _jsxs("label", { className: styles.gitCommitMultiSelect, title: t('dashboard.git.multiSelectCommitsDescription'), children: [_jsx("input", { type: "checkbox", role: "switch", "data-dashboard-git-multi-select": true, "aria-describedby": "dashboard-git-commit-selection-hint", checked: state.commitMultiSelect, onChange: (event) => state.setCommitMultiSelect(event.currentTarget.checked) }), _jsx("span", { className: styles.gitCommitMultiSelectTrack, "aria-hidden": "true", children: _jsx("span", { className: styles.gitCommitMultiSelectThumb }) }), _jsx("span", { className: styles.gitCommitMultiSelectLabel, children: t('dashboard.git.multiSelectCommits') })] })] })] }), !isMain && (_jsxs("button", { type: "button", className: styles.gitSummaryButton, "data-dashboard-git-summary": true, "aria-pressed": state.view === 'summary', onClick: state.selectSummary, children: [_jsx("span", { children: t('dashboard.git.baselineSummary') }), _jsx("small", { children: t('dashboard.git.baselineSummaryDescription') })] })), !isMain && state.view === 'summary' && (_jsxs("label", { className: styles.gitSummaryToggle, "data-dashboard-git-include-working-tree": true, children: [_jsx("input", { type: "checkbox", checked: state.includeWorkingTree, disabled: state.files.status === 'loading', onChange: (event) => state.setIncludeWorkingTree(event.currentTarget.checked) }), _jsxs("span", { children: [_jsx("strong", { children: t('dashboard.git.includeWorkingTree') }), _jsx("small", { children: t('dashboard.git.includeWorkingTreeDescription') })] })] })), _jsx("span", { id: "dashboard-git-commit-selection-hint", className: styles.gitSrOnly, children: t('dashboard.git.commitSelectionHint') }), historyValue.commits.length === 0 && _jsx("div", { className: styles.gitEmpty, children: t('dashboard.git.noCommits') }), _jsx(GitCommitList, { commits: historyValue.commits, selectedCommit: state.selectedCommit, selectedCommits: state.selectedCommits, multiSelect: state.commitMultiSelect, onSelect: state.selectCommit, onToggle: state.toggleCommit, t: t })] }), _jsx(GitSplitter, { split: rows, orientation: "horizontal", axis: "rows", label: t('dashboard.git.resizeRows') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "changed-files", "aria-label": t('dashboard.git.changedFiles'), "aria-busy": state.files.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.changedFiles') }), _jsxs("div", { className: styles.gitColumnHeaderMeta, children: [targetLabel !== undefined && (state.selectedCommits.length > 1 || state.view === 'summary'
159
+ }) }), _jsxs("header", { className: styles.gitPanelHeader, children: [_jsxs("div", { className: styles.gitPanelHeading, children: [_jsx("h2", { children: t('dashboard.git.title') }), _jsxs("div", { className: styles.gitBaselineSelector, children: [_jsx("span", { children: t('dashboard.git.baselineSelector') }), _jsx(GitBranchSelector, { t: t, size: "compact", label: t('dashboard.git.baselineSelector'), placeholder: t(isMain ? 'dashboard.git.noBaseline' : 'dashboard.git.selectBaseline'), emptyLabel: t(isMain ? 'dashboard.git.noBaseline' : 'dashboard.git.selectBaseline'), branches: branchOptions, value: state.baselineBranch ?? '', loading: state.branches.status === 'loading'
160
+ || (state.branches.status === 'ready' && state.branches.refreshing === true), onFetch: manager?.fetchRemoteBranches === undefined ? undefined : async () => {
161
+ try {
162
+ const branches = await manager.fetchRemoteBranches({ workspaceId });
163
+ state.acceptBranches(branches);
164
+ return branches.filter((branch) => branch.kind === 'remote' || branch.name !== currentBranch);
165
+ }
166
+ finally {
167
+ await state.refresh();
168
+ }
169
+ }, onChange: (value) => state.selectBaselineBranch(value || undefined), onLoad: manager?.listBranches === undefined ? undefined
170
+ : async () => (await state.readFreshBranches())
171
+ .filter((branch) => branch.kind === 'remote' || branch.name !== currentBranch) })] }), baselineCommit !== undefined && (_jsxs("dl", { className: styles.gitBaselineFacts, children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.base') }), _jsxs("dd", { children: [baselineRef !== undefined ? (_jsxs(_Fragment, { children: [baselineRef.replace(/^refs\/(heads|remotes)\//u, ''), _jsxs("code", { children: ["@ ", shortCommit(baselineCommit)] })] })) : (_jsx("code", { children: shortCommit(baselineCommit) })), historyValue?.baseline?.source === 'derived' && (_jsx("span", { className: styles.gitDerived, children: t('dashboard.git.derived') }))] })] }), historyValue !== undefined && (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }), _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.commits') }), _jsx("dd", { children: commitCountLabel(historyValue, t) })] }), historyValue.ahead !== undefined && historyValue.behind !== undefined && (_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.aheadBehind') }), _jsx("dd", { children: _jsx(GitCommitStats, { ahead: historyValue.ahead, behind: historyValue.behind, t: t }) })] }))] }))] })), isMain && historyValue !== undefined && baselineCommit === undefined && (_jsx("dl", { className: styles.gitBaselineFacts, children: _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }) }))] }), _jsx("button", { type: "button", className: styles.gitRefresh, "data-dashboard-git-refresh": true, disabled: refreshing || state.history.status === 'loading', "aria-busy": refreshing || state.history.status === 'loading', onClick: () => void state.refresh(), children: refreshing ? t('dashboard.git.refreshing') : t('dashboard.git.refresh') })] }), !isMain && unavailable === 'baseline-unselected' && (_jsxs("div", { className: styles.gitBaselinePrompt, "data-dashboard-git-baseline-prompt": true, children: [_jsx("strong", { children: t('dashboard.git.selectBaselineTitle') }), _jsx("p", { children: t('dashboard.git.selectBaselineDescription') })] })), state.history.status === 'loading' && (_jsx("div", { className: styles.gitLoading, role: "status", children: t('dashboard.git.loading') })), state.history.status === 'ready' && historyValue !== undefined && unavailable !== undefined && (_jsx(UnavailableNotice, { reason: unavailable, t: t })), state.history.status === 'ready' && historyValue !== undefined && unavailable === undefined && (_jsxs("div", { className: styles.gitColumns, ref: gridRef, children: [_jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "commits", "aria-label": t('dashboard.git.commits'), children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.commits') }), _jsxs("div", { className: styles.gitColumnHeaderControls, children: [state.loadingMore && _jsx("span", { role: "status", children: t('dashboard.git.loadingMore') }), _jsxs("label", { className: styles.gitCommitMultiSelect, title: t('dashboard.git.multiSelectCommitsDescription'), children: [_jsx("input", { type: "checkbox", role: "switch", "data-dashboard-git-multi-select": true, "aria-describedby": "dashboard-git-commit-selection-hint", checked: state.commitMultiSelect, onChange: (event) => state.setCommitMultiSelect(event.currentTarget.checked) }), _jsx("span", { className: styles.gitCommitMultiSelectTrack, "aria-hidden": "true", children: _jsx("span", { className: styles.gitCommitMultiSelectThumb }) }), _jsx("span", { className: styles.gitCommitMultiSelectLabel, children: t('dashboard.git.multiSelectCommits') })] })] })] }), comparison && (_jsxs("button", { type: "button", className: styles.gitSummaryButton, "data-dashboard-git-summary": true, "aria-pressed": state.view === 'summary', onClick: state.selectSummary, children: [_jsx("span", { children: t('dashboard.git.baselineSummary') }), _jsx("small", { children: t('dashboard.git.baselineSummaryDescription') })] })), comparison && state.view === 'summary' && (_jsxs("label", { className: styles.gitSummaryToggle, "data-dashboard-git-include-working-tree": true, children: [_jsx("input", { type: "checkbox", checked: state.includeWorkingTree, disabled: state.files.status === 'loading', onChange: (event) => state.setIncludeWorkingTree(event.currentTarget.checked) }), _jsxs("span", { children: [_jsx("strong", { children: t('dashboard.git.includeWorkingTree') }), _jsx("small", { children: t('dashboard.git.includeWorkingTreeDescription') })] })] })), _jsx("span", { id: "dashboard-git-commit-selection-hint", className: styles.gitSrOnly, children: t('dashboard.git.commitSelectionHint') }), historyValue.commits.length === 0 && _jsx("div", { className: styles.gitEmpty, children: t('dashboard.git.noCommits') }), _jsx(GitCommitList, { commits: historyValue.commits, selectedCommit: state.selectedCommit, selectedCommits: state.selectedCommits, multiSelect: state.commitMultiSelect, onSelect: state.selectCommit, onToggle: state.toggleCommit, hasMore: historyValue.nextOffset !== undefined, loadingMore: state.loadingMore, loadMoreError: state.loadMoreError !== undefined, onLoadMore: () => void (refreshRequired
172
+ ? state.refresh() : state.loadMore()), refreshRequired: refreshRequired, t: t }, JSON.stringify([state.baselineBranch, historyValue.headCommit, baselineCommit]))] }), _jsx(GitSplitter, { split: rows, orientation: "horizontal", axis: "rows", label: t('dashboard.git.resizeRows') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "changed-files", "aria-label": t('dashboard.git.changedFiles'), "aria-busy": state.files.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.changedFiles') }), _jsxs("div", { className: styles.gitColumnHeaderMeta, children: [targetLabel !== undefined && (state.selectedCommits.length > 1 || state.view === 'summary'
154
173
  ? _jsx("span", { children: targetLabel })
155
174
  : _jsx("code", { children: targetLabel })), state.files.status === 'ready' && hasTarget && (lineTotals === undefined ? (_jsx("span", { className: styles.gitColumnHeaderUnknown, children: t('dashboard.unknown') })) : (_jsx(GitLineStats, { additions: lineTotals.additions, deletions: lineTotals.deletions, ariaLabel: t('dashboard.git.lineStats', {
156
175
  additions: lineTotals.additions,
@@ -159,7 +178,7 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
159
178
  ? state.includeWorkingTree
160
179
  ? t('dashboard.git.noLiveBaselineChanges')
161
180
  : t('dashboard.git.noBaselineChanges')
162
- : t('dashboard.git.noFiles') })) : (_jsx(GitChangedFiles, { files: files, selectedPath: state.selectedPath, onSelect: state.selectPath, t: t }))] }))] }), _jsx(GitSplitter, { split: columns, orientation: "vertical", axis: "columns", label: t('dashboard.git.resizeColumns') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "diff", "aria-label": t('dashboard.git.diff'), "aria-busy": state.diff.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: state.view === 'summary' ? t('dashboard.git.summaryDiff') : t('dashboard.git.diff') }), state.selectedPath !== undefined && _jsx("code", { title: state.selectedPath, children: state.selectedPath })] }), state.diff.status === 'loading' ? (_jsx("div", { className: styles.gitLoading, role: "status", children: state.view === 'summary' ? t('dashboard.git.loadingSummaryDiff') : t('dashboard.git.loadingDiff') })) : state.diff.status === 'error' ? (null) : (_jsx(GitDiffView, { diff: diff, onOpenFile: onOpenFile, t: t }))] })] }))] }));
181
+ : t('dashboard.git.noFiles') })) : (_jsx(GitChangedFiles, { files: files, selectedPath: state.selectedPath, onSelect: state.selectPath, onOpenFile: onOpenFile, t: t }))] }))] }), _jsx(GitSplitter, { split: columns, orientation: "vertical", axis: "columns", label: t('dashboard.git.resizeColumns') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "diff", "aria-label": t('dashboard.git.diff'), "aria-busy": state.diff.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: state.view === 'summary' ? t('dashboard.git.summaryDiff') : t('dashboard.git.diff') }), state.selectedPath !== undefined && _jsx("code", { title: state.selectedPath, children: state.selectedPath })] }), state.diff.status === 'loading' ? (_jsx("div", { className: styles.gitLoading, role: "status", children: state.view === 'summary' ? t('dashboard.git.loadingSummaryDiff') : t('dashboard.git.loadingDiff') })) : state.diff.status === 'error' ? (null) : (_jsx(GitDiffView, { diff: diff, onOpenFile: onOpenFile, t: t }))] })] }))] }));
163
182
  }
164
183
  /**
165
184
  * Draggable divider that resizes one axis of the Git grid. The wide layout puts
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeGitPanel.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeGitPanel.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
- /** Resolve checkout-relative Git paths against the actual Session cwd. */
2
- export declare function buildSessionFileAddress(sessionId: string, path: string, gitRootPath?: string, cwd?: string): string;
1
+ export declare class GitFileAddressError extends Error {
2
+ readonly code = "GIT_FILE_OUTSIDE_SESSION";
3
+ }
4
+ /** Resolve Workspace-relative Git paths against the actual Session cwd. */
5
+ export declare function buildSessionFileAddress(sessionId: string, path: string, workspacePath?: string, cwd?: string, gitRootPath?: string | undefined): string;
3
6
  //# sourceMappingURL=file-address.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-address.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAOR"}
1
+ {"version":3,"file":"file-address.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"AAGA,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,8BAA8B;CAC5C;AAcD,2EAA2E;AAC3E,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,EACZ,WAAW,qBAAgB,GAC1B,MAAM,CA+BR"}
@@ -1,11 +1,54 @@
1
1
  import { fileAddressFor } from '@deepseek-ai/dsh-util-workspace-path';
2
- /** Resolve checkout-relative Git paths against the actual Session cwd. */
3
- export function buildSessionFileAddress(sessionId, path, gitRootPath, cwd) {
2
+ import { isWindowsPath, stripExtendedWindowsPrefix } from '../../../contract/windows-path.js';
3
+ export class GitFileAddressError extends Error {
4
+ code = 'GIT_FILE_OUTSIDE_SESSION';
5
+ }
6
+ function absoluteDirectory(value) {
7
+ const absolute = stripExtendedWindowsPrefix(value).replace(/\\/g, '/');
8
+ if (!absolute.startsWith('/') && !/^[A-Za-z]:\//u.test(absolute)) {
9
+ throw new GitFileAddressError('Workspace directory, Git root and Session cwd must be absolute');
10
+ }
11
+ const normalized = absolute.replace(/\/+$/u, '');
12
+ if (normalized.split('/').some((segment) => segment === '.' || segment === '..')) {
13
+ throw new GitFileAddressError('Ambiguous directory path');
14
+ }
15
+ return normalized;
16
+ }
17
+ /** Resolve Workspace-relative Git paths against the actual Session cwd. */
18
+ export function buildSessionFileAddress(sessionId, path, workspacePath, cwd, gitRootPath = workspacePath) {
4
19
  const normalized = path.replace(/\\/g, '/').replace(/^(?:\.\/)+/, '');
5
- // Git paths remain checkout-relative even when the Session cwd is nested.
6
- const target = gitRootPath === undefined
7
- ? normalized
8
- : gitRootPath.replace(/\\/g, '/').replace(/\/$/, '') + '/' + normalized;
9
- return fileAddressFor(sessionId, cwd, target);
20
+ if (!normalized || normalized.startsWith('/') || /^[A-Za-z]:/u.test(normalized) ||
21
+ normalized.includes('\0') || normalized.split('/').some((segment) => segment === '.' || segment === '')) {
22
+ throw new GitFileAddressError('Expected a Workspace-relative Git file path');
23
+ }
24
+ if (workspacePath === undefined) {
25
+ if (normalized.split('/').includes('..'))
26
+ throw new GitFileAddressError('Workspace directory is required');
27
+ return fileAddressFor(sessionId, cwd, normalized);
28
+ }
29
+ const root = absoluteDirectory(workspacePath);
30
+ const sessionRoot = absoluteDirectory(cwd ?? workspacePath);
31
+ const checkoutRoot = absoluteDirectory(gitRootPath ?? workspacePath);
32
+ const parts = root.split('/');
33
+ const rootSegments = root.startsWith('//') ? 4 : 1;
34
+ for (const segment of normalized.split('/')) {
35
+ if (segment === '..') {
36
+ if (parts.length <= rootSegments)
37
+ throw new GitFileAddressError('Path escapes the filesystem root');
38
+ parts.pop();
39
+ }
40
+ else
41
+ parts.push(segment);
42
+ }
43
+ const target = parts.join('/');
44
+ const windows = isWindowsPath(workspacePath) || isWindowsPath(cwd ?? workspacePath) || root.startsWith('//');
45
+ const identity = (value) => windows ? value.toLowerCase() : value;
46
+ if (!identity(target).startsWith(identity(checkoutRoot) + '/') ||
47
+ !identity(target).startsWith(identity(sessionRoot) + '/')) {
48
+ throw new GitFileAddressError('The changed file is outside the Session working directory');
49
+ }
50
+ // Compute the relative path explicitly so Windows casing and extended prefixes
51
+ // cannot make the native lexical helper emit an accidental absolute address.
52
+ return fileAddressFor(sessionId, cwd, target.slice(sessionRoot.length + 1));
10
53
  }
11
54
  //# sourceMappingURL=file-address.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-address.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,0EAA0E;AAC1E,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,IAAY,EACZ,WAAoB,EACpB,GAAY;IAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACtE,0EAA0E;IAC1E,MAAM,MAAM,GAAG,WAAW,KAAK,SAAS;QACtC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC;IAC1E,OAAO,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"file-address.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export function normalizeBranch(branch) {
14
14
  /** A baseline equal to the current Worktree branch is not a usable default. */
15
15
  export function normalizeBaselineBranch(value, currentBranch) {
16
16
  const baseline = normalizeBranch(value);
17
- return baseline === undefined || baseline === currentBranch ? undefined : baseline;
17
+ return baseline === undefined || baseline === currentBranch || baseline === 'refs/heads/' + currentBranch ? undefined : baseline;
18
18
  }
19
19
  /**
20
20
  * Sum the known text-file additions/deletions. Binary files have no line
@@ -1 +1 @@
1
- {"version":3,"file":"git-facts.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/git-facts.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,OAAO,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAClC,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AACtF,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,aAAiC;IAEjC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrF,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAwC;IACpE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS;QAC3E,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAC5B,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAC5B,UAAU,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"git-facts.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/git-facts.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,OAAO,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAClC,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AACtF,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,aAAiC;IAEjC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnI,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAwC;IACpE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS;QAC3E,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAC5B,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAC5B,UAAU,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACrF,CAAC"}
@@ -4,9 +4,11 @@ export type { GitLoadable } from './git-state-cache.js';
4
4
  export type WorktreeGitView = 'commits' | 'summary';
5
5
  export interface WorktreeGitState {
6
6
  readonly branches: GitLoadable<readonly BranchRecord[]>;
7
- /** The currently selected local branch; undefined keeps the Git tab unselected. */
7
+ /** Selected comparison branch; Main uses direct history when undefined. */
8
8
  readonly baselineBranch?: string;
9
9
  readonly history: GitLoadable<WorktreeGitHistory>;
10
+ readonly loadingMore: boolean;
11
+ readonly loadMoreError?: Error;
10
12
  readonly view: WorktreeGitView;
11
13
  /** Whether the summary target includes the live working tree. */
12
14
  readonly includeWorkingTree: boolean;
@@ -23,8 +25,11 @@ export interface WorktreeGitState {
23
25
  export interface WorktreeGitStateController {
24
26
  readonly getSnapshot: () => WorktreeGitState;
25
27
  readonly subscribe: (listener: () => void) => () => void;
26
- readonly loadBranches: () => Promise<void>;
28
+ readonly loadBranches: (refresh?: boolean) => Promise<void>;
29
+ readonly readFreshBranches: () => Promise<readonly BranchRecord[]>;
30
+ readonly acceptBranches: (branches: readonly BranchRecord[]) => void;
27
31
  readonly loadHistory: () => Promise<void>;
32
+ readonly loadMore: () => Promise<void>;
28
33
  readonly refresh: () => Promise<void>;
29
34
  readonly selectBaselineBranch: (branch: string | undefined) => void;
30
35
  readonly selectView: (view: WorktreeGitView) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useWorktreeGitState.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/useWorktreeGitState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useWorktreeGitState.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/useWorktreeGitState.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ function emptyState(defaultBaselineBranch, main) {
17
17
  branches: { status: 'idle' },
18
18
  baselineBranch: normalizeBranch(defaultBaselineBranch),
19
19
  history: { status: 'idle' },
20
+ loadingMore: false,
20
21
  view: main ? 'commits' : 'summary',
21
22
  includeWorkingTree: false,
22
23
  selectedCommits: [],
@@ -35,7 +36,7 @@ export function createWorktreeGitStateController(input) {
35
36
  const main = isMainWorktreeId(input.worktreeId);
36
37
  const capturedBaseline = input.capturedBaseline === true;
37
38
  const canRead = (baselineBranch) => main || capturedBaseline || baselineBranch !== undefined;
38
- let state = emptyState(input.defaultBaselineBranch, main);
39
+ let state = emptyState(main ? undefined : input.defaultBaselineBranch, main);
39
40
  let disposed = false;
40
41
  let branchesLoaded = false;
41
42
  let branchesRequest = 0;
@@ -45,6 +46,7 @@ export function createWorktreeGitStateController(input) {
45
46
  let diffRequest = 0;
46
47
  let branchesInFlight;
47
48
  let historyInFlight;
49
+ let moreInFlight;
48
50
  const filesInFlight = new Map();
49
51
  const diffInFlight = new Map();
50
52
  const listeners = new Set();
@@ -269,7 +271,7 @@ export function createWorktreeGitStateController(input) {
269
271
  });
270
272
  };
271
273
  const selectBaselineBranch = (branch) => {
272
- if (disposed || main)
274
+ if (disposed)
273
275
  return;
274
276
  const nextBranch = normalizeBranch(branch);
275
277
  if (state.baselineBranch === nextBranch)
@@ -278,6 +280,7 @@ export function createWorktreeGitStateController(input) {
278
280
  ++filesRequest;
279
281
  ++diffRequest;
280
282
  historyInFlight = undefined;
283
+ moreInFlight = undefined;
281
284
  historyLoaded = false;
282
285
  filesInFlight.clear();
283
286
  diffInFlight.clear();
@@ -286,28 +289,31 @@ export function createWorktreeGitStateController(input) {
286
289
  update({
287
290
  ...state,
288
291
  baselineBranch: nextBranch,
289
- history: { status: 'idle' },
290
- view: 'summary',
292
+ ...(!canRead(nextBranch) ? {
293
+ history: { status: 'ready', value: {
294
+ commits: [], truncated: false, unavailableReason: 'baseline-unselected',
295
+ } },
296
+ files: { status: 'idle' }, selectedPath: undefined, diff: { status: 'idle' },
297
+ } : {}),
298
+ loadingMore: false,
299
+ loadMoreError: undefined,
300
+ view: main && nextBranch === undefined ? 'commits' : 'summary',
291
301
  selectedCommit: undefined,
292
302
  selectedCommits: [],
293
- files: { status: 'idle' },
294
- selectedPath: undefined,
295
- diff: { status: 'idle' },
296
303
  });
297
- // Clearing an explicit selection falls back to the captured baseline, so it
298
- // must re-read rather than leave the previous branch projection on screen.
299
- if (nextBranch !== undefined || capturedBaseline)
300
- void loadHistory();
304
+ // Clearing a selection reads Main history or the captured Worktree baseline.
305
+ if (canRead(nextBranch))
306
+ void loadHistory(true);
301
307
  };
302
308
  const selectSummary = () => {
303
- if (disposed || main || !canRead(state.baselineBranch))
309
+ if (disposed || (main && state.baselineBranch === undefined) || !canRead(state.baselineBranch))
304
310
  return;
305
311
  const target = { kind: 'selection', selection: summarySelection(state.includeWorkingTree) };
306
312
  resetTarget({ view: 'summary', selectedCommit: undefined, selectedCommits: [] });
307
313
  void loadFiles(target);
308
314
  };
309
315
  const setIncludeWorkingTree = (includeWorkingTree) => {
310
- if (disposed || main || state.includeWorkingTree === includeWorkingTree)
316
+ if (disposed || (main && state.baselineBranch === undefined) || state.includeWorkingTree === includeWorkingTree)
311
317
  return;
312
318
  if (state.view !== 'summary' || !canRead(state.baselineBranch)) {
313
319
  update({ ...state, includeWorkingTree });
@@ -415,7 +421,7 @@ export function createWorktreeGitStateController(input) {
415
421
  void loadDiff(target, selectedPath, changedFile.path);
416
422
  };
417
423
  const loadBranches = (refresh = false) => {
418
- if (disposed || main)
424
+ if (disposed)
419
425
  return Promise.resolve();
420
426
  if (branchesInFlight !== undefined)
421
427
  return branchesInFlight;
@@ -479,6 +485,8 @@ export function createWorktreeGitStateController(input) {
479
485
  return Promise.resolve();
480
486
  const baselineBranch = state.baselineBranch;
481
487
  const request = ++historyRequest;
488
+ moreInFlight = undefined;
489
+ update({ ...state, loadingMore: false, loadMoreError: undefined });
482
490
  const previous = state.history;
483
491
  const refreshesWorkingTree = refresh && state.selectedCommit === WORKTREE_GIT_WORKING_TREE;
484
492
  if (refresh) {
@@ -557,7 +565,7 @@ export function createWorktreeGitStateController(input) {
557
565
  const target = nextSelectedCommit !== WORKTREE_GIT_WORKING_TREE && selectedCommits.length > 1
558
566
  ? { kind: 'selection', selection: { kind: 'commits', commits: selectedCommits } }
559
567
  : { kind: 'commit', commit: nextSelectedCommit };
560
- void loadFiles(target, refreshesWorkingTree);
568
+ void loadFiles(target, refresh);
561
569
  }
562
570
  }
563
571
  catch (error) {
@@ -583,19 +591,72 @@ export function createWorktreeGitStateController(input) {
583
591
  historyInFlight = promise;
584
592
  return promise;
585
593
  };
594
+ const loadMore = () => {
595
+ if (moreInFlight !== undefined)
596
+ return moreInFlight;
597
+ if (disposed || historyInFlight !== undefined || state.history.status !== 'ready' ||
598
+ state.history.refreshing || state.history.value.nextOffset === undefined)
599
+ return Promise.resolve();
600
+ const previous = state.history.value;
601
+ const baselineBranch = state.baselineBranch;
602
+ const request = historyRequest;
603
+ update({ ...state, loadingMore: true, loadMoreError: undefined });
604
+ const run = async () => {
605
+ try {
606
+ const page = await input.manager.listWorktreeCommits({
607
+ workspaceId: input.workspaceId, worktreeId: input.worktreeId,
608
+ baseBranch: baselineBranch, offset: previous.nextOffset,
609
+ expectedHeadCommit: previous.headCommit,
610
+ expectedBaselineCommit: previous.baseline?.commit,
611
+ });
612
+ if (disposed || request !== historyRequest || baselineBranch !== state.baselineBranch)
613
+ return;
614
+ if (page.headCommit !== previous.headCommit || page.baseline?.commit !== previous.baseline?.commit ||
615
+ page.unavailableReason !== undefined)
616
+ throw Object.assign(new Error('Git history changed; refresh before loading more'), { code: 'WORKTREE_STATE_CONFLICT' });
617
+ const existing = new Set(previous.commits.map((commit) => commit.sha));
618
+ update({ ...state, loadingMore: false, history: { status: 'ready', value: {
619
+ ...page, commits: [...previous.commits, ...page.commits.filter((commit) => !existing.has(commit.sha))],
620
+ } } });
621
+ }
622
+ catch (error) {
623
+ if (disposed || request !== historyRequest || baselineBranch !== state.baselineBranch)
624
+ return;
625
+ update({ ...state, loadingMore: false, loadMoreError: asError(error) });
626
+ }
627
+ };
628
+ const promise = run().finally(() => {
629
+ if (moreInFlight === promise)
630
+ moreInFlight = undefined;
631
+ });
632
+ moreInFlight = promise;
633
+ return promise;
634
+ };
586
635
  const controller = {
587
636
  getSnapshot: () => state,
588
637
  subscribe: (listener) => {
589
638
  listeners.add(listener);
590
639
  return () => listeners.delete(listener);
591
640
  },
592
- loadBranches: () => loadBranches(false),
641
+ loadBranches,
642
+ readFreshBranches: async () => {
643
+ await loadBranches(true);
644
+ const branches = state.branches;
645
+ if (branches.status === 'error' || (branches.status === 'ready' && branches.error))
646
+ throw branches.error;
647
+ return branches.status === 'ready' ? branches.value : [];
648
+ },
593
649
  loadHistory: () => loadHistory(false),
594
- refresh: () => {
595
- const branchesTask = loadBranches(true);
596
- const historyTask = loadHistory(true);
597
- return Promise.all([branchesTask, historyTask]).then(() => undefined);
650
+ loadMore,
651
+ acceptBranches: (branches) => {
652
+ if (disposed)
653
+ return;
654
+ ++branchesRequest;
655
+ branchesLoaded = true;
656
+ branchesInFlight = undefined;
657
+ update({ ...state, branches: { status: 'ready', value: branches } });
598
658
  },
659
+ refresh: () => loadHistory(true),
599
660
  selectBaselineBranch,
600
661
  selectView,
601
662
  selectSummary,
@@ -629,14 +690,16 @@ export function useWorktreeGitState(input) {
629
690
  ]);
630
691
  const snapshot = useSyncExternalStore(controller.subscribe, controller.getSnapshot, controller.getSnapshot);
631
692
  useEffect(() => {
632
- void controller.loadBranches();
633
693
  void controller.loadHistory();
634
694
  return controller.dispose;
635
695
  }, [controller]);
636
696
  return {
637
697
  ...snapshot,
638
698
  loadBranches: controller.loadBranches,
699
+ readFreshBranches: controller.readFreshBranches,
700
+ acceptBranches: controller.acceptBranches,
639
701
  loadHistory: controller.loadHistory,
702
+ loadMore: controller.loadMore,
640
703
  refresh: controller.refresh,
641
704
  selectBaselineBranch: controller.selectBaselineBranch,
642
705
  selectView: controller.selectView,