@cerbur/clutch-dsh-worktree 0.1.20 → 0.1.22

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 (227) hide show
  1. package/README.md +49 -33
  2. package/README.zh.md +40 -25
  3. package/cordis.patch.yml +0 -8
  4. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  5. package/lib/client/WorktreeSurface.js +5 -4
  6. package/lib/client/WorktreeSurface.js.map +1 -1
  7. package/lib/client/dashboard/BatchManageWorktrees.d.ts +12 -0
  8. package/lib/client/dashboard/BatchManageWorktrees.d.ts.map +1 -0
  9. package/lib/client/dashboard/BatchManageWorktrees.js +77 -0
  10. package/lib/client/dashboard/BatchManageWorktrees.js.map +1 -0
  11. package/lib/client/dashboard/WorktreeDashboard.d.ts +3 -1
  12. package/lib/client/dashboard/WorktreeDashboard.d.ts.map +1 -1
  13. package/lib/client/dashboard/WorktreeDashboard.js +14 -10
  14. package/lib/client/dashboard/WorktreeDashboard.js.map +1 -1
  15. package/lib/client/dashboard/batch-manage.d.ts +12 -0
  16. package/lib/client/dashboard/batch-manage.d.ts.map +1 -0
  17. package/lib/client/dashboard/batch-manage.js +34 -0
  18. package/lib/client/dashboard/batch-manage.js.map +1 -0
  19. package/lib/client/entry.d.ts.map +1 -1
  20. package/lib/client/entry.js +22 -41
  21. package/lib/client/entry.js.map +1 -1
  22. package/lib/client/index.d.ts +0 -3
  23. package/lib/client/index.d.ts.map +1 -1
  24. package/lib/client/index.js +0 -2
  25. package/lib/client/index.js.map +1 -1
  26. package/lib/client/locales.d.ts +36 -26
  27. package/lib/client/locales.d.ts.map +1 -1
  28. package/lib/client/locales.js +36 -26
  29. package/lib/client/locales.js.map +1 -1
  30. package/lib/client/restart-notice.d.ts +1 -4
  31. package/lib/client/restart-notice.d.ts.map +1 -1
  32. package/lib/client/restart-notice.js +0 -20
  33. package/lib/client/restart-notice.js.map +1 -1
  34. package/lib/client/session/local-session.d.ts +27 -0
  35. package/lib/client/session/local-session.d.ts.map +1 -0
  36. package/lib/client/session/local-session.js +61 -0
  37. package/lib/client/session/local-session.js.map +1 -0
  38. package/lib/client/session/session-rename.d.ts.map +1 -1
  39. package/lib/client/session/session-rename.js.map +1 -1
  40. package/lib/client/session/worktree-session.d.ts +15 -36
  41. package/lib/client/session/worktree-session.d.ts.map +1 -1
  42. package/lib/client/session/worktree-session.js +124 -152
  43. package/lib/client/session/worktree-session.js.map +1 -1
  44. package/lib/client/steer/steer-activity.d.ts.map +1 -1
  45. package/lib/client/steer/steer-activity.js +2 -1
  46. package/lib/client/steer/steer-activity.js.map +1 -1
  47. package/lib/client/surface/actions/lifecycle-commands.d.ts.map +1 -1
  48. package/lib/client/surface/actions/lifecycle-commands.js +1 -28
  49. package/lib/client/surface/actions/lifecycle-commands.js.map +1 -1
  50. package/lib/client/surface/actions/useDashboardBatchManage.d.ts +9 -0
  51. package/lib/client/surface/actions/useDashboardBatchManage.d.ts.map +1 -0
  52. package/lib/client/surface/actions/useDashboardBatchManage.js +92 -0
  53. package/lib/client/surface/actions/useDashboardBatchManage.js.map +1 -0
  54. package/lib/client/surface/actions/useLifecycleActions.d.ts +3 -5
  55. package/lib/client/surface/actions/useLifecycleActions.d.ts.map +1 -1
  56. package/lib/client/surface/actions/useLifecycleActions.js +4 -47
  57. package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
  58. package/lib/client/surface/actions/useSessionActions.d.ts +1 -1
  59. package/lib/client/surface/actions/useSessionActions.d.ts.map +1 -1
  60. package/lib/client/surface/actions/useSessionActions.js +11 -20
  61. package/lib/client/surface/actions/useSessionActions.js.map +1 -1
  62. package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
  63. package/lib/client/surface/actions/useWorktreeRegistration.js +7 -14
  64. package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
  65. package/lib/client/surface/actions/worktree-cleanup-flow.d.ts +1 -2
  66. package/lib/client/surface/actions/worktree-cleanup-flow.d.ts.map +1 -1
  67. package/lib/client/surface/actions/worktree-cleanup-flow.js +1 -1
  68. package/lib/client/surface/actions/worktree-cleanup-flow.js.map +1 -1
  69. package/lib/client/surface/components/LifecycleDialogs.d.ts +1 -1
  70. package/lib/client/surface/components/LifecycleDialogs.d.ts.map +1 -1
  71. package/lib/client/surface/components/RestartToast.d.ts.map +1 -1
  72. package/lib/client/surface/components/RestartToast.js +1 -2
  73. package/lib/client/surface/components/RestartToast.js.map +1 -1
  74. package/lib/client/surface/components/SurfaceContent.d.ts +2 -2
  75. package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
  76. package/lib/client/surface/components/SurfaceContent.js +13 -24
  77. package/lib/client/surface/components/SurfaceContent.js.map +1 -1
  78. package/lib/client/surface/shared.d.ts +1 -7
  79. package/lib/client/surface/shared.d.ts.map +1 -1
  80. package/lib/client/surface/shared.js +0 -5
  81. package/lib/client/surface/shared.js.map +1 -1
  82. package/lib/client/surface/state/useLifecycleState.d.ts +1 -2
  83. package/lib/client/surface/state/useLifecycleState.d.ts.map +1 -1
  84. package/lib/client/surface/state/useLifecycleState.js +3 -6
  85. package/lib/client/surface/state/useLifecycleState.js.map +1 -1
  86. package/lib/client/surface/state/useSurfaceRefresh.d.ts +2 -1
  87. package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
  88. package/lib/client/surface/state/useSurfaceRefresh.js +66 -9
  89. package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
  90. package/lib/client/surface/state/useSurfaceSources.d.ts +1 -6
  91. package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
  92. package/lib/client/surface/state/useSurfaceSources.js +3 -22
  93. package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
  94. package/lib/client/surface/types.d.ts +8 -31
  95. package/lib/client/surface/types.d.ts.map +1 -1
  96. package/lib/client/view/worktree-error-copy.d.ts +0 -2
  97. package/lib/client/view/worktree-error-copy.d.ts.map +1 -1
  98. package/lib/client/view/worktree-error-copy.js +0 -17
  99. package/lib/client/view/worktree-error-copy.js.map +1 -1
  100. package/lib/client/view/worktree-view-errors.d.ts +0 -10
  101. package/lib/client/view/worktree-view-errors.d.ts.map +1 -1
  102. package/lib/client/view/worktree-view-errors.js +1 -22
  103. package/lib/client/view/worktree-view-errors.js.map +1 -1
  104. package/lib/client/view/worktree-view-read.d.ts +3 -1
  105. package/lib/client/view/worktree-view-read.d.ts.map +1 -1
  106. package/lib/client/view/worktree-view-read.js +42 -1
  107. package/lib/client/view/worktree-view-read.js.map +1 -1
  108. package/lib/client/worktree-connection.d.ts +5 -4
  109. package/lib/client/worktree-connection.d.ts.map +1 -1
  110. package/lib/client/worktree-connection.js +6 -4
  111. package/lib/client/worktree-connection.js.map +1 -1
  112. package/lib/client.js +3726 -3542
  113. package/lib/client.js.map +1 -1
  114. package/lib/contract/index.contract.js +2 -2
  115. package/lib/contract/index.contract.js.map +1 -1
  116. package/lib/contract/index.d.ts +13 -6
  117. package/lib/contract/index.d.ts.map +1 -1
  118. package/lib/contract/index.js +4 -4
  119. package/lib/contract/index.js.map +1 -1
  120. package/lib/contract/session-flow.d.ts +29 -0
  121. package/lib/contract/session-flow.d.ts.map +1 -0
  122. package/lib/contract/session-flow.js +2 -0
  123. package/lib/contract/session-flow.js.map +1 -0
  124. package/lib/host/dsh-read-adapter.d.ts +14 -0
  125. package/lib/host/dsh-read-adapter.d.ts.map +1 -1
  126. package/lib/host/dsh-read-adapter.js +30 -3
  127. package/lib/host/dsh-read-adapter.js.map +1 -1
  128. package/lib/host/index.d.ts +0 -4
  129. package/lib/host/index.d.ts.map +1 -1
  130. package/lib/host/index.js +0 -2
  131. package/lib/host/index.js.map +1 -1
  132. package/lib/host/remote.d.ts +2 -2
  133. package/lib/host/remote.d.ts.map +1 -1
  134. package/lib/host/remote.js +6 -7
  135. package/lib/host/remote.js.map +1 -1
  136. package/lib/host/service.d.ts +12 -3
  137. package/lib/host/service.d.ts.map +1 -1
  138. package/lib/host/service.js +63 -37
  139. package/lib/host/service.js.map +1 -1
  140. package/lib/host/session-creation.d.ts +12 -0
  141. package/lib/host/session-creation.d.ts.map +1 -0
  142. package/lib/host/session-creation.js +56 -0
  143. package/lib/host/session-creation.js.map +1 -0
  144. package/lib/index.d.ts +4 -4
  145. package/lib/index.d.ts.map +1 -1
  146. package/lib/index.js +2 -2
  147. package/lib/index.js.map +1 -1
  148. package/lib/manage/manager-sessions.d.ts +2 -2
  149. package/lib/manage/manager-sessions.d.ts.map +1 -1
  150. package/lib/manage/manager-sessions.js +30 -16
  151. package/lib/manage/manager-sessions.js.map +1 -1
  152. package/lib/manage/manager-support.d.ts +2 -1
  153. package/lib/manage/manager-support.d.ts.map +1 -1
  154. package/lib/manage/manager-support.js +21 -37
  155. package/lib/manage/manager-support.js.map +1 -1
  156. package/lib/manage/manager-worktrees.d.ts +3 -1
  157. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  158. package/lib/manage/manager-worktrees.js +41 -19
  159. package/lib/manage/manager-worktrees.js.map +1 -1
  160. package/lib/manage/manager.d.ts +5 -1
  161. package/lib/manage/manager.d.ts.map +1 -1
  162. package/lib/manage/manager.js +30 -4
  163. package/lib/manage/manager.js.map +1 -1
  164. package/lib/provider/generated-path.d.ts +7 -0
  165. package/lib/provider/generated-path.d.ts.map +1 -0
  166. package/lib/provider/generated-path.js +57 -0
  167. package/lib/provider/generated-path.js.map +1 -0
  168. package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -1
  169. package/lib/provider/sidecar/sidecar-schema.js +7 -1
  170. package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
  171. package/lib/provider/transaction/operations/create.d.ts.map +1 -1
  172. package/lib/provider/transaction/operations/create.js +2 -0
  173. package/lib/provider/transaction/operations/create.js.map +1 -1
  174. package/lib/provider/transaction/support/path-safety.d.ts.map +1 -1
  175. package/lib/provider/transaction/support/path-safety.js +5 -43
  176. package/lib/provider/transaction/support/path-safety.js.map +1 -1
  177. package/lib/provider/types.d.ts +2 -0
  178. package/lib/provider/types.d.ts.map +1 -1
  179. package/lib/provider/types.js.map +1 -1
  180. package/lib/tool/create-session.d.ts +11 -0
  181. package/lib/tool/create-session.d.ts.map +1 -0
  182. package/lib/tool/create-session.js +19 -0
  183. package/lib/tool/create-session.js.map +1 -0
  184. package/lib/tool/dispatch-session.d.ts.map +1 -1
  185. package/lib/tool/dispatch-session.js +9 -5
  186. package/lib/tool/dispatch-session.js.map +1 -1
  187. package/lib/tool/native-session.d.ts +9 -0
  188. package/lib/tool/native-session.d.ts.map +1 -1
  189. package/lib/tool/native-session.js +47 -1
  190. package/lib/tool/native-session.js.map +1 -1
  191. package/lib/typert.host.js +236 -122
  192. package/lib/typert.remote-client.d.ts +7 -5
  193. package/lib/typert.remote-client.d.ts.map +1 -1
  194. package/lib/typert.remote-client.js +236 -122
  195. package/package.json +1 -5
  196. package/lib/client/permission/worktree-permission-icon.d.ts +0 -7
  197. package/lib/client/permission/worktree-permission-icon.d.ts.map +0 -1
  198. package/lib/client/permission/worktree-permission-icon.js +0 -119
  199. package/lib/client/permission/worktree-permission-icon.js.map +0 -1
  200. package/lib/client/permission/worktree-permission.d.ts +0 -21
  201. package/lib/client/permission/worktree-permission.d.ts.map +0 -1
  202. package/lib/client/permission/worktree-permission.js +0 -78
  203. package/lib/client/permission/worktree-permission.js.map +0 -1
  204. package/lib/client/surface/components/AccessConfirmation.d.ts +0 -9
  205. package/lib/client/surface/components/AccessConfirmation.d.ts.map +0 -1
  206. package/lib/client/surface/components/AccessConfirmation.js +0 -18
  207. package/lib/client/surface/components/AccessConfirmation.js.map +0 -1
  208. package/lib/contract/worktree-permission.d.ts +0 -75
  209. package/lib/contract/worktree-permission.d.ts.map +0 -1
  210. package/lib/contract/worktree-permission.js +0 -32
  211. package/lib/contract/worktree-permission.js.map +0 -1
  212. package/lib/host/permission-preset-append.d.ts +0 -15
  213. package/lib/host/permission-preset-append.d.ts.map +0 -1
  214. package/lib/host/permission-preset-append.js +0 -63
  215. package/lib/host/permission-preset-append.js.map +0 -1
  216. package/lib/host/worktree-permission-manager.d.ts +0 -14
  217. package/lib/host/worktree-permission-manager.d.ts.map +0 -1
  218. package/lib/host/worktree-permission-manager.js +0 -115
  219. package/lib/host/worktree-permission-manager.js.map +0 -1
  220. package/lib/host/worktree-permission.d.ts +0 -51
  221. package/lib/host/worktree-permission.d.ts.map +0 -1
  222. package/lib/host/worktree-permission.js +0 -251
  223. package/lib/host/worktree-permission.js.map +0 -1
  224. package/lib/manage/worktree-permission.d.ts +0 -3
  225. package/lib/manage/worktree-permission.d.ts.map +0 -1
  226. package/lib/manage/worktree-permission.js +0 -3
  227. package/lib/manage/worktree-permission.js.map +0 -1
