@cerbur/clutch-dsh-worktree 0.1.8 → 0.1.10

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 (508) hide show
  1. package/README.md +117 -46
  2. package/README.zh.md +92 -40
  3. package/lib/client/WorktreeSurface.d.ts +4 -7
  4. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  5. package/lib/client/WorktreeSurface.js +44 -1243
  6. package/lib/client/WorktreeSurface.js.map +1 -1
  7. package/lib/client/{WorktreeContext.d.ts → context/WorktreeContext.d.ts} +2 -2
  8. package/lib/client/context/WorktreeContext.d.ts.map +1 -0
  9. package/lib/client/{WorktreeContext.js → context/WorktreeContext.js} +1 -1
  10. package/lib/client/context/WorktreeContext.js.map +1 -0
  11. package/lib/client/{WorktreeHeroContext.d.ts → context/WorktreeHeroContext.d.ts} +1 -1
  12. package/lib/client/context/WorktreeHeroContext.d.ts.map +1 -0
  13. package/lib/client/{WorktreeHeroContext.js → context/WorktreeHeroContext.js} +1 -1
  14. package/lib/client/context/WorktreeHeroContext.js.map +1 -0
  15. package/lib/client/{worktree-context-store.d.ts → context/worktree-context-store.d.ts} +7 -15
  16. package/lib/client/context/worktree-context-store.d.ts.map +1 -0
  17. package/lib/client/{worktree-context-store.js → context/worktree-context-store.js} +20 -13
  18. package/lib/client/context/worktree-context-store.js.map +1 -0
  19. package/lib/client/{worktree-context.d.ts → context/worktree-context.d.ts} +1 -1
  20. package/lib/client/context/worktree-context.d.ts.map +1 -0
  21. package/lib/client/{worktree-context.js → context/worktree-context.js} +5 -3
  22. package/lib/client/context/worktree-context.js.map +1 -0
  23. package/lib/client/dsh-slot-contract.d.ts +43 -0
  24. package/lib/client/dsh-slot-contract.d.ts.map +1 -0
  25. package/lib/client/dsh-slot-contract.js +2 -0
  26. package/lib/client/dsh-slot-contract.js.map +1 -0
  27. package/lib/client/entry.d.ts +3 -3
  28. package/lib/client/entry.d.ts.map +1 -1
  29. package/lib/client/entry.js +168 -38
  30. package/lib/client/entry.js.map +1 -1
  31. package/lib/client/index.d.ts +3 -3
  32. package/lib/client/index.d.ts.map +1 -1
  33. package/lib/client/index.js +2 -2
  34. package/lib/client/index.js.map +1 -1
  35. package/lib/client/locales.d.ts +66 -0
  36. package/lib/client/locales.d.ts.map +1 -1
  37. package/lib/client/locales.js +76 -10
  38. package/lib/client/locales.js.map +1 -1
  39. package/lib/client/{WorktreeOverlay.d.ts → overlay/WorktreeOverlay.d.ts} +2 -2
  40. package/lib/client/overlay/WorktreeOverlay.d.ts.map +1 -0
  41. package/lib/client/{WorktreeOverlay.js → overlay/WorktreeOverlay.js} +2 -2
  42. package/lib/client/overlay/WorktreeOverlay.js.map +1 -0
  43. package/lib/client/overlay/overlay-bounds.d.ts.map +1 -0
  44. package/lib/client/overlay/overlay-bounds.js.map +1 -0
  45. package/lib/client/overlay/sidebar-overlay-geometry.d.ts.map +1 -0
  46. package/lib/client/overlay/sidebar-overlay-geometry.js.map +1 -0
  47. package/lib/client/permission/worktree-permission-icon.d.ts.map +1 -0
  48. package/lib/client/permission/worktree-permission-icon.js.map +1 -0
  49. package/lib/client/permission/worktree-permission.d.ts.map +1 -0
  50. package/lib/client/permission/worktree-permission.js.map +1 -0
  51. package/lib/client/session/session-view.d.ts.map +1 -0
  52. package/lib/client/session/session-view.js.map +1 -0
  53. package/lib/client/session/virtual-workspace-membership.d.ts +29 -0
  54. package/lib/client/session/virtual-workspace-membership.d.ts.map +1 -0
  55. package/lib/client/session/virtual-workspace-membership.js +131 -0
  56. package/lib/client/session/virtual-workspace-membership.js.map +1 -0
  57. package/lib/client/{worktree-session-fork.d.ts → session/worktree-session-fork.d.ts} +25 -4
  58. package/lib/client/session/worktree-session-fork.d.ts.map +1 -0
  59. package/lib/client/session/worktree-session-fork.js +309 -0
  60. package/lib/client/session/worktree-session-fork.js.map +1 -0
  61. package/lib/client/{worktree-session-order.d.ts → session/worktree-session-order.d.ts} +2 -2
  62. package/lib/client/session/worktree-session-order.d.ts.map +1 -0
  63. package/lib/client/session/worktree-session-order.js.map +1 -0
  64. package/lib/client/session/worktree-session-position.d.ts.map +1 -0
  65. package/lib/client/session/worktree-session-position.js.map +1 -0
  66. package/lib/client/{worktree-session.d.ts → session/worktree-session.d.ts} +3 -3
  67. package/lib/client/session/worktree-session.d.ts.map +1 -0
  68. package/lib/client/{worktree-session.js → session/worktree-session.js} +3 -3
  69. package/lib/client/session/worktree-session.js.map +1 -0
  70. package/lib/client/surface/actions/lifecycle-commands.d.ts +9 -0
  71. package/lib/client/surface/actions/lifecycle-commands.d.ts.map +1 -0
  72. package/lib/client/surface/actions/lifecycle-commands.js +243 -0
  73. package/lib/client/surface/actions/lifecycle-commands.js.map +1 -0
  74. package/lib/client/surface/actions/useDragActions.d.ts +26 -0
  75. package/lib/client/surface/actions/useDragActions.d.ts.map +1 -0
  76. package/lib/client/surface/actions/useDragActions.js +125 -0
  77. package/lib/client/surface/actions/useDragActions.js.map +1 -0
  78. package/lib/client/surface/actions/useLifecycleActions.d.ts +30 -0
  79. package/lib/client/surface/actions/useLifecycleActions.d.ts.map +1 -0
  80. package/lib/client/surface/actions/useLifecycleActions.js +140 -0
  81. package/lib/client/surface/actions/useLifecycleActions.js.map +1 -0
  82. package/lib/client/surface/actions/useNativeActions.d.ts +48 -0
  83. package/lib/client/surface/actions/useNativeActions.d.ts.map +1 -0
  84. package/lib/client/surface/actions/useNativeActions.js +182 -0
  85. package/lib/client/surface/actions/useNativeActions.js.map +1 -0
  86. package/lib/client/surface/actions/useSessionActions.d.ts +24 -0
  87. package/lib/client/surface/actions/useSessionActions.d.ts.map +1 -0
  88. package/lib/client/surface/actions/useSessionActions.js +116 -0
  89. package/lib/client/surface/actions/useSessionActions.js.map +1 -0
  90. package/lib/client/surface/actions/useSurfaceMutation.d.ts +15 -0
  91. package/lib/client/surface/actions/useSurfaceMutation.d.ts.map +1 -0
  92. package/lib/client/surface/actions/useSurfaceMutation.js +24 -0
  93. package/lib/client/surface/actions/useSurfaceMutation.js.map +1 -0
  94. package/lib/client/surface/actions/useWorktreeRegistration.d.ts +31 -0
  95. package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -0
  96. package/lib/client/surface/actions/useWorktreeRegistration.js +203 -0
  97. package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -0
  98. package/lib/client/surface/actions/worktree-cleanup-flow.d.ts +10 -0
  99. package/lib/client/surface/actions/worktree-cleanup-flow.d.ts.map +1 -0
  100. package/lib/client/surface/actions/worktree-cleanup-flow.js +19 -0
  101. package/lib/client/surface/actions/worktree-cleanup-flow.js.map +1 -0
  102. package/lib/client/surface/components/AccessConfirmation.d.ts +9 -0
  103. package/lib/client/surface/components/AccessConfirmation.d.ts.map +1 -0
  104. package/lib/client/surface/components/AccessConfirmation.js +18 -0
  105. package/lib/client/surface/components/AccessConfirmation.js.map +1 -0
  106. package/lib/client/surface/components/ActiveWorktree.d.ts +28 -0
  107. package/lib/client/surface/components/ActiveWorktree.d.ts.map +1 -0
  108. package/lib/client/surface/components/ActiveWorktree.js +154 -0
  109. package/lib/client/surface/components/ActiveWorktree.js.map +1 -0
  110. package/lib/client/surface/components/ArchivedWorktree.d.ts +24 -0
  111. package/lib/client/surface/components/ArchivedWorktree.d.ts.map +1 -0
  112. package/lib/client/surface/components/ArchivedWorktree.js +145 -0
  113. package/lib/client/surface/components/ArchivedWorktree.js.map +1 -0
  114. package/lib/client/surface/components/ArchivedWorktrees.d.ts +25 -0
  115. package/lib/client/surface/components/ArchivedWorktrees.d.ts.map +1 -0
  116. package/lib/client/surface/components/ArchivedWorktrees.js +20 -0
  117. package/lib/client/surface/components/ArchivedWorktrees.js.map +1 -0
  118. package/lib/client/surface/components/LifecycleDialogs.d.ts +20 -0
  119. package/lib/client/surface/components/LifecycleDialogs.d.ts.map +1 -0
  120. package/lib/client/surface/components/LifecycleDialogs.js +31 -0
  121. package/lib/client/surface/components/LifecycleDialogs.js.map +1 -0
  122. package/lib/client/surface/components/NativeDialogs.d.ts +9 -0
  123. package/lib/client/surface/components/NativeDialogs.d.ts.map +1 -0
  124. package/lib/client/surface/components/NativeDialogs.js +14 -0
  125. package/lib/client/surface/components/NativeDialogs.js.map +1 -0
  126. package/lib/client/surface/components/NotificationToasts.d.ts +7 -0
  127. package/lib/client/surface/components/NotificationToasts.d.ts.map +1 -0
  128. package/lib/client/surface/components/NotificationToasts.js +24 -0
  129. package/lib/client/surface/components/NotificationToasts.js.map +1 -0
  130. package/lib/client/surface/components/RegistrationDialog.d.ts +15 -0
  131. package/lib/client/surface/components/RegistrationDialog.d.ts.map +1 -0
  132. package/lib/client/surface/components/RegistrationDialog.js +22 -0
  133. package/lib/client/surface/components/RegistrationDialog.js.map +1 -0
  134. package/lib/client/surface/components/SurfaceContent.d.ts +31 -0
  135. package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -0
  136. package/lib/client/surface/components/SurfaceContent.js +65 -0
  137. package/lib/client/surface/components/SurfaceContent.js.map +1 -0
  138. package/lib/client/surface/components/SurfaceHeader.d.ts +15 -0
  139. package/lib/client/surface/components/SurfaceHeader.d.ts.map +1 -0
  140. package/lib/client/surface/components/SurfaceHeader.js +42 -0
  141. package/lib/client/surface/components/SurfaceHeader.js.map +1 -0
  142. package/lib/client/surface/components/WorkspaceTree.d.ts +32 -0
  143. package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -0
  144. package/lib/client/surface/components/WorkspaceTree.js +145 -0
  145. package/lib/client/surface/components/WorkspaceTree.js.map +1 -0
  146. package/lib/client/{worktree-surface-dialogs.d.ts → surface/components/dialogs.d.ts} +5 -2
  147. package/lib/client/surface/components/dialogs.d.ts.map +1 -0
  148. package/lib/client/{worktree-surface-dialogs.js → surface/components/dialogs.js} +67 -24
  149. package/lib/client/surface/components/dialogs.js.map +1 -0
  150. package/lib/client/{worktree-surface-rows.d.ts → surface/components/rows.d.ts} +3 -3
  151. package/lib/client/surface/components/rows.d.ts.map +1 -0
  152. package/lib/client/{worktree-surface-rows.js → surface/components/rows.js} +79 -17
  153. package/lib/client/surface/components/rows.js.map +1 -0
  154. package/lib/client/surface/notification-queue.d.ts +11 -0
  155. package/lib/client/surface/notification-queue.d.ts.map +1 -0
  156. package/lib/client/surface/notification-queue.js +19 -0
  157. package/lib/client/surface/notification-queue.js.map +1 -0
  158. package/lib/client/{worktree-surface-selectors.d.ts → surface/selectors.d.ts} +10 -5
  159. package/lib/client/surface/selectors.d.ts.map +1 -0
  160. package/lib/client/{worktree-surface-selectors.js → surface/selectors.js} +23 -6
  161. package/lib/client/surface/selectors.js.map +1 -0
  162. package/lib/client/surface/shared.d.ts +40 -0
  163. package/lib/client/surface/shared.d.ts.map +1 -0
  164. package/lib/client/surface/shared.js +53 -0
  165. package/lib/client/surface/shared.js.map +1 -0
  166. package/lib/client/surface/state/useLifecycleState.d.ts +34 -0
  167. package/lib/client/surface/state/useLifecycleState.d.ts.map +1 -0
  168. package/lib/client/surface/state/useLifecycleState.js +39 -0
  169. package/lib/client/surface/state/useLifecycleState.js.map +1 -0
  170. package/lib/client/surface/state/useRegistrationState.d.ts +34 -0
  171. package/lib/client/surface/state/useRegistrationState.d.ts.map +1 -0
  172. package/lib/client/surface/state/useRegistrationState.js +44 -0
  173. package/lib/client/surface/state/useRegistrationState.js.map +1 -0
  174. package/lib/client/surface/state/useSessionExpansion.d.ts +39 -0
  175. package/lib/client/surface/state/useSessionExpansion.d.ts.map +1 -0
  176. package/lib/client/surface/state/useSessionExpansion.js +230 -0
  177. package/lib/client/surface/state/useSessionExpansion.js.map +1 -0
  178. package/lib/client/surface/state/useSessionOrdering.d.ts +15 -0
  179. package/lib/client/surface/state/useSessionOrdering.d.ts.map +1 -0
  180. package/lib/client/surface/state/useSessionOrdering.js +68 -0
  181. package/lib/client/surface/state/useSessionOrdering.js.map +1 -0
  182. package/lib/client/surface/state/useSurfaceMenus.d.ts +9 -0
  183. package/lib/client/surface/state/useSurfaceMenus.d.ts.map +1 -0
  184. package/lib/client/surface/state/useSurfaceMenus.js +15 -0
  185. package/lib/client/surface/state/useSurfaceMenus.js.map +1 -0
  186. package/lib/client/surface/state/useSurfaceRefresh.d.ts +39 -0
  187. package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -0
  188. package/lib/client/surface/state/useSurfaceRefresh.js +274 -0
  189. package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -0
  190. package/lib/client/surface/state/useSurfaceSources.d.ts +31 -0
  191. package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -0
  192. package/lib/client/surface/state/useSurfaceSources.js +63 -0
  193. package/lib/client/surface/state/useSurfaceSources.js.map +1 -0
  194. package/lib/client/{worktree-surface-types.d.ts → surface/types.d.ts} +68 -13
  195. package/lib/client/surface/types.d.ts.map +1 -0
  196. package/lib/client/surface/types.js +2 -0
  197. package/lib/client/surface/types.js.map +1 -0
  198. package/lib/client/{WorktreeModeAction.d.ts → view/WorktreeModeAction.d.ts} +1 -1
  199. package/lib/client/view/WorktreeModeAction.d.ts.map +1 -0
  200. package/lib/client/{WorktreeModeAction.js → view/WorktreeModeAction.js} +1 -1
  201. package/lib/client/view/WorktreeModeAction.js.map +1 -0
  202. package/lib/client/view/navigation.d.ts.map +1 -0
  203. package/lib/client/view/navigation.js.map +1 -0
  204. package/lib/client/{view-mode-store.d.ts → view/view-mode-store.d.ts} +1 -1
  205. package/lib/client/view/view-mode-store.d.ts.map +1 -0
  206. package/lib/client/{view-mode-store.js → view/view-mode-store.js} +1 -1
  207. package/lib/client/view/view-mode-store.js.map +1 -0
  208. package/lib/client/{view-mode.d.ts → view/view-mode.d.ts} +20 -6
  209. package/lib/client/view/view-mode.d.ts.map +1 -0
  210. package/lib/client/{view-mode.js → view/view-mode.js} +35 -10
  211. package/lib/client/view/view-mode.js.map +1 -0
  212. package/lib/client/{worktree-error-copy.d.ts → view/worktree-error-copy.d.ts} +2 -2
  213. package/lib/client/view/worktree-error-copy.d.ts.map +1 -0
  214. package/lib/client/view/worktree-error-copy.js.map +1 -0
  215. package/lib/client/{worktree-expand-state.d.ts → view/worktree-expand-state.d.ts} +6 -4
  216. package/lib/client/view/worktree-expand-state.d.ts.map +1 -0
  217. package/lib/client/{worktree-expand-state.js → view/worktree-expand-state.js} +11 -0
  218. package/lib/client/view/worktree-expand-state.js.map +1 -0
  219. package/lib/client/{worktree-view-actions.d.ts → view/worktree-view-actions.d.ts} +11 -5
  220. package/lib/client/view/worktree-view-actions.d.ts.map +1 -0
  221. package/lib/client/{worktree-view-actions.js → view/worktree-view-actions.js} +13 -11
  222. package/lib/client/view/worktree-view-actions.js.map +1 -0
  223. package/lib/client/view/worktree-view-errors.d.ts.map +1 -0
  224. package/lib/client/view/worktree-view-errors.js.map +1 -0
  225. package/lib/client/{worktree-view-read.d.ts → view/worktree-view-read.d.ts} +21 -9
  226. package/lib/client/view/worktree-view-read.d.ts.map +1 -0
  227. package/lib/client/{worktree-view-read.js → view/worktree-view-read.js} +78 -10
  228. package/lib/client/view/worktree-view-read.js.map +1 -0
  229. package/lib/client/view/worktree-view.d.ts.map +1 -0
  230. package/lib/client/view/worktree-view.js.map +1 -0
  231. package/lib/client/worktree-connection.d.ts +5 -0
  232. package/lib/client/worktree-connection.d.ts.map +1 -1
  233. package/lib/client/worktree-connection.js +16 -0
  234. package/lib/client/worktree-connection.js.map +1 -1
  235. package/lib/client.js +5990 -3139
  236. package/lib/client.js.map +1 -1
  237. package/lib/contract/index.contract.js +10 -0
  238. package/lib/contract/index.contract.js.map +1 -1
  239. package/lib/contract/index.d.ts +46 -3
  240. package/lib/contract/index.d.ts.map +1 -1
  241. package/lib/contract/index.js +7 -0
  242. package/lib/contract/index.js.map +1 -1
  243. package/lib/host/dsh-read-adapter.d.ts +10 -1
  244. package/lib/host/dsh-read-adapter.d.ts.map +1 -1
  245. package/lib/host/dsh-read-adapter.js +18 -1
  246. package/lib/host/dsh-read-adapter.js.map +1 -1
  247. package/lib/host/remote.d.ts.map +1 -1
  248. package/lib/host/remote.js +14 -0
  249. package/lib/host/remote.js.map +1 -1
  250. package/lib/host/service.d.ts +24 -0
  251. package/lib/host/service.d.ts.map +1 -1
  252. package/lib/host/service.js +39 -1
  253. package/lib/host/service.js.map +1 -1
  254. package/lib/host/worktree-activity.d.ts +13 -0
  255. package/lib/host/worktree-activity.d.ts.map +1 -0
  256. package/lib/host/worktree-activity.js +23 -0
  257. package/lib/host/worktree-activity.js.map +1 -0
  258. package/lib/host/worktree-permission-manager.js +2 -2
  259. package/lib/host/worktree-permission-manager.js.map +1 -1
  260. package/lib/host/worktree-permission.d.ts +3 -2
  261. package/lib/host/worktree-permission.d.ts.map +1 -1
  262. package/lib/host/worktree-permission.js +29 -5
  263. package/lib/host/worktree-permission.js.map +1 -1
  264. package/lib/index.d.ts +3 -3
  265. package/lib/index.d.ts.map +1 -1
  266. package/lib/index.js +2 -2
  267. package/lib/index.js.map +1 -1
  268. package/lib/manage/manager-context.d.ts +2 -1
  269. package/lib/manage/manager-context.d.ts.map +1 -1
  270. package/lib/manage/manager-sessions.js +4 -4
  271. package/lib/manage/manager-sessions.js.map +1 -1
  272. package/lib/manage/manager-worktree-lifecycle.d.ts +23 -0
  273. package/lib/manage/manager-worktree-lifecycle.d.ts.map +1 -0
  274. package/lib/manage/manager-worktree-lifecycle.js +165 -0
  275. package/lib/manage/manager-worktree-lifecycle.js.map +1 -0
  276. package/lib/manage/manager-worktrees.d.ts +1 -6
  277. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  278. package/lib/manage/manager-worktrees.js +83 -114
  279. package/lib/manage/manager-worktrees.js.map +1 -1
  280. package/lib/manage/manager.d.ts +17 -1
  281. package/lib/manage/manager.d.ts.map +1 -1
  282. package/lib/manage/manager.js +25 -6
  283. package/lib/manage/manager.js.map +1 -1
  284. package/lib/provider/generated-name.d.ts +8 -0
  285. package/lib/provider/generated-name.d.ts.map +1 -0
  286. package/lib/provider/generated-name.js +29 -0
  287. package/lib/provider/generated-name.js.map +1 -0
  288. package/lib/provider/{git.d.ts → git/adapter.d.ts} +2 -2
  289. package/lib/provider/git/adapter.d.ts.map +1 -0
  290. package/lib/provider/{git.js → git/adapter.js} +15 -2
  291. package/lib/provider/git/adapter.js.map +1 -0
  292. package/lib/provider/{repository-fingerprint.d.ts → git/repository-fingerprint.d.ts} +1 -1
  293. package/lib/provider/git/repository-fingerprint.d.ts.map +1 -0
  294. package/lib/provider/git/repository-fingerprint.js.map +1 -0
  295. package/lib/provider/{subprocess.d.ts → git/subprocess.d.ts} +1 -1
  296. package/lib/provider/git/subprocess.d.ts.map +1 -0
  297. package/lib/provider/{subprocess.js → git/subprocess.js} +8 -0
  298. package/lib/provider/git/subprocess.js.map +1 -0
  299. package/lib/provider/git/worktree-status.d.ts +5 -0
  300. package/lib/provider/git/worktree-status.d.ts.map +1 -0
  301. package/lib/provider/git/worktree-status.js +23 -0
  302. package/lib/provider/git/worktree-status.js.map +1 -0
  303. package/lib/provider/index.d.ts +5 -5
  304. package/lib/provider/index.d.ts.map +1 -1
  305. package/lib/provider/index.js +5 -5
  306. package/lib/provider/index.js.map +1 -1
  307. package/lib/provider/mutation-token.d.ts +1 -1
  308. package/lib/provider/mutation-token.d.ts.map +1 -1
  309. package/lib/provider/mutation-token.js +1 -0
  310. package/lib/provider/mutation-token.js.map +1 -1
  311. package/lib/provider/sidecar/mutation-lock.d.ts.map +1 -0
  312. package/lib/provider/{mutation-lock.js → sidecar/mutation-lock.js} +1 -1
  313. package/lib/provider/sidecar/mutation-lock.js.map +1 -0
  314. package/lib/provider/{sidecar.d.ts → sidecar/repository.d.ts} +3 -3
  315. package/lib/provider/sidecar/repository.d.ts.map +1 -0
  316. package/lib/provider/{sidecar.js → sidecar/repository.js} +13 -6
  317. package/lib/provider/sidecar/repository.js.map +1 -0
  318. package/lib/provider/{sidecar-persistence.d.ts → sidecar/sidecar-persistence.d.ts} +1 -1
  319. package/lib/provider/sidecar/sidecar-persistence.d.ts.map +1 -0
  320. package/lib/provider/{sidecar-persistence.js → sidecar/sidecar-persistence.js} +29 -2
  321. package/lib/provider/sidecar/sidecar-persistence.js.map +1 -0
  322. package/lib/provider/{sidecar-schema.d.ts → sidecar/sidecar-schema.d.ts} +1 -1
  323. package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -0
  324. package/lib/provider/{sidecar-schema.js → sidecar/sidecar-schema.js} +52 -16
  325. package/lib/provider/sidecar/sidecar-schema.js.map +1 -0
  326. package/lib/provider/transaction/dependencies.d.ts +10 -0
  327. package/lib/provider/transaction/dependencies.d.ts.map +1 -0
  328. package/lib/provider/transaction/dependencies.js +2 -0
  329. package/lib/provider/transaction/dependencies.js.map +1 -0
  330. package/lib/provider/transaction/index.d.ts +17 -0
  331. package/lib/provider/transaction/index.d.ts.map +1 -0
  332. package/lib/provider/transaction/index.js +44 -0
  333. package/lib/provider/transaction/index.js.map +1 -0
  334. package/lib/provider/transaction/operations/adopt-branch.d.ts +6 -0
  335. package/lib/provider/transaction/operations/adopt-branch.d.ts.map +1 -0
  336. package/lib/provider/transaction/operations/adopt-branch.js +59 -0
  337. package/lib/provider/transaction/operations/adopt-branch.js.map +1 -0
  338. package/lib/provider/transaction/operations/clean.d.ts +4 -0
  339. package/lib/provider/transaction/operations/clean.d.ts.map +1 -0
  340. package/lib/provider/transaction/operations/clean.js +168 -0
  341. package/lib/provider/transaction/operations/clean.js.map +1 -0
  342. package/lib/provider/transaction/operations/create.d.ts +5 -0
  343. package/lib/provider/transaction/operations/create.d.ts.map +1 -0
  344. package/lib/provider/transaction/operations/create.js +136 -0
  345. package/lib/provider/transaction/operations/create.js.map +1 -0
  346. package/lib/provider/transaction/operations/import.d.ts +5 -0
  347. package/lib/provider/transaction/operations/import.d.ts.map +1 -0
  348. package/lib/provider/transaction/operations/import.js +92 -0
  349. package/lib/provider/transaction/operations/import.js.map +1 -0
  350. package/lib/provider/transaction/operations/remove.d.ts +4 -0
  351. package/lib/provider/transaction/operations/remove.d.ts.map +1 -0
  352. package/lib/provider/transaction/operations/remove.js +164 -0
  353. package/lib/provider/transaction/operations/remove.js.map +1 -0
  354. package/lib/provider/transaction/recovery/failure-recovery.d.ts +32 -0
  355. package/lib/provider/transaction/recovery/failure-recovery.d.ts.map +1 -0
  356. package/lib/provider/transaction/recovery/failure-recovery.js +147 -0
  357. package/lib/provider/transaction/recovery/failure-recovery.js.map +1 -0
  358. package/lib/provider/transaction/recovery/recover.d.ts +4 -0
  359. package/lib/provider/transaction/recovery/recover.d.ts.map +1 -0
  360. package/lib/provider/transaction/recovery/recover.js +162 -0
  361. package/lib/provider/transaction/recovery/recover.js.map +1 -0
  362. package/lib/provider/transaction/support/admission.d.ts +7 -0
  363. package/lib/provider/transaction/support/admission.d.ts.map +1 -0
  364. package/lib/provider/transaction/support/admission.js +90 -0
  365. package/lib/provider/transaction/support/admission.js.map +1 -0
  366. package/lib/provider/transaction/support/inspection.d.ts +11 -0
  367. package/lib/provider/transaction/support/inspection.d.ts.map +1 -0
  368. package/lib/provider/transaction/support/inspection.js +51 -0
  369. package/lib/provider/transaction/support/inspection.js.map +1 -0
  370. package/lib/provider/transaction/support/journal.d.ts +12 -0
  371. package/lib/provider/transaction/support/journal.d.ts.map +1 -0
  372. package/lib/provider/transaction/support/journal.js +72 -0
  373. package/lib/provider/transaction/support/journal.js.map +1 -0
  374. package/lib/provider/transaction/support/locking.d.ts +4 -0
  375. package/lib/provider/transaction/support/locking.d.ts.map +1 -0
  376. package/lib/provider/transaction/support/locking.js +11 -0
  377. package/lib/provider/transaction/support/locking.js.map +1 -0
  378. package/lib/provider/transaction/support/path-safety.d.ts +11 -0
  379. package/lib/provider/transaction/support/path-safety.d.ts.map +1 -0
  380. package/lib/provider/transaction/support/path-safety.js +82 -0
  381. package/lib/provider/transaction/support/path-safety.js.map +1 -0
  382. package/lib/provider/transaction/support/paths.d.ts +10 -0
  383. package/lib/provider/transaction/support/paths.d.ts.map +1 -0
  384. package/lib/provider/transaction/support/paths.js +68 -0
  385. package/lib/provider/transaction/support/paths.js.map +1 -0
  386. package/lib/provider/transaction/support/publication.d.ts +9 -0
  387. package/lib/provider/transaction/support/publication.d.ts.map +1 -0
  388. package/lib/provider/transaction/support/publication.js +92 -0
  389. package/lib/provider/transaction/support/publication.js.map +1 -0
  390. package/lib/provider/transaction/types.d.ts +38 -0
  391. package/lib/provider/transaction/types.d.ts.map +1 -0
  392. package/lib/provider/transaction/types.js +2 -0
  393. package/lib/provider/transaction/types.js.map +1 -0
  394. package/lib/provider/types.d.ts +22 -3
  395. package/lib/provider/types.d.ts.map +1 -1
  396. package/lib/provider/types.js +1 -1
  397. package/lib/provider/types.js.map +1 -1
  398. package/lib/provider/worktree-lifecycle.d.ts +19 -0
  399. package/lib/provider/worktree-lifecycle.d.ts.map +1 -0
  400. package/lib/provider/worktree-lifecycle.js +44 -0
  401. package/lib/provider/worktree-lifecycle.js.map +1 -0
  402. package/lib/typert.host.js +269 -30
  403. package/lib/typert.remote-client.d.ts +10 -0
  404. package/lib/typert.remote-client.d.ts.map +1 -1
  405. package/lib/typert.remote-client.js +269 -30
  406. package/package.json +48 -34
  407. package/lib/client/WorktreeContext.d.ts.map +0 -1
  408. package/lib/client/WorktreeContext.js.map +0 -1
  409. package/lib/client/WorktreeHeroContext.d.ts.map +0 -1
  410. package/lib/client/WorktreeHeroContext.js.map +0 -1
  411. package/lib/client/WorktreeModeAction.d.ts.map +0 -1
  412. package/lib/client/WorktreeModeAction.js.map +0 -1
  413. package/lib/client/WorktreeOverlay.d.ts.map +0 -1
  414. package/lib/client/WorktreeOverlay.js.map +0 -1
  415. package/lib/client/navigation.d.ts.map +0 -1
  416. package/lib/client/navigation.js.map +0 -1
  417. package/lib/client/overlay-bounds.d.ts.map +0 -1
  418. package/lib/client/overlay-bounds.js.map +0 -1
  419. package/lib/client/session-view.d.ts.map +0 -1
  420. package/lib/client/session-view.js.map +0 -1
  421. package/lib/client/sidebar-overlay-geometry.d.ts.map +0 -1
  422. package/lib/client/sidebar-overlay-geometry.js.map +0 -1
  423. package/lib/client/view-mode-store.d.ts.map +0 -1
  424. package/lib/client/view-mode-store.js.map +0 -1
  425. package/lib/client/view-mode.d.ts.map +0 -1
  426. package/lib/client/view-mode.js.map +0 -1
  427. package/lib/client/virtual-workspace-membership.d.ts +0 -27
  428. package/lib/client/virtual-workspace-membership.d.ts.map +0 -1
  429. package/lib/client/virtual-workspace-membership.js +0 -106
  430. package/lib/client/virtual-workspace-membership.js.map +0 -1
  431. package/lib/client/worktree-context-store.d.ts.map +0 -1
  432. package/lib/client/worktree-context-store.js.map +0 -1
  433. package/lib/client/worktree-context.d.ts.map +0 -1
  434. package/lib/client/worktree-context.js.map +0 -1
  435. package/lib/client/worktree-error-copy.d.ts.map +0 -1
  436. package/lib/client/worktree-error-copy.js.map +0 -1
  437. package/lib/client/worktree-expand-state.d.ts.map +0 -1
  438. package/lib/client/worktree-expand-state.js.map +0 -1
  439. package/lib/client/worktree-permission-icon.d.ts.map +0 -1
  440. package/lib/client/worktree-permission-icon.js.map +0 -1
  441. package/lib/client/worktree-permission.d.ts.map +0 -1
  442. package/lib/client/worktree-permission.js.map +0 -1
  443. package/lib/client/worktree-session-fork.d.ts.map +0 -1
  444. package/lib/client/worktree-session-fork.js +0 -174
  445. package/lib/client/worktree-session-fork.js.map +0 -1
  446. package/lib/client/worktree-session-order.d.ts.map +0 -1
  447. package/lib/client/worktree-session-order.js.map +0 -1
  448. package/lib/client/worktree-session-position.d.ts.map +0 -1
  449. package/lib/client/worktree-session-position.js.map +0 -1
  450. package/lib/client/worktree-session.d.ts.map +0 -1
  451. package/lib/client/worktree-session.js.map +0 -1
  452. package/lib/client/worktree-surface-dialogs.d.ts.map +0 -1
  453. package/lib/client/worktree-surface-dialogs.js.map +0 -1
  454. package/lib/client/worktree-surface-rows.d.ts.map +0 -1
  455. package/lib/client/worktree-surface-rows.js.map +0 -1
  456. package/lib/client/worktree-surface-selectors.d.ts.map +0 -1
  457. package/lib/client/worktree-surface-selectors.js.map +0 -1
  458. package/lib/client/worktree-surface-types.d.ts.map +0 -1
  459. package/lib/client/worktree-surface-types.js +0 -2
  460. package/lib/client/worktree-surface-types.js.map +0 -1
  461. package/lib/client/worktree-view-actions.d.ts.map +0 -1
  462. package/lib/client/worktree-view-actions.js.map +0 -1
  463. package/lib/client/worktree-view-errors.d.ts.map +0 -1
  464. package/lib/client/worktree-view-errors.js.map +0 -1
  465. package/lib/client/worktree-view-read.d.ts.map +0 -1
  466. package/lib/client/worktree-view-read.js.map +0 -1
  467. package/lib/client/worktree-view.d.ts.map +0 -1
  468. package/lib/client/worktree-view.js.map +0 -1
  469. package/lib/provider/git.d.ts.map +0 -1
  470. package/lib/provider/git.js.map +0 -1
  471. package/lib/provider/mutation-lock.d.ts.map +0 -1
  472. package/lib/provider/mutation-lock.js.map +0 -1
  473. package/lib/provider/repository-fingerprint.d.ts.map +0 -1
  474. package/lib/provider/repository-fingerprint.js.map +0 -1
  475. package/lib/provider/sidecar-persistence.d.ts.map +0 -1
  476. package/lib/provider/sidecar-persistence.js.map +0 -1
  477. package/lib/provider/sidecar-schema.d.ts.map +0 -1
  478. package/lib/provider/sidecar-schema.js.map +0 -1
  479. package/lib/provider/sidecar.d.ts.map +0 -1
  480. package/lib/provider/sidecar.js.map +0 -1
  481. package/lib/provider/subprocess.d.ts.map +0 -1
  482. package/lib/provider/subprocess.js.map +0 -1
  483. package/lib/provider/transaction.d.ts +0 -65
  484. package/lib/provider/transaction.d.ts.map +0 -1
  485. package/lib/provider/transaction.js +0 -1011
  486. package/lib/provider/transaction.js.map +0 -1
  487. /package/lib/client/{overlay-bounds.d.ts → overlay/overlay-bounds.d.ts} +0 -0
  488. /package/lib/client/{overlay-bounds.js → overlay/overlay-bounds.js} +0 -0
  489. /package/lib/client/{sidebar-overlay-geometry.d.ts → overlay/sidebar-overlay-geometry.d.ts} +0 -0
  490. /package/lib/client/{sidebar-overlay-geometry.js → overlay/sidebar-overlay-geometry.js} +0 -0
  491. /package/lib/client/{worktree-permission-icon.d.ts → permission/worktree-permission-icon.d.ts} +0 -0
  492. /package/lib/client/{worktree-permission-icon.js → permission/worktree-permission-icon.js} +0 -0
  493. /package/lib/client/{worktree-permission.d.ts → permission/worktree-permission.d.ts} +0 -0
  494. /package/lib/client/{worktree-permission.js → permission/worktree-permission.js} +0 -0
  495. /package/lib/client/{session-view.d.ts → session/session-view.d.ts} +0 -0
  496. /package/lib/client/{session-view.js → session/session-view.js} +0 -0
  497. /package/lib/client/{worktree-session-order.js → session/worktree-session-order.js} +0 -0
  498. /package/lib/client/{worktree-session-position.d.ts → session/worktree-session-position.d.ts} +0 -0
  499. /package/lib/client/{worktree-session-position.js → session/worktree-session-position.js} +0 -0
  500. /package/lib/client/{navigation.d.ts → view/navigation.d.ts} +0 -0
  501. /package/lib/client/{navigation.js → view/navigation.js} +0 -0
  502. /package/lib/client/{worktree-error-copy.js → view/worktree-error-copy.js} +0 -0
  503. /package/lib/client/{worktree-view-errors.d.ts → view/worktree-view-errors.d.ts} +0 -0
  504. /package/lib/client/{worktree-view-errors.js → view/worktree-view-errors.js} +0 -0
  505. /package/lib/client/{worktree-view.d.ts → view/worktree-view.d.ts} +0 -0
  506. /package/lib/client/{worktree-view.js → view/worktree-view.js} +0 -0
  507. /package/lib/provider/{repository-fingerprint.js → git/repository-fingerprint.js} +0 -0
  508. /package/lib/provider/{mutation-lock.d.ts → sidecar/mutation-lock.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-mode-store.js","sourceRoot":"","sources":["../../../src/client/view/view-mode-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0B,MAAM,+BAA+B,CAAC;AACpF,OAAO,EACL,8BAA8B,GAG/B,MAAM,gBAAgB,CAAC;AAExB,sFAAsF;AACtF,MAAM,UAAU,uBAAuB;IAIrC,OAAO,WAAW,CAAC;QACjB,IAAI,EAAE,GAAsB,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QAClE,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE;YACP,WAAW,EAAE,CAAC,KAAK,EAAE,IAAmC,EAAE,EAAE;gBAC1D,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -28,23 +28,37 @@ export declare function unboundSessionIds(sessionIds: readonly string[], boundSe
28
28
  * `previousBindings` are removed first so the same function can also undo a
29
29
  * projection after a binding is deleted or the plugin is disposed.
30
30
  */
31
+ interface WorkspaceMembershipLike {
32
+ readonly workspaceId: string;
33
+ readonly sessionIds: readonly string[];
34
+ }
31
35
  export declare function projectVirtualWorkspaceMembership<T extends {
32
- readonly items: readonly WorkspaceLike[];
36
+ readonly items: readonly WorkspaceMembershipLike[];
33
37
  }>(snapshot: T, previousBindings: readonly VirtualWorkspaceBinding[], nextBindings: readonly VirtualWorkspaceBinding[]): T;
34
- interface WorkspaceLike {
38
+ export interface WorkspaceLike {
35
39
  readonly workspaceId: string;
36
40
  readonly sessionIds: readonly string[];
41
+ readonly createdAt: string;
37
42
  }
38
- interface WorkspaceListLike {
43
+ export interface WorkspaceListLike {
39
44
  readonly items: readonly WorkspaceLike[];
40
- readonly recentWorkspaceId?: string;
41
45
  }
42
- interface SessionListLike {
46
+ export interface SessionLike {
47
+ readonly updatedAt?: number;
48
+ }
49
+ export interface SessionListLike {
43
50
  readonly current?: string;
51
+ readonly byId: Readonly<Record<string, SessionLike | undefined>>;
44
52
  }
53
+ /**
54
+ * Derive the most recent Workspace from rc.1 Session/Workspace metadata.
55
+ * Host order is retained when timestamps tie, so equal activity never causes
56
+ * the native Workspace order to oscillate.
57
+ */
58
+ export declare function deriveRecentWorkspaceId(workspaces: WorkspaceListLike, sessionsById: Readonly<Record<string, SessionLike | undefined>>): string | undefined;
45
59
  /**
46
60
  * Select the initial Worktree surface Workspace without navigating DSH:
47
- * current Session membership wins, then DSH recency, then the first available
61
+ * current Session membership wins, then derived DSH recency, then the first available
48
62
  * Workspace keeps the surface usable in an empty/reconnecting fixture.
49
63
  */
50
64
  export declare function initialWorkspaceId(workspaces: WorkspaceListLike, sessions: SessionListLike): string | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-mode.d.ts","sourceRoot":"","sources":["../../../src/client/view/view-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,UAAU,CAAC;AAEhE,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,kCAAkC,CAAC;AAE9E,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG;IACjE,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzE,CAAC;AAEF,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,OAAO,EAClB,wBAAwB,EAAE,OAAO,GAChC,gBAAgB,CAGlB;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,SAAS,MAAM,EAAE,CAMnB;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,SAAS,MAAM,EAAE,CAGnB;AAED;;;;GAIG;AACH,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,wBAAgB,iCAAiC,CAC/C,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAA;CAAE,EAEhE,QAAQ,EAAE,CAAC,EACX,gBAAgB,EAAE,SAAS,uBAAuB,EAAE,EACpD,YAAY,EAAE,SAAS,uBAAuB,EAAE,GAC/C,CAAC,CA6BH;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC;CAClE;AAWD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC,GAC9D,MAAM,GAAG,SAAS,CAiBpB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,eAAe,GACxB,MAAM,GAAG,SAAS,CAWpB"}
@@ -24,11 +24,6 @@ export function unboundSessionIds(sessionIds, boundSessionIds) {
24
24
  const bound = new Set(boundSessionIds);
25
25
  return sessionIds.filter((sessionId) => !bound.has(sessionId));
26
26
  }
27
- /**
28
- * Apply a browser-only membership delta to a DSH Workspace list snapshot.
29
- * `previousBindings` are removed first so the same function can also undo a
30
- * projection after a binding is deleted or the plugin is disposed.
31
- */
32
27
  export function projectVirtualWorkspaceMembership(snapshot, previousBindings, nextBindings) {
33
28
  const previousSessionIds = new Set(previousBindings.map((binding) => binding.sessionId));
34
29
  const nextByWorkspace = new Map();
@@ -55,9 +50,40 @@ export function projectVirtualWorkspaceMembership(snapshot, previousBindings, ne
55
50
  return snapshot;
56
51
  return { ...snapshot, items };
57
52
  }
53
+ function validTimestamp(value) {
54
+ return typeof value === 'number' && Number.isFinite(value);
55
+ }
56
+ function createdAtTimestamp(createdAt) {
57
+ const timestamp = Date.parse(createdAt);
58
+ return Number.isFinite(timestamp) ? timestamp : undefined;
59
+ }
60
+ /**
61
+ * Derive the most recent Workspace from rc.1 Session/Workspace metadata.
62
+ * Host order is retained when timestamps tie, so equal activity never causes
63
+ * the native Workspace order to oscillate.
64
+ */
65
+ export function deriveRecentWorkspaceId(workspaces, sessionsById) {
66
+ let recentWorkspaceId;
67
+ let recentTimestamp = Number.NEGATIVE_INFINITY;
68
+ for (const workspace of workspaces.items) {
69
+ let workspaceTimestamp;
70
+ for (const sessionId of workspace.sessionIds) {
71
+ const updatedAt = sessionsById[sessionId]?.updatedAt;
72
+ if (validTimestamp(updatedAt)) {
73
+ workspaceTimestamp = Math.max(workspaceTimestamp ?? updatedAt, updatedAt);
74
+ }
75
+ }
76
+ workspaceTimestamp ??= createdAtTimestamp(workspace.createdAt);
77
+ if (workspaceTimestamp === undefined || workspaceTimestamp <= recentTimestamp)
78
+ continue;
79
+ recentWorkspaceId = workspace.workspaceId;
80
+ recentTimestamp = workspaceTimestamp;
81
+ }
82
+ return recentWorkspaceId;
83
+ }
58
84
  /**
59
85
  * Select the initial Worktree surface Workspace without navigating DSH:
60
- * current Session membership wins, then DSH recency, then the first available
86
+ * current Session membership wins, then derived DSH recency, then the first available
61
87
  * Workspace keeps the surface usable in an empty/reconnecting fixture.
62
88
  */
63
89
  export function initialWorkspaceId(workspaces, sessions) {
@@ -67,10 +93,9 @@ export function initialWorkspaceId(workspaces, sessions) {
67
93
  if (currentWorkspace !== undefined)
68
94
  return currentWorkspace.workspaceId;
69
95
  }
70
- if (workspaces.recentWorkspaceId !== undefined &&
71
- workspaces.items.some((workspace) => workspace.workspaceId === workspaces.recentWorkspaceId)) {
72
- return workspaces.recentWorkspaceId;
73
- }
96
+ const recentWorkspaceId = deriveRecentWorkspaceId(workspaces, sessions.byId);
97
+ if (recentWorkspaceId !== undefined)
98
+ return recentWorkspaceId;
74
99
  return workspaces.items[0]?.workspaceId;
75
100
  }
76
101
  //# sourceMappingURL=view-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-mode.js","sourceRoot":"","sources":["../../../src/client/view/view-mode.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { TranslateNS } from '@deepseek-ai/dsh-client-ui-slots';
2
- import type { WorktreePermissionResult } from '../contract/index.js';
2
+ import type { WorktreePermissionResult } from '../../contract/index.js';
3
3
  import type { WorktreeViewError } from './worktree-view.js';
4
- import { WORKTREE_NS } from './locales.js';
4
+ import { WORKTREE_NS } from '../locales.js';
5
5
  type WorktreeTranslate = TranslateNS<typeof WORKTREE_NS>;
6
6
  export declare function formatWorktreePermissionNotice(result: WorktreePermissionResult, t: WorktreeTranslate): string;
7
7
  export declare function formatWorktreeViewError(error: WorktreeViewError, t: WorktreeTranslate): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-error-copy.d.ts","sourceRoot":"","sources":["../../../src/client/view/worktree-error-copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,iBAAiB,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,CAAC;AAWzD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,wBAAwB,EAChC,CAAC,EAAE,iBAAiB,GACnB,MAAM,CAWR;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,EACxB,CAAC,EAAE,iBAAiB,GACnB,MAAM,CAqER"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-error-copy.js","sourceRoot":"","sources":["../../../src/client/view/worktree-error-copy.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { createSnapshotStore as runtimeCreateSnapshotStore, SnapshotStore } from '@deepseek-ai/dsh-client-runtime/client';
1
+ import type { createSnapshotStore as dshCreateSnapshotStore, SnapshotStore } from '@deepseek-ai/dsh-client-store';
2
2
  /** Browser-local storage identity; never sent to DSH or the plugin sidecar. */
3
3
  export declare const WORKTREE_EXPAND_STATE_STORAGE_KEY = "clutch-dsh-worktree.expand-state";
4
4
  /** Persisted structural exceptions; absent IDs are expanded. */
@@ -12,6 +12,7 @@ export interface WorktreeExpandStateActions {
12
12
  toggleWorkspace: (workspaceId: string) => void;
13
13
  toggleMain: (workspaceId: string) => void;
14
14
  toggleWorktree: (worktreeId: string) => void;
15
+ collapseAll: (workspaceIds: readonly string[], worktreeIds?: readonly string[]) => void;
15
16
  retain: (workspaceIds: readonly string[], worktreeIds: readonly string[]) => void;
16
17
  }
17
18
  /** Observable expand state plus browser-facing actions. */
@@ -19,10 +20,11 @@ export interface WorktreeExpandStateStore extends SnapshotStore<WorktreeExpandSt
19
20
  readonly actions: WorktreeExpandStateActions;
20
21
  }
21
22
  /**
22
- * The public rc.8 SnapshotStore factory consumed by this browser-local state.
23
- * Task 3's client entry must pass the runtime `createSnapshotStore` here.
23
+ * The public rc.1 SnapshotStore factory consumed by this browser-local state.
24
+ * Client entry passes DSH's `createSnapshotStore` here so this state remains
25
+ * independent from the concrete DSH UI runtime.
24
26
  */
25
- export type SnapshotStoreFactory = typeof runtimeCreateSnapshotStore;
27
+ export type SnapshotStoreFactory = typeof dshCreateSnapshotStore;
26
28
  /** Turn any persisted JSON value into the current state shape. */
27
29
  export declare function normalizeWorktreeExpandState(value: unknown): WorktreeExpandState;
28
30
  export declare function isWorkspaceExpanded(state: WorktreeExpandState, workspaceId: string): boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-expand-state.d.ts","sourceRoot":"","sources":["../../../src/client/view/worktree-expand-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,IAAI,sBAAsB,EAC7C,aAAa,EACd,MAAM,+BAA+B,CAAC;AAEvC,+EAA+E;AAC/E,eAAO,MAAM,iCAAiC,qCAAqC,CAAC;AAEpF,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC5C;AAED,kEAAkE;AAClE,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IACxF,MAAM,EAAE,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CACnF;AAED,2DAA2D;AAC3D,MAAM,WAAW,wBAAyB,SAAQ,aAAa,CAAC,mBAAmB,CAAC;IAClF,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,sBAAsB,CAAC;AAqBjE,kEAAkE;AAClE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAOhF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAE5F;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEvF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAE1F;AAcD,6EAA6E;AAC7E,wBAAgB,8BAA8B,CAC5C,oBAAoB,EAAE,oBAAoB,GACzC,wBAAwB,CA6C1B"}
@@ -70,6 +70,17 @@ export function createWorktreeExpandStateStore(snapshotStoreFactory) {
70
70
  toggleWorktree: (worktreeId) => {
71
71
  store.update((draft) => { toggle(draft.collapsedWorktreeIds, worktreeId); });
72
72
  },
73
+ collapseAll: (workspaceIds, worktreeIds = []) => {
74
+ store.update((draft) => {
75
+ for (const id of workspaceIds) {
76
+ draft.collapsedWorkspaceIds[id] = true;
77
+ draft.collapsedMainWorkspaceIds[id] = true;
78
+ }
79
+ for (const id of worktreeIds) {
80
+ draft.collapsedWorktreeIds[id] = true;
81
+ }
82
+ });
83
+ },
73
84
  retain: (workspaceIds, worktreeIds) => {
74
85
  store.update((draft) => {
75
86
  retain(draft.collapsedWorkspaceIds, workspaceIds);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-expand-state.js","sourceRoot":"","sources":["../../../src/client/view/worktree-expand-state.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { WorktreeManager, WorktreePermissionManager, WorktreePermissionResult, WorktreeRecord } from '../contract/index.js';
1
+ import type { WorktreeManager, WorktreeRecord } from '../../contract/index.js';
2
2
  /** Generate a short, editable default branch name without colliding with known local names. */
3
3
  export declare function createDefaultWorktreeName(existingNames: Iterable<string>, randomUuid?: () => string): string;
4
4
  /** Generate the next available numeric sibling name for a selected Worktree. */
@@ -17,16 +17,22 @@ export type WorktreeViewAction = {
17
17
  } | {
18
18
  readonly type: 'removeWorktree';
19
19
  readonly input: Parameters<WorktreeManager['removeWorktree']>[0];
20
+ } | {
21
+ readonly type: 'unarchiveWorktree';
22
+ readonly input: Parameters<WorktreeManager['unarchiveWorktree']>[0];
23
+ } | {
24
+ readonly type: 'cleanWorktree';
25
+ readonly input: Parameters<WorktreeManager['cleanWorktree']>[0];
26
+ } | {
27
+ readonly type: 'forgetWorktree';
28
+ readonly input: Parameters<WorktreeManager['forgetWorktree']>[0];
20
29
  };
21
30
  /** Resolve a row-half drop target to native-style optional before-anchor semantics. */
22
31
  export declare function resolveWorktreeMove(worktreeIds: readonly string[], sourceWorktreeId: string, targetWorktreeId: string, half: 'before' | 'after'): {
23
32
  readonly beforeWorktreeId?: string;
24
33
  } | undefined;
25
34
  /** Keep mutation routing in the browser Consumer while leaving wire details to the adapter. */
26
- export declare function executeWorktreeAction(manager: WorktreeManager, action: WorktreeViewAction, permission?: Pick<WorktreePermissionManager, 'normalizeDetachedWorktreePermissions'>, onPermissionResult?: (input: {
27
- readonly workspaceId: string;
28
- readonly worktreeId: string;
29
- }, result: WorktreePermissionResult) => void): Promise<WorktreeRecord | void>;
35
+ export declare function executeWorktreeAction(manager: WorktreeManager, action: WorktreeViewAction): Promise<WorktreeRecord | void>;
30
36
  /**
31
37
  * Create a normal DSH Session at a Worktree cwd, then add the external binding.
32
38
  * A binding failure deliberately leaves the DSH-created Session intact.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-view-actions.d.ts","sourceRoot":"","sources":["../../../src/client/view/worktree-view-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACf,MAAM,yBAAyB,CAAC;AASjC,+FAA+F;AAC/F,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC/B,UAAU,GAAE,MAAM,MAA0B,GAC3C,MAAM,CASR;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC9B,MAAM,CAeR;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClE,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClE,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClE,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrE,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjE,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC;AAEN,uFAAuF;AACvF,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,QAAQ,GAAG,OAAO,GACvB;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAepD;AAED,+FAA+F;AAC/F,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAuBhC;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG;IACpF,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD,GAAG,OAAO,CAAC,MAAM,CAAC,CAclB"}
@@ -53,7 +53,7 @@ export function resolveWorktreeMove(worktreeIds, sourceWorktreeId, targetWorktre
53
53
  return beforeWorktreeId === undefined ? {} : { beforeWorktreeId };
54
54
  }
55
55
  /** Keep mutation routing in the browser Consumer while leaving wire details to the adapter. */
56
- export async function executeWorktreeAction(manager, action, permission, onPermissionResult) {
56
+ export async function executeWorktreeAction(manager, action) {
57
57
  if (action.type === 'createWorktree') {
58
58
  return manager.createWorktree(action.input);
59
59
  }
@@ -62,16 +62,18 @@ export async function executeWorktreeAction(manager, action, permission, onPermi
62
62
  }
63
63
  if (action.type === 'removeWorktree') {
64
64
  await manager.removeWorktree(action.input);
65
- const result = await permission?.normalizeDetachedWorktreePermissions({
66
- workspaceId: action.input.workspaceId,
67
- worktreeId: action.input.worktreeId,
68
- });
69
- if (result !== undefined) {
70
- onPermissionResult?.({
71
- workspaceId: action.input.workspaceId,
72
- worktreeId: action.input.worktreeId,
73
- }, result);
74
- }
65
+ return;
66
+ }
67
+ if (action.type === 'unarchiveWorktree') {
68
+ await manager.unarchiveWorktree(action.input);
69
+ return;
70
+ }
71
+ if (action.type === 'cleanWorktree') {
72
+ await manager.cleanWorktree(action.input);
73
+ return;
74
+ }
75
+ if (action.type === 'forgetWorktree') {
76
+ await manager.forgetWorktree(action.input);
75
77
  return;
76
78
  }
77
79
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-view-actions.js","sourceRoot":"","sources":["../../../src/client/view/worktree-view-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-view-errors.d.ts","sourceRoot":"","sources":["../../../src/client/view/worktree-view-errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,iFAAiF;AACjF,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;gBAEZ,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CA0B9C;AAED,2FAA2F;AAC3F,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,QAAQ;IAC1B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;gBAEZ,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO;CAYxE;AASD,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAsBrE;AAED,wFAAwF;AACxF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAK/E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-view-errors.js","sourceRoot":"","sources":["../../../src/client/view/worktree-view-errors.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { BranchRecord, SessionBinding, WorktreeManager, WorktreeRecord } from '../contract/index.js';
1
+ import type { BranchRecord, SessionBinding, WorktreeManager, WorktreeRecord } from '../../contract/index.js';
2
2
  import { type WorktreeViewError } from './worktree-view-errors.js';
3
3
  export type WorktreeGitReadiness = {
4
4
  readonly status: 'ready';
@@ -23,15 +23,25 @@ export interface WorktreeViewData {
23
23
  export interface WorktreeWorkspaceView extends WorktreeViewData {
24
24
  readonly workspaceId: string;
25
25
  }
26
+ export interface WorktreeViewReader {
27
+ /** Mark one Workspace stale for the next generation. */
28
+ invalidate(workspaceId: string, options?: {
29
+ readonly reuseInFlight?: boolean;
30
+ }): void;
31
+ /** Return one complete Workspace view, sharing its current generation. */
32
+ read(workspaceId: string): Promise<WorktreeWorkspaceView>;
33
+ /** Read exactly this ordered set; duplicate IDs share one read. */
34
+ readMany(workspaceIds: readonly string[]): Promise<readonly WorktreeWorkspaceView[]>;
35
+ /** Make cache entries and late callbacks inert. */
36
+ dispose(): void;
37
+ }
26
38
  /** Merge one freshly read Workspace projection without clearing other ready views. */
27
39
  export declare function mergeWorktreeView(views: readonly WorktreeWorkspaceView[], nextView: WorktreeWorkspaceView): readonly WorktreeWorkspaceView[];
28
- export interface LoadWorktreeViewsOptions {
29
- readonly invalidateContext?: boolean;
30
- readonly invalidateWorktreeContext?: () => Promise<void>;
31
- }
40
+ /** Merge explicit Workspace updates while preserving current order and ready references. */
41
+ export declare function mergeWorktreeViews(existing: readonly WorktreeWorkspaceView[], workspaceIds: readonly string[], updates: readonly WorktreeWorkspaceView[]): readonly WorktreeWorkspaceView[];
32
42
  export interface WorktreeModalViewLoader {
33
43
  invalidate(): void;
34
- load(manager: WorktreeManager, workspaceId: string, onSuccess: (view: WorktreeWorkspaceView) => void, onError: (error: WorktreeViewError) => void): Promise<void>;
44
+ load(workspaceId: string, onSuccess: (view: WorktreeWorkspaceView) => void, onError: (error: WorktreeViewError) => void): Promise<void>;
35
45
  }
36
46
  /** Reuse the previous ID snapshot when DSH republishes equivalent Workspace items. */
37
47
  export declare function stableWorkspaceIds(previous: readonly string[], next: readonly string[]): readonly string[];
@@ -48,12 +58,14 @@ export declare function selectDefaultBaseBranch(branches: readonly BranchRecord[
48
58
  export declare function reconcileBaseBranchSelection(selectedBranch: string, branches: readonly BranchRecord[]): string;
49
59
  /** Return copyable, read-only setup commands for a Git readiness state. */
50
60
  export declare function worktreeSetupCommands(status: WorktreeGitReadiness['status']): readonly string[];
61
+ /** Share complete Workspace reads without allowing stale generations to repopulate the cache. */
62
+ export declare function createWorktreeViewReader(manager: WorktreeManager): WorktreeViewReader;
51
63
  /** Read all three Worktree projections needed by the surface in one refresh. */
52
64
  export declare function loadWorktreeView(manager: WorktreeManager, workspaceId: string): Promise<WorktreeViewData>;
53
- /** Isolate modal-target reads from full-surface refresh generations. */
54
- export declare function createWorktreeModalViewLoader(): WorktreeModalViewLoader;
65
+ /** Isolate modal-target callbacks while sharing the Client Workspace reader. */
66
+ export declare function createWorktreeModalViewLoader(reader: WorktreeViewReader): WorktreeModalViewLoader;
55
67
  /** Load one independent projection per DSH Workspace for the flat sidebar hierarchy. */
56
- export declare function loadWorktreeViews(manager: WorktreeManager, workspaceIds: readonly string[], options?: LoadWorktreeViewsOptions): Promise<readonly WorktreeWorkspaceView[]>;
68
+ export declare function loadWorktreeViews(manager: WorktreeManager, workspaceIds: readonly string[]): Promise<readonly WorktreeWorkspaceView[]>;
57
69
  /** Hide DSH-archived Sessions from the browser-local Worktree projection. */
58
70
  export declare function filterArchivedSessionIds(sessionIds: readonly string[], archivedSessionIds: readonly string[]): readonly string[];
59
71
  //# sourceMappingURL=worktree-view-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-view-read.d.ts","sourceRoot":"","sources":["../../../src/client/view/worktree-view-read.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,16 @@ export function mergeWorktreeView(views, nextView) {
8
8
  merged[index] = nextView;
9
9
  return merged;
10
10
  }
11
+ /** Merge explicit Workspace updates while preserving current order and ready references. */
12
+ export function mergeWorktreeViews(existing, workspaceIds, updates) {
13
+ const byWorkspaceId = new Map(existing.map((view) => [view.workspaceId, view]));
14
+ for (const update of updates)
15
+ byWorkspaceId.set(update.workspaceId, update);
16
+ return [...new Set(workspaceIds)].flatMap((workspaceId) => {
17
+ const view = byWorkspaceId.get(workspaceId);
18
+ return view === undefined ? [] : [view];
19
+ });
20
+ }
11
21
  /** Reuse the previous ID snapshot when DSH republishes equivalent Workspace items. */
12
22
  export function stableWorkspaceIds(previous, next) {
13
23
  if (previous.length !== next.length)
@@ -98,6 +108,68 @@ function readinessFromBranchError(error) {
98
108
  }
99
109
  return undefined;
100
110
  }
111
+ /** Share complete Workspace reads without allowing stale generations to repopulate the cache. */
112
+ export function createWorktreeViewReader(manager) {
113
+ const entries = new Map();
114
+ let disposed = false;
115
+ const entryFor = (workspaceId) => {
116
+ const current = entries.get(workspaceId);
117
+ if (current !== undefined)
118
+ return current;
119
+ const created = { generation: 0, stale: false };
120
+ entries.set(workspaceId, created);
121
+ return created;
122
+ };
123
+ const read = (workspaceId) => {
124
+ if (disposed)
125
+ return Promise.reject(new Error('Worktree view reader disposed'));
126
+ const entry = entryFor(workspaceId);
127
+ if (!entry.stale && entry.view !== undefined)
128
+ return Promise.resolve(entry.view);
129
+ if (entry.inFlight?.generation === entry.generation)
130
+ return entry.inFlight.promise;
131
+ const generation = entry.generation;
132
+ const promise = loadWorktreeView(manager, workspaceId)
133
+ .then((data) => {
134
+ const view = { workspaceId, ...data };
135
+ if (!disposed && entries.get(workspaceId) === entry && entry.generation === generation) {
136
+ entry.view = view;
137
+ entry.stale = false;
138
+ }
139
+ return view;
140
+ })
141
+ .finally(() => {
142
+ if (entry.inFlight?.promise === promise)
143
+ entry.inFlight = undefined;
144
+ });
145
+ entry.inFlight = { generation, promise };
146
+ return promise;
147
+ };
148
+ return {
149
+ invalidate(workspaceId, options) {
150
+ if (disposed)
151
+ return;
152
+ const entry = entryFor(workspaceId);
153
+ // Read-only menu opens may share a current read. Mutations must retire it.
154
+ if (options?.reuseInFlight && entry.inFlight?.generation === entry.generation)
155
+ return;
156
+ entry.generation += 1;
157
+ entry.stale = true;
158
+ entry.view = undefined;
159
+ },
160
+ read,
161
+ readMany(workspaceIds) {
162
+ const uniqueIds = [...new Set(workspaceIds)];
163
+ return Promise.all(uniqueIds.map((workspaceId) => read(workspaceId)));
164
+ },
165
+ dispose() {
166
+ if (disposed)
167
+ return;
168
+ disposed = true;
169
+ entries.clear();
170
+ },
171
+ };
172
+ }
101
173
  /** Read all three Worktree projections needed by the surface in one refresh. */
102
174
  export async function loadWorktreeView(manager, workspaceId) {
103
175
  const [worktreesResult, branchesResult, bindingsResult] = await Promise.allSettled([
@@ -130,26 +202,22 @@ export async function loadWorktreeView(manager, workspaceId) {
130
202
  : { status: 'noLocalBranch' },
131
203
  };
132
204
  }
133
- /** Isolate modal-target reads from full-surface refresh generations. */
134
- export function createWorktreeModalViewLoader() {
205
+ /** Isolate modal-target callbacks while sharing the Client Workspace reader. */
206
+ export function createWorktreeModalViewLoader(reader) {
135
207
  const guard = createWorktreeRefreshGuard();
136
208
  return {
137
209
  invalidate: guard.invalidate,
138
- load(manager, workspaceId, onSuccess, onError) {
139
- return guard.run(() => loadWorktreeView(manager, workspaceId), (data) => onSuccess({ workspaceId, ...data }), (error) => onError(toWorktreeViewError(error)));
210
+ load(workspaceId, onSuccess, onError) {
211
+ return guard.run(() => reader.read(workspaceId), onSuccess, (error) => onError(toWorktreeViewError(error)));
140
212
  },
141
213
  };
142
214
  }
143
215
  /** Load one independent projection per DSH Workspace for the flat sidebar hierarchy. */
144
- export async function loadWorktreeViews(manager, workspaceIds, options = {}) {
145
- const views = await Promise.all(workspaceIds.map(async (workspaceId) => ({
216
+ export async function loadWorktreeViews(manager, workspaceIds) {
217
+ return Promise.all(workspaceIds.map(async (workspaceId) => ({
146
218
  workspaceId,
147
219
  ...(await loadWorktreeView(manager, workspaceId)),
148
220
  })));
149
- if (options.invalidateContext !== false) {
150
- await options.invalidateWorktreeContext?.();
151
- }
152
- return views;
153
221
  }
154
222
  /** Hide DSH-archived Sessions from the browser-local Worktree projection. */
155
223
  export function filterArchivedSessionIds(sessionIds, archivedSessionIds) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-view-read.js","sourceRoot":"","sources":["../../../src/client/view/worktree-view-read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-view.d.ts","sourceRoot":"","sources":["../../../src/client/view/worktree-view.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-view.js","sourceRoot":"","sources":["../../../src/client/view/worktree-view.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
@@ -13,6 +13,11 @@ export declare const WORKTREE_CONNECTION_ENDPOINTS: Readonly<{
13
13
  createWorktree: "worktreeManager/createWorktree";
14
14
  importWorktree: "worktreeManager/importWorktree";
15
15
  removeWorktree: "worktreeManager/removeWorktree";
16
+ unarchiveWorktree: "worktreeManager/unarchiveWorktree";
17
+ cleanWorktree: "worktreeManager/cleanWorktree";
18
+ adoptWorktreeBranch: "worktreeManager/adoptWorktreeBranch";
19
+ recoverWorktrees: "worktreeManager/recoverWorktrees";
20
+ forgetWorktree: "worktreeManager/forgetWorktree";
16
21
  insertWorktreeBefore: "worktreeManager/insertWorktreeBefore";
17
22
  listBindings: "worktreeManager/listBindings";
18
23
  bindSession: "worktreeManager/bindSession";
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-connection.d.ts","sourceRoot":"","sources":["../../src/client/worktree-connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,KAAK,EAEV,eAAe,EACf,yBAAyB,EAI1B,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,EAAG,MAAe,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAYiB,CAAC;AAE5D,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qFAAqF;AACrF,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;gBAEhB,OAAO,EAAE,8BAA8B;CAOpD;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe,EAAE,yBAAyB;IAC3F,+DAA+D;IAC/D,OAAO,IAAI,IAAI,CAAC;CACjB;AA+ED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,qBAAqB,GACzB,yBAAyB,CAoD3B"}
1
+ {"version":3,"file":"worktree-connection.d.ts","sourceRoot":"","sources":["../../src/client/worktree-connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,KAAK,EAEV,eAAe,EACf,yBAAyB,EAI1B,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,EAAG,MAAe,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;EAiBiB,CAAC;AAE5D,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qFAAqF;AACrF,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;gBAEhB,OAAO,EAAE,8BAA8B;CAOpD;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe,EAAE,yBAAyB;IAC3F,+DAA+D;IAC/D,OAAO,IAAI,IAAI,CAAC;CACjB;AA+ED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,qBAAqB,GACzB,yBAAyB,CA+D3B"}
@@ -11,6 +11,11 @@ export const WORKTREE_CONNECTION_ENDPOINTS = Object.freeze({
11
11
  createWorktree: 'worktreeManager/createWorktree',
12
12
  importWorktree: 'worktreeManager/importWorktree',
13
13
  removeWorktree: 'worktreeManager/removeWorktree',
14
+ unarchiveWorktree: 'worktreeManager/unarchiveWorktree',
15
+ cleanWorktree: 'worktreeManager/cleanWorktree',
16
+ adoptWorktreeBranch: 'worktreeManager/adoptWorktreeBranch',
17
+ recoverWorktrees: 'worktreeManager/recoverWorktrees',
18
+ forgetWorktree: 'worktreeManager/forgetWorktree',
14
19
  insertWorktreeBefore: 'worktreeManager/insertWorktreeBefore',
15
20
  listBindings: 'worktreeManager/listBindings',
16
21
  bindSession: 'worktreeManager/bindSession',
@@ -132,6 +137,17 @@ export function createWorktreeConnectionAdapter(rpc) {
132
137
  async removeWorktree(input) {
133
138
  await invoke('removeWorktree', input);
134
139
  },
140
+ async unarchiveWorktree(input) {
141
+ await invoke('unarchiveWorktree', input);
142
+ },
143
+ async adoptWorktreeBranch(input) { await invoke('adoptWorktreeBranch', input); },
144
+ async recoverWorktrees(input) { await invoke('recoverWorktrees', input); },
145
+ async cleanWorktree(input) {
146
+ await invoke('cleanWorktree', input);
147
+ },
148
+ async forgetWorktree(input) {
149
+ await invoke('forgetWorktree', input);
150
+ },
135
151
  async insertWorktreeBefore(input) {
136
152
  return invoke('insertWorktreeBefore', input);
137
153
  },