package/README.md CHANGED
@@ -20,20 +20,7 @@ its Workspace-root HEAD history with an optional comparison branch; the plugin d
20
20
  After installing into a running DSH instance, restart DSH Desktop, or restart the DSH Web
21
21
  server and refresh the page, if the plugin Host has not loaded. Finish
22
22
  active tasks before restarting. If the Client loads while the Host is still unavailable, a
23
- native toast reminds you once per Client load. If a Worktree Session permission check reports
24
- that **Worktree Full Access** is unavailable and falls back to `workspace-write`, a separate
25
- once-per-load toast gives the same restart guidance for a recent install or update. The
26
- permission recovery message retains this guidance after the toast closes. Network failures,
27
- Workspace errors, unverified permissions, and explicit user restrictions do not trigger the
28
- missing-preset reminder. The reminder does not reload services or grant Full Access; if the
29
- preset remains unavailable after restarting, check the DSH plugin and permission configuration.
30
-
31
- Once the Host is available, a missing named preset alone no longer requires a restart on
32
- supported DSH profiles. The existing Full Access confirmation still requires acknowledgement;
33
- after confirmation, Worktree applies and verifies native per-Session file access and `ask`
34
- approval. The native menu may display **Custom** until the named preset loads. This changes
35
- neither the native preset catalog nor its defaults or Auto review integration. Unsupported
36
- profiles retain the fallback/recovery guidance above.
23
+ native toast reminds you once per Client load.
37
24
 
38
25
  ### Install from npm
39
26
 
@@ -50,6 +37,7 @@ equivalent `pnpm dsh` form.
50
37
  ### Install from a local checkout
51
38
 
52
39
  Build this package, build the DSH source checkout, and add the package by absolute path:
40
+ Use the pnpm version pinned in this package’s `package.json` for plugin builds.
53
41
 
54
42
  ```bash
55
43
  cd /absolute/path/to/clutch-dsh
@@ -74,7 +62,7 @@ dsh plugin --profile desktop add /absolute/path/to/clutch-dsh/packages/clutch-ds
74
62
 
75
63
  Reopen Desktop after installation. Keep the local checkout and its installed `node_modules`
76
64
  available while it is linked; copying only `lib/` or removing the checkout's dependencies can
77
- cause the Host and permission-preset entries to fail to import. Client implementation dependencies
65
+ cause the Host entry to fail to import. Client implementation dependencies
78
66
  are bundled during the build, so Desktop does not need separate Zustand or Immer modules.
79
67
 
80
68
  ### Install from GitHub source (optional)
@@ -101,6 +89,33 @@ development details, see [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md).
101
89
 
102
90
  ## Usage
103
91
 
92
+ Opening a newly created or reused Worktree Session waits for its Worktree grouping to be ready,
93
+ so it appears directly under that Worktree without briefly appearing in Local. If the grouping
94
+ cannot be refreshed, the current view stays visible and the action reports an error for retry.
95
+ Overlapping creation and notification refreshes share the latest result instead of reporting a
96
+ binding repair error just because an earlier read was superseded.
97
+ Once the destination grouping is ready, opening does not wait for the previous Session's
98
+ context refresh; that refresh continues in the background.
99
+ Worktree status reads run with bounded parallelism to reduce waiting in Workspaces with multiple Worktrees.
100
+ With an existing ready grouping, creation and reuse read only the target Worktree and merge the
101
+ confirmed bindings before opening. An unrelated change, reconnect, or stale result falls back to
102
+ an authoritative Workspace refresh while keeping the current view visible.
103
+ Local's **+** excludes Worktree-bound blanks (including detached bindings) when choosing a reusable
104
+ Session. You can switch from an untouched Worktree blank to a separate Local blank without sending a message.
105
+ Local also checks the native execution directory before reuse and opening, excluding unbound
106
+ Sessions left in a Worktree after a binding failure. Directory read failures keep the current view visible.
107
+
108
+ Worktree Session retries preserve existing legacy bindings, including Git-root Sessions in
109
+ subdirectory Workspaces, while rejecting changed ownership or unrelated execution directories.
110
+ Temporary failures before Session creation can be retried. After recovery opens a blank Session,
111
+ the next new-Session action creates a fresh Session once that Session is no longer blank.
112
+ This includes manual binding recovery. New Sessions in historical subdirectory Worktrees receive
113
+ the same shared instructions; moving outside the bound directory still disables those instructions.
114
+
115
+ New Worktrees live in `<workspace>/.agents/clutch-worktrees/wt_<id>/`. New Sessions remain members of the original Workspace; DSH records their execution directory through its native working-directory capability before task input is admitted. They keep normal native permissions, including explicit user restrictions, and require no plugin-specific permission setup. The pool contains its own ignore file; existing repository ignore files are untouched.
116
+
117
+ Historical and imported external Worktrees stay in place. Historical Sessions and saved permissions are not migrated. An external checkout may still need ordinary DSH approval when the original Workspace sandbox does not cover it. Creating new Worktree Sessions requires the native `workingDirectory` service; older hosts fail explicitly before creating a Session.
118
+
104
119
  ### Open Worktree mode
105
120
 
106
121
  The Sidebar scrollbar floats over the edge without shifting row spacing. Workspace folders
@@ -362,7 +377,7 @@ that first request discards the initial routing override. Native Session model c
362
377
 
363
378
  Tool changes refresh the owning Workspace's Worktree list and bindings while preserving ready
364
379
  content. Dispatch keeps the current conversation open and uses DSH's normal new-Session
365
- preset and permission defaults; it does not automatically grant Worktree Full Access. Run `/cluworktree` again after the Agent or plugin restarts for capabilities not automatically injected.
380
+ preset and permission defaults. Run `/cluworktree` again after the Agent or plugin restarts for capabilities not automatically injected.
366
381
  No extra command arguments are accepted. All discovery, reports and follow-ups are restricted
367
382
  to the calling Workspace; passing another `workspaceId` grants no additional access. Sessions
368
383
  are ordinary native Sessions, not native subagent children or a persistent delegation catalog.
@@ -438,6 +453,17 @@ Quick Actions offers baseline synchronization and archive. VS Code must be
438
453
  installed on the browser's machine and able to access the recorded path; the link does not verify
439
454
  launch success.
440
455
 
456
+ Local/Main Dashboard adds **Manage Worktrees** after **Settings**. Rows use the same branch icons,
457
+ paths, and availability badges as Derived Worktrees; archived records have a separate badge and
458
+ the heading shows the total. Select individual records or all Worktrees in this Workspace,
459
+ including archived and cleaned records, then archive, clean up
460
+ disk, or remove them from management. Confirmation lists the selected paths; disk cleanup also
461
+ requires confirming that all tasks using them have stopped. Buttons show eligible target counts;
462
+ confirmation includes only those targets, while ineligible items stay selected. Archive before
463
+ cleanup or removal from management. Results appear per Worktree; successful items are deselected and failures
464
+ remain selected for explicit retry. Main itself is never a batch target.
465
+
466
+
441
467
  **Derived Worktrees** shows managed Worktrees in the same Workspace whose saved baseline matches
442
468
  this checkout's current local branch. Overview previews five entries; the tab shows all matches,
443
469
  including archived entries with their availability and paths. Click an entry to open its Dashboard.
@@ -662,9 +688,11 @@ text, actions and diagnostic details follow the font size selected in **Settings
662
688
  immutable acquisition `baseCommit` remains separate and is not rewritten by that edit. The index is
663
689
  kept in the DSH host plugin data directory, not in a project directory or DSH's raw data store. It
664
690
  does not store Session content or a copy of the Workspace root.
665
- - Runtime `cwd` is derived for each execution. No binding, Main, or detached binding uses the
666
- Workspace root; an active Worktree binding uses that Worktree path. The cwd is never persisted
667
- into DSH Session metadata.
691
+ - New Sessions retain the original Workspace and immutable header directory. DSH owns the effective
692
+ working-directory projection and its change events; the plugin never rewrites Session metadata.
693
+ An active binding must match the effective directory. Leaving, detaching or cleaning a Worktree
694
+ never redirects a running Session to Main; DSH may recover a missing directory on the next native operation.
695
+ Old injected adapters without native directory facts retain their derived cwd compatibility behavior.
668
696
  - One Session can have at most one active Worktree binding, while a Worktree can have many Sessions.
669
697
  Removing or cleaning a Worktree never deletes a DSH Session. A broken active binding reports a
670
698
  repair state instead of silently falling back to another Worktree.
@@ -697,20 +725,8 @@ text, actions and diagnostic details follow the font size selected in **Settings
697
725
  remains a separate leading indicator. Visual Session ordering initially follows the newest `updatedAt` values and
698
726
  remains browser-local; Main remains fixed first, Worktree drag updates only this local order projection,
699
727
  and Main drag updates native Workspace order only after DSH accepts it.
700
- - Active Worktree Sessions may request the named `worktree-full-access` preset after an explicit
701
- confirmation. The plugin appends this preset while preserving DSH's existing presets, default
702
- selection, and official Auto review integration. It combines DSH `danger-full-access` with `ask`,
703
- keeps approval prompts enabled, and does not change network or process policy. If neither the preset nor native Session policy writes are available, the plugin falls back to
704
- `workspace-write + ask` when possible or reports an unverified, retryable state. Permission
705
- services may mount late or be replaced: retry uses the currently available capabilities without
706
- restarting the Worktree Host. A temporarily missing service never grants Full Access, and an
707
- explicit user restriction is preserved. It cannot exceed the sandbox imposed by the host running DSH.
708
- - If the named preset is missing but native Session policy services are available, the same
709
- confirmation applies `danger-full-access + ask` through native permission events instead.
710
- Both effective values are verified before success is reported; the native menu may show
711
- **Custom**. No synthetic preset identity is stored. Duplicate pending confirmations for the
712
- same Workspace, Worktree, Session and path share one dialog; different targets remain separate.
713
- - Session-to-Worktree bindings and permission checks compare physical filesystem identity on the Host (`stat`/`realpath`) rather than relying on lexical path equality. This ensures robust compatibility across Windows and macOS path variations (including drive-letter casing, forward/backward slashes, UNC paths, and extended-length prefixes like `\\?\\`). On Windows, sidecar atomic persistence uses file-handle synchronization with best-effort directory sync, and Git CLI integration cleanly handles `NUL` null-device paths and CRLF line endings.
728
+ - Session creation, reuse, archive, cleanup and removal preserve native DSH permissions. The plugin provides no dedicated access preset, confirmation or permission recovery. Historical Session permissions remain unchanged; use DSH native controls when ordinary approval is needed.
729
+ - Session-to-Worktree bindings compare physical filesystem identity on the Host (`stat`/`realpath`) rather than relying on lexical path equality. This ensures robust compatibility across Windows and macOS path variations (including drive-letter casing, forward/backward slashes, UNC paths, and extended-length prefixes like `\\?\\`). On Windows, sidecar atomic persistence uses file-handle synchronization with best-effort directory sync, and Git CLI integration cleanly handles `NUL` null-device paths and CRLF line endings.
714
730
  - Git must be installed and available on `PATH`. A missing Git executable shows install guidance
715
731
  and no command block; the plugin does not run setup or installation commands.
716
732
  - If a Workspace root directory is missing, the Worktree view still renders the indexed Worktrees,
package/README.zh.md CHANGED
@@ -19,16 +19,7 @@ Main 指令。受管理的 Worktree 提供可选择本地或已获取的远端 b
19
19
 
20
20
  向运行中的 DSH 安装插件后,若插件 Host 尚未加载,请重启 DSH Desktop,或重启 DSH Web
21
21
  服务后刷新页面。重启前请先结束正在运行的任务。如果 Client 已加载而 Host 尚未挂载,
22
- 原生 toast 会在每次 Client 加载期间提醒一次。如果 Worktree Session 权限检查确认
23
- **Worktree Full Access** 预设不可用并降级为 `workspace-write`,另一条每次加载至多一次的
24
- toast 会提示在刚安装或更新插件后重启。toast 关闭后,权限修复说明仍保留重启指引。网络故障、
25
- Workspace 错误、无法确认的权限与用户的显式权限限制不会触发预设缺失提醒。提醒不会重载服务
26
- 或授予完全访问;若重启后预设仍不可用,请检查 DSH 的插件与权限配置。
27
-
28
- Host 可用后,在支持的 DSH profile 中,仅缺失命名预设不再需要重启。原有完全访问确认框仍
29
- 要求勾选风险确认;确认后,Worktree 会设置并验证原生 Session 文件访问权限与 `ask` 审批。
30
- 命名预设加载前,原生菜单可能显示 **Custom(自定义)**。此过程不修改原生预设目录、默认值
31
- 或 Auto review 集成。不支持该能力的 profile 仍沿用上述降级与修复指引。
22
+ 原生 toast 会在每次 Client 加载期间提醒一次。
32
23
 
33
24
  ### 从 npm 安装
34
25
 
@@ -45,6 +36,7 @@ dsh web
45
36
  ### 从本地 checkout 安装
46
37
 
47
38
  先构建本 package 和 DSH 源码 checkout,再用绝对路径添加 package:
39
+ 构建插件时使用本 package 的 `package.json` 固定的 pnpm 版本。
48
40
 
49
41
  ```bash
50
42
  cd /absolute/path/to/clutch-dsh
@@ -68,7 +60,7 @@ dsh plugin --profile desktop add /absolute/path/to/clutch-dsh/packages/clutch-ds
68
60
  ```
69
61
 
70
62
  安装完成后重新打开 Desktop。本地链接生效期间,需要保留 checkout 及其已安装的 `node_modules`;
71
- 只复制 `lib/` 或移除 checkout 的依赖可能导致 Host 和权限 preset 入口导入失败。
63
+ 只复制 `lib/` 或移除 checkout 的依赖可能导致 Host 入口导入失败。
72
64
  Client 的实现依赖在构建时打包,Desktop 无需另外提供 Zustand 或 Immer 模块。
73
65
 
74
66
  ### 从 GitHub 源码安装(可选)
@@ -95,6 +87,28 @@ dsh plugin --profile web add "github:Cerbur/clutch-dsh#path:/packages/clutch-dsh
95
87
 
96
88
  ## 使用
97
89
 
90
+ 打开新建或复用的 Worktree Session 前,会先等待对应 Worktree 分组就绪,使其直接出现在
91
+ 目标 Worktree 下,不再短暂出现在 Local。若分组刷新失败,当前视图保持可见,并提示错误以便重试。
92
+ 创建完成与通知刷新重叠时,会复用最新读取结果,不会仅因旧读取被替换就误报绑定需要修复。
93
+ 目标分组就绪后,打开会话不再等待上一会话的上下文刷新;该刷新在后台继续完成。
94
+ Worktree 状态采用有限并行读取,减少包含多个 Worktree 的工作区中的等待时间。
95
+ 分组已就绪时,新建和复用只读取目标 Worktree,并在打开前合并已确认的绑定。
96
+ 遇到其他变更、重连或过期结果时,回退到所属 Workspace 的权威刷新,期间保留当前视图。
97
+ Local 的 **+** 在选择可复用会话时会排除已有 Worktree 绑定的空白会话(包括 detached 绑定)。
98
+ 即使没有发送消息,也能从 Worktree 空白会话切换到独立的 Local 空白会话。
99
+ Local 在复用前和打开前还会检查原生执行目录,排除绑定失败后仍留在 Worktree 目录的未绑定
100
+ Session。目录读取失败时保留当前视图。
101
+
102
+ Worktree Session 重试兼容已有历史绑定,包括子目录 Workspace 中的 Git-root Session,
103
+ 但仍拒绝归属冲突或无关执行目录。创建 Session 前的临时失败可以重试。恢复并打开空白
104
+ Session 后,待该 Session 不再为空白,再次新建会创建新的 Session。
105
+ 手动绑定恢复同样遵循此规则。历史子目录 Worktree 中的新 Session 也能获取共享指令;
106
+ 离开绑定目录后仍会停止注入这些指令。
107
+
108
+ 新 Worktree 位于 `<workspace>/.agents/clutch-worktrees/wt_<id>/`。新 Session 仍归属原始 Workspace;接收任务输入前,由 DSH 原生工作目录能力记录其执行目录。它们保留正常原生权限及用户的显式限制,无需插件专属权限配置。专属池仅包含自己的忽略文件,不修改仓库已有忽略规则。
109
+
110
+ 历史与导入的外置 Worktree 保持原位,历史 Session 和已保存权限不会迁移。若外置 checkout 不在原 Workspace 的沙箱范围内,仍可能需要 DSH 普通审批。创建新 Worktree Session 要求原生 `workingDirectory` 服务;旧 Host 会在创建 Session 前显式失败。
111
+
98
112
  ### 打开 Worktree 模式
99
113
 
100
114
  Sidebar 滚动条悬浮在边缘,不会挤压行内容或改变边距。Workspace 文件夹图标和展开时旋转的
@@ -313,7 +327,7 @@ PTC 模式生成的 SDK 提供明确参数类型,包括回报必填的 `status
313
327
 
314
328
  工具变更只刷新所属 Workspace 的 Worktree 列表与绑定,并保持已有 ready 内容可见。
315
329
  派发保留当前对话,使用 DSH 新 Session 的默认 preset 和权限;
316
- 不会自动授予 Worktree Full Access。
330
+ 权限由 DSH 原生设置管理。
317
331
  Agent 或插件重启后,未配置自动注入的能力需要重新执行 `/cluworktree`。指令不接受额外参数。
318
332
  所有发现、回报和补充投递仅限调用方 Workspace;传入其他 `workspaceId` 不会获得额外访问权。
319
333
  这些 Session 是普通原生 Session,不是原生 subagent 子会话,也没有持久化的委派任务目录。
@@ -383,6 +397,14 @@ Worktree 中,右上角操作会变为 **New Session**,直接在该 Worktree
383
397
  中打开记录的目录以及查看 Git 与变更。快捷操作提供同步基线与归档。VS Code
384
398
  必须安装在浏览器所在机器上且能够访问记录的路径;链接不会验证应用是否成功启动。
385
399
 
400
+ Local/Main Dashboard 在**设置**后提供**管理 worktree**页签。列表沿用派生 Worktree 的分支图标、
401
+ 路径和可用状态徽标,已归档记录另有归档徽标,标题旁显示总数。可以逐项选择或全选当前 Workspace 的
402
+ Worktree(含已归档和已清理记录),批量归档、清理磁盘或移出管理。确认弹窗列出选中路径;清理磁盘还需
403
+ 确认所有使用这些目录的任务均已停止。按钮显示可操作数量,确认弹窗仅包含适用目标,不适用项保留选择。
404
+ 清理或移出管理前需先归档。结果逐项显示,成功项
405
+ 取消选择,失败项保留选择供显式重试。Main 本身不会成为批量操作目标。
406
+
407
+
386
408
  **派生 Worktree** 显示同一 Workspace 中,已保存基线匹配当前 checkout 本地分支的受管理 Worktree。
387
409
  概览预览前五项,页签显示全部匹配项,包括带有可用状态和路径的已归档条目;点击条目可打开其 Dashboard。
388
410
  修改已保存基线会更新关系;此视图表示直接基线匹配,不代表 Git 祖先关系或委派 Session 历史。
@@ -557,8 +579,10 @@ Worktree 设置采用 DSH 原生 Tab、状态标签和紧凑按钮。说明文
557
579
  替换为除当前 Worktree branch 之外的本地或已获取的远端 branch,保存后的值会成为 Git Tab 选择器的默认值。
558
580
  不可变的获取 `baseCommit` 与它分开保存,不会因该编辑被重写。索引位于 DSH host 的 plugin data
559
581
  directory,不写入项目目录或 DSH raw data,也不保存 Session 内容或 Workspace 根目录副本。
560
- - runtime `cwd` 在每次执行时派生。无 binding、Main 或 detached binding 使用 Workspace root;
561
- active Worktree binding 使用 Worktree path。cwd 不会持久化写回 DSH Session metadata。
582
+ - 新 Session 保留原 Workspace 与不可变的 header 目录。当前执行目录 projection 及其变更事件由
583
+ DSH 拥有;插件不改写 Session metadata。Active binding 必须匹配当前执行目录。离开、解绑或
584
+ 清理 Worktree 不会将运行中的 Session 重定向到 Main;目录缺失时 DSH 可能在下一次原生操作中恢复。
585
+ 缺少原生目录事实的旧注入 adapter 保留原有 cwd 派生兼容行为。
562
586
  - 一个 Session 最多有一个 active Worktree binding,一个 Worktree 可以有多个 Session。移除或
563
587
  清理 Worktree 不会删除 DSH Session。失效的 active binding 会显示 repair 状态,不会静默切换到
564
588
  另一个 Worktree。
@@ -585,17 +609,8 @@ Worktree 设置采用 DSH 原生 Tab、状态标签和紧凑按钮。说明文
585
609
  优先于运行中,运行中优先于已完成。Idle Session 不会贡献分组 dot;Worktree 健康状态仍
586
610
  使用独立的前置指示器。视觉上的 Session 排序初始按最新的 `updatedAt` 值排列并只保存在浏览器本地;Main 固定为首行,Worktree 拖拽只
587
611
  更新这个本地排序投影,Main 拖拽只有在 DSH 接受后才更新原生 Workspace 顺序。
588
- - active Worktree Session 在明确确认后可以请求名为 `worktree-full-access` 的 preset。插件
589
- 追加该 preset,保留 DSH 现有的权限列表、默认选择与官方 Auto review 集成。它将
590
- DSH `danger-full-access` 与 `ask` 组合,保留审批提示,不改变 network 或 process policy。
591
- 预设与原生 Session 权限写入均不可用时尽可能回退到 `workspace-write + ask`,否则显示未验证且可重试的状态。权限服务
592
- 可以迟挂载或被替换:重试使用当前可用能力,不需要重启 Worktree Host。服务暂时缺失时
593
- 绝不授予 Full Access,并保留用户的显式限制;它不能突破 DSH 宿主设置的 sandbox 上限。
594
- - 若命名预设缺失但原生 Session 权限服务可用,同一确认框会通过原生权限事件设置
595
- `danger-full-access + ask`。仅在两个实际值均验证成功后报告生效;原生菜单可能显示
596
- **Custom(自定义)**,不会存储虚构的预设身份。同一 Workspace、Worktree、Session 和路径
597
- 的重复待确认请求共用一个对话框,不同目标仍分别确认。
598
- - Session 与 Worktree 绑定及权限检查在 Host 端基于物理文件系统身份(`stat`/`realpath`)进行比较,而非单纯依赖词法路径字符串。这确保了在 Windows 与 macOS 各种路径形态下的稳健兼容(包括盘符大小写、正反斜杠、UNC 路径以及 `\\?\\` 等长路径前缀)。在 Windows 平台上,sidecar 原子持久化采用可写文件句柄同步并对目录同步保持容错(best-effort),Git CLI 集成兼容 `NUL` 空设备路径与 CRLF 换行符。
612
+ - 创建、复用、归档、清理和移出管理均保留 DSH 原生权限。插件不提供专属访问预设、确认框或权限恢复。历史 Session 已保存的权限保持不变;需要普通审批时使用 DSH 原生设置。
613
+ - Session 与 Worktree 绑定在 Host 端基于物理文件系统身份(`stat`/`realpath`)进行比较,而非单纯依赖词法路径字符串。这确保了在 Windows 与 macOS 各种路径形态下的稳健兼容(包括盘符大小写、正反斜杠、UNC 路径以及 `\\?\\` 等长路径前缀)。在 Windows 平台上,sidecar 原子持久化采用可写文件句柄同步并对目录同步保持容错(best-effort),Git CLI 集成兼容 `NUL` 空设备路径与 CRLF 换行符。
599
614
  - Git 必须已安装且可在 PATH 中使用。Git 可执行文件缺失时显示安装提示且不显示命令块;插件
600
615
  不会执行 setup 或安装命令。
601
616
  - Workspace 根目录缺失时,Worktree 视图仍会渲染索引中的 Worktree、Session 绑定和指令,并显示
package/cordis.patch.yml CHANGED
@@ -1,12 +1,4 @@
1
- - id: permission
2
- name: '@deepseek-ai/dsh-permission-presets'
3
- # Gate native activation on the config contribution; never replace its config.
4
- inject:
5
- - clutchWorktreePermissionPresets
6
-
7
1
  - insert:
8
- - id: clutch-dsh-worktree-permission-presets
9
- name: '@cerbur/clutch-dsh-worktree/permission-presets'
10
2
  - id: clutch-dsh-worktree-host
11
3
  name: '@cerbur/clutch-dsh-worktree'
12
4
  config:
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeSurface.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAsB/D,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACxF,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,UAAU,EAAE,oBAAoB,sCAqhB/D"}
1
+ {"version":3,"file":"WorktreeSurface.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAsB/D,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACxF,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,UAAU,EAAE,oBAAoB,sCAshB/D"}
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { AccessConfirmation } from './surface/components/AccessConfirmation.js';
3
2
  import { LifecycleDialogs } from './surface/components/LifecycleDialogs.js';
4
3
  import { NativeDialogs } from './surface/components/NativeDialogs.js';
5
4
  import { RegistrationDialog } from './surface/components/RegistrationDialog.js';
@@ -8,6 +7,7 @@ import { NotificationProvider } from './surface/components/NotificationToasts.js
8
7
  import { SurfaceHeader } from './surface/components/SurfaceHeader.js';
9
8
  import { useDragActions } from './surface/actions/useDragActions.js';
10
9
  import { useLifecycleActions } from './surface/actions/useLifecycleActions.js';
10
+ import { useDashboardBatchManage } from './surface/actions/useDashboardBatchManage.js';
11
11
  import { useLifecycleState } from './surface/state/useLifecycleState.js';
12
12
  import { useNativeActions } from './surface/actions/useNativeActions.js';
13
13
  import { useRegistrationState } from './surface/state/useRegistrationState.js';
@@ -69,7 +69,7 @@ export function WorktreeSurface(inputProps) {
69
69
  ? undefined
70
70
  : (workspaceId) => {
71
71
  closeDashboard();
72
- inputProps.createMainSession?.(workspaceId);
72
+ void mutation.runMutation(async () => { await inputProps.createMainSession?.(workspaceId); });
73
73
  },
74
74
  };
75
75
  const registrationState = useRegistrationState({ props });
@@ -186,6 +186,7 @@ export function WorktreeSurface(inputProps) {
186
186
  session,
187
187
  });
188
188
  const lifecycle = useLifecycleActions({ read, lifecycleState, source, props, mutation });
189
+ const manageDashboardWorktree = useDashboardBatchManage({ props, read, mutation, expansion, session, lifecycleState, lifecycle, reader: props.viewReader });
189
190
  const dashboardWorkspace = source.workspaces.items.find((workspace) => workspace.workspaceId === dashboardRecord?.workspaceId);
190
191
  const dashboardView = dashboardRecord === undefined
191
192
  ? undefined
@@ -253,7 +254,7 @@ export function WorktreeSurface(inputProps) {
253
254
  ...(bounds.ready
254
255
  ? { top: `${bounds.top}px`, height: `${bounds.height}px` }
255
256
  : { height: '0px', visibility: 'hidden' }),
256
- }, children: [_jsxs("div", { className: styles.wideContent, children: [_jsx(SurfaceHeader, { onOpenSession: session.openWorkspaceSession, expansion: expansion, props: props, source: source, read: read, mutation: mutation }), _jsx(SurfaceContent, { source: source, props: props, lifecycle: lifecycle, mutation: mutation, session: session, read: read, expansion: expansion, ordering: ordering, drag: drag, menus: menus, registration: registration, native: native, lifecycleState: lifecycleState })] }), _jsx(NativeDialogs, { props: props, native: native }), _jsx(RegistrationDialog, { props: props, registration: registration, registrationState: registrationState, mutation: mutation, read: read }), _jsx(LifecycleDialogs, { props: props, lifecycleState: lifecycleState, mutation: mutation, lifecycle: lifecycle, expansion: expansion, read: read, session: session }), _jsx(AccessConfirmation, { source: source, props: props })] }), dashboard !== undefined &&
257
+ }, children: [_jsxs("div", { className: styles.wideContent, children: [_jsx(SurfaceHeader, { onOpenSession: session.openWorkspaceSession, expansion: expansion, props: props, source: source, read: read, mutation: mutation }), _jsx(SurfaceContent, { source: source, props: props, lifecycle: lifecycle, mutation: mutation, session: session, read: read, expansion: expansion, ordering: ordering, drag: drag, menus: menus, registration: registration, native: native, lifecycleState: lifecycleState })] }), _jsx(NativeDialogs, { props: props, native: native }), _jsx(RegistrationDialog, { props: props, registration: registration, registrationState: registrationState, mutation: mutation, read: read }), _jsx(LifecycleDialogs, { props: props, lifecycleState: lifecycleState, mutation: mutation, lifecycle: lifecycle, expansion: expansion, read: read, session: session })] }), dashboard !== undefined &&
257
258
  dashboardRecord === undefined &&
258
259
  dashboard.sessionId === source.currentSessionId &&
259
260
  source.workspaceIds.includes(dashboard.workspaceId) &&
@@ -265,7 +266,7 @@ export function WorktreeSurface(inputProps) {
265
266
  scope: { kind: 'workspace', workspaceId: dashboard.workspaceId },
266
267
  preserveCurrent: true,
267
268
  });
268
- } })), dashboardRecord !== undefined && (_jsx(WorktreeDashboard, { manager: props.manager, record: dashboardRecord, worktrees: dashboardView?.worktrees ?? [], mainRecord: dashboardMainRecord, onOpenWorktree: openDashboard, onSaveInstructions: props.manager
269
+ } })), dashboardRecord !== undefined && (_jsx(WorktreeDashboard, { manager: props.manager, record: dashboardRecord, worktrees: dashboardView?.worktrees ?? [], mainRecord: dashboardMainRecord, onOpenWorktree: openDashboard, onManageWorktree: props.manager === undefined ? undefined : manageDashboardWorktree, onSaveInstructions: props.manager
269
270
  ? async (instructions, expectedInstructions) => {
270
271
  try {
271
272
  return await props.manager.updateWorktreeInstructions({
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeSurface.js","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeSurface.js","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { WorktreeRecord } from '../../contract/index.js';
2
+ import type { WorktreeTranslate } from '../surface/types.js';
3
+ import { type BatchWorktreeAction } from './batch-manage.js';
4
+ export interface BatchManageWorktreesProps {
5
+ readonly workspaceId: string;
6
+ readonly worktrees: readonly WorktreeRecord[];
7
+ readonly t: WorktreeTranslate;
8
+ readonly actionPending: boolean;
9
+ readonly onManage?: (action: BatchWorktreeAction, record: WorktreeRecord, isCurrent: () => boolean) => Promise<void>;
10
+ }
11
+ export declare function BatchManageWorktrees({ workspaceId, worktrees, t, actionPending, onManage }: BatchManageWorktreesProps): import("react").JSX.Element;
12
+ //# sourceMappingURL=BatchManageWorktrees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchManageWorktrees.d.ts","sourceRoot":"","sources":["../../../src/client/dashboard/BatchManageWorktrees.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAuC,KAAK,mBAAmB,EAA4B,MAAM,mBAAmB,CAAC;AAI5H,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtH;AAED,wBAAgB,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,yBAAyB,+BAmHrH"}
@@ -0,0 +1,77 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { Button, Modal } from '@deepseek-ai/dsh-client-ui-primitives';
4
+ import { formatWorktreeViewError } from '../view/worktree-error-copy.js';
5
+ import { NotificationToasts } from '../surface/components/NotificationToasts.js';
6
+ import { IconBranchOutline16 } from '../dsh-icons.js';
7
+ import { canManageWorktree, runWorktreeBatch } from './batch-manage.js';
8
+ import styles from './dashboard.css';
9
+ import { isMainWorktreeId } from './dashboard-selection.js';
10
+ export function BatchManageWorktrees({ workspaceId, worktrees, t, actionPending, onManage }) {
11
+ const rows = worktrees.filter((record) => record.workspaceId === workspaceId && !isMainWorktreeId(record.worktreeId));
12
+ const [selected, setSelected] = useState(new Set());
13
+ const [confirmation, setConfirmation] = useState();
14
+ const [results, setResults] = useState([]);
15
+ const [pending, setPending] = useState(false);
16
+ const [stopped, setStopped] = useState(false);
17
+ const busy = useRef(false);
18
+ const generation = useRef(0);
19
+ useEffect(() => {
20
+ generation.current++;
21
+ busy.current = false;
22
+ setPending(false);
23
+ setConfirmation(undefined);
24
+ setSelected(new Set());
25
+ setResults([]);
26
+ return () => { generation.current++; };
27
+ }, [workspaceId, onManage]);
28
+ const picked = rows.filter((record) => selected.has(record.worktreeId));
29
+ const disabled = pending || actionPending || onManage === undefined;
30
+ const allSelected = rows.length > 0 && picked.length === rows.length;
31
+ const close = () => { if (!busy.current)
32
+ setConfirmation(undefined); };
33
+ const submit = async () => {
34
+ if (busy.current || actionPending || !confirmation || !onManage ||
35
+ (confirmation.action === 'clean' && !stopped))
36
+ return;
37
+ busy.current = true;
38
+ setPending(true);
39
+ setResults([]);
40
+ const lifetime = generation.current;
41
+ const isCurrent = () => generation.current === lifetime;
42
+ try {
43
+ await runWorktreeBatch(confirmation.action, confirmation.records, onManage, isCurrent, (result) => {
44
+ setResults((current) => [...current, result]);
45
+ if (!result.error)
46
+ setSelected((current) => {
47
+ const next = new Set(current);
48
+ next.delete(result.record.worktreeId);
49
+ return next;
50
+ });
51
+ });
52
+ }
53
+ finally {
54
+ if (isCurrent()) {
55
+ busy.current = false;
56
+ setPending(false);
57
+ setConfirmation(undefined);
58
+ }
59
+ }
60
+ };
61
+ return _jsxs("section", { "data-dashboard-batch-manage": true, "aria-busy": pending, children: [_jsxs("div", { className: styles.dashboardCardHeading, children: [_jsx("h2", { children: t('dashboard.tab.manage') }), _jsx("span", { children: rows.length })] }), _jsx("p", { children: t('dashboard.manage.description') }), _jsxs("div", { className: styles.dashboardManageToolbar, children: [_jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: allSelected, disabled: disabled || rows.length === 0, "aria-label": t('dashboard.manage.selectAll'), onChange: () => setSelected(allSelected ? new Set() : new Set(rows.map((record) => record.worktreeId))) }), t('dashboard.manage.selectAll')] }), _jsx("span", { role: "status", children: t('dashboard.manage.selected', { count: picked.length }) }), ['archive', 'clean', 'forget'].map((action) => _jsxs(Button, { variant: "outline", "data-batch-action": action, disabled: disabled || !picked.some((record) => canManageWorktree(record, action)), onClick: () => { setStopped(false); setConfirmation({ action, records: picked.filter((record) => canManageWorktree(record, action)) }); }, children: [t(`dashboard.manage.${action}`), " (", picked.filter((record) => canManageWorktree(record, action)).length, ")"] }, action))] }), _jsx("p", { className: styles.dashboardManageHint, children: t('dashboard.manage.availability') }), rows.length === 0 ? _jsx("p", { children: t('dashboard.manage.empty') }) : _jsx("ul", { className: `${styles.dashboardSessions} ${styles.dashboardManageList}`, children: rows.map((record) => _jsx("li", { children: _jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: selected.has(record.worktreeId), disabled: disabled, "aria-label": record.branch + ' · ' + record.absolutePath, onChange: () => setSelected((current) => {
62
+ const next = new Set(current);
63
+ if (next.has(record.worktreeId))
64
+ next.delete(record.worktreeId);
65
+ else
66
+ next.add(record.worktreeId);
67
+ return next;
68
+ }) }), _jsx(IconBranchOutline16, {}), _jsxs("span", { className: styles.dashboardSessionLabel, children: [_jsx("strong", { children: record.currentHead?.name ?? record.currentBranch ?? record.branch }), _jsx("code", { className: styles.dashboardChildPath, children: record.absolutePath })] }), _jsxs("span", { className: styles.dashboardChildState, children: [record.status === 'removed' && _jsx("span", { className: styles.dashboardSoon, children: t('dashboard.archived') }), _jsx("span", { className: styles.dashboardHealth, "data-health": record.health ?? 'unknown', children: t(record.health === 'ready' ? 'worktree.ready' : record.health === 'repair' ? 'worktree.repair'
69
+ : record.health === 'recovery-needed' ? 'worktree.recovery' : record.health === 'branch-drift'
70
+ ? 'worktree.branchDrift' : record.health === 'cleaned' ? 'dashboard.cleaned' : 'dashboard.unknown') })] })] }) }, record.worktreeId)) }), _jsx("ul", { className: styles.dashboardManageResults, "aria-live": "polite", children: results.map(({ record, error }) => _jsxs("li", { "data-batch-result": error ? 'failed' : 'success', children: [_jsx("strong", { children: record.branch }), " \u00B7 ", record.absolutePath, " \u00B7 ", error
71
+ ? t('dashboard.manage.failed') + ' ' + formatWorktreeViewError(error, t)
72
+ : t('dashboard.manage.success')] }, record.worktreeId)) }), _jsx(NotificationToasts, { notices: results.flatMap(({ record, error }) => error ? [{
73
+ key: 'batch:' + record.worktreeId, error, context: record.branch + ' · ' + record.absolutePath,
74
+ text: formatWorktreeViewError(error, t), message: (translate) => formatWorktreeViewError(error, translate),
75
+ }] : []) }), _jsx(Modal, { open: confirmation !== undefined, onClose: close, closeLabel: t('dialog.cancel'), title: confirmation ? t(`dashboard.manage.${confirmation.action}`) : '', description: confirmation ? t(`dashboard.manage.confirm.${confirmation.action}`) : '', footer: _jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", disabled: pending, onClick: close, children: t('dialog.cancel') }), _jsx(Button, { variant: "primary", "data-batch-confirm": true, disabled: pending || actionPending || (confirmation?.action === 'clean' && !stopped), onClick: () => void submit(), children: t(pending ? 'dashboard.manage.running' : 'dashboard.manage.confirm') })] }), children: _jsxs("div", { "data-dashboard-batch-dialog": true, children: [_jsx("p", { children: t('dashboard.manage.selected', { count: confirmation?.records.length ?? 0 }) }), _jsx("ul", { className: styles.dashboardManageConfirmList, children: confirmation?.records.map((record) => _jsxs("li", { children: [_jsx("strong", { children: record.branch }), _jsx("code", { children: confirmation.action === 'clean' ? record.gitRootPath ?? record.absolutePath : record.absolutePath })] }, record.worktreeId)) }), confirmation?.action === 'clean' && _jsxs("label", { className: styles.dashboardManageStopped, children: [_jsx("input", { type: "checkbox", checked: stopped, disabled: pending, onChange: (event) => setStopped(event.currentTarget.checked) }), t('dashboard.manage.stopped')] })] }) })] });
76
+ }
77
+ //# sourceMappingURL=BatchManageWorktrees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchManageWorktrees.js","sourceRoot":"","sources":["../../../src/client/dashboard/BatchManageWorktrees.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { SessionListLike, SessionPresentation } from '../session/session-vi
4
4
  import type { BranchRecord, WorktreeManager, WorktreeRecord } from '../../contract/index.js';
5
5
  import type { WorktreeToolSettingsManager } from '../../contract/tool-settings.js';
6
6
  import type { WorktreeSyncStrategy, WorktreeSessionDispatchResult } from '../../contract/baseline-sync.js';
7
+ import { type BatchManageWorktreesProps } from './BatchManageWorktrees.js';
7
8
  export interface WorktreeDashboardProps {
8
9
  readonly manager?: WorktreeManager & Partial<WorktreeToolSettingsManager>;
9
10
  readonly onSaveInstructions?: (text: string, expected: string) => Promise<string>;
@@ -29,9 +30,10 @@ export interface WorktreeDashboardProps {
29
30
  readonly onCreateSession?: () => void;
30
31
  readonly onCreateWorktree?: () => void;
31
32
  readonly onArchiveWorktree?: () => void;
33
+ readonly onManageWorktree?: BatchManageWorktreesProps['onManage'];
32
34
  readonly onSyncBaseline?: (strategy: WorktreeSyncStrategy, baseBranch: string, requestId: string) => Promise<WorktreeSessionDispatchResult>;
33
35
  readonly onOpenFile?: (path: string) => void;
34
36
  }
35
37
  /** A managed Worktree or browser Main projection with explicit unavailable states for inapplicable facts. */
36
- export declare function WorktreeDashboard({ manager, record, worktrees, mainRecord, onOpenWorktree, workspaceTitle, t, onClose, onOpenSidebar, isRightSidebarExpanded, sessions, sessionPresentations, sessionIds, actionPending, onOpenSession, onCreateSession, onCreateWorktree, onArchiveWorktree, onSyncBaseline, onOpenFile, onSaveInstructions, onSaveBaseline, onFetchBranches, onLoadBranches, branches, branchesLoading, }: WorktreeDashboardProps): import("react").JSX.Element;
38
+ export declare function WorktreeDashboard({ manager, record, worktrees, mainRecord, onOpenWorktree, workspaceTitle, t, onClose, onOpenSidebar, isRightSidebarExpanded, sessions, sessionPresentations, sessionIds, actionPending, onOpenSession, onCreateSession, onCreateWorktree, onArchiveWorktree, onManageWorktree, onSyncBaseline, onOpenFile, onSaveInstructions, onSaveBaseline, onFetchBranches, onLoadBranches, branches, branchesLoading, }: WorktreeDashboardProps): import("react").JSX.Element;
37
39
  //# sourceMappingURL=WorktreeDashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeDashboard.d.ts","sourceRoot":"","sources":["../../../src/client/dashboard/WorktreeDashboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeDashboard.d.ts","sourceRoot":"","sources":["../../../src/client/dashboard/WorktreeDashboard.tsx"],"names":[],"mappings":"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"}