@cerbur/clutch-dsh-worktree 0.1.21 → 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.
- package/README.md +39 -38
- package/README.zh.md +33 -28
- package/cordis.patch.yml +0 -8
- package/lib/client/WorktreeSurface.d.ts.map +1 -1
- package/lib/client/WorktreeSurface.js +2 -3
- package/lib/client/WorktreeSurface.js.map +1 -1
- package/lib/client/entry.d.ts.map +1 -1
- package/lib/client/entry.js +22 -39
- package/lib/client/entry.js.map +1 -1
- package/lib/client/index.d.ts +0 -3
- package/lib/client/index.d.ts.map +1 -1
- package/lib/client/index.js +0 -2
- package/lib/client/index.js.map +1 -1
- package/lib/client/locales.d.ts +0 -26
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +0 -26
- package/lib/client/locales.js.map +1 -1
- package/lib/client/restart-notice.d.ts +1 -4
- package/lib/client/restart-notice.d.ts.map +1 -1
- package/lib/client/restart-notice.js +0 -20
- package/lib/client/restart-notice.js.map +1 -1
- package/lib/client/session/local-session.d.ts +27 -0
- package/lib/client/session/local-session.d.ts.map +1 -0
- package/lib/client/session/local-session.js +61 -0
- package/lib/client/session/local-session.js.map +1 -0
- package/lib/client/session/session-rename.d.ts.map +1 -1
- package/lib/client/session/session-rename.js.map +1 -1
- package/lib/client/session/worktree-session.d.ts +15 -36
- package/lib/client/session/worktree-session.d.ts.map +1 -1
- package/lib/client/session/worktree-session.js +124 -152
- package/lib/client/session/worktree-session.js.map +1 -1
- package/lib/client/steer/steer-activity.d.ts.map +1 -1
- package/lib/client/steer/steer-activity.js +2 -1
- package/lib/client/steer/steer-activity.js.map +1 -1
- package/lib/client/surface/actions/lifecycle-commands.d.ts.map +1 -1
- package/lib/client/surface/actions/lifecycle-commands.js +1 -28
- package/lib/client/surface/actions/lifecycle-commands.js.map +1 -1
- package/lib/client/surface/actions/useDashboardBatchManage.d.ts.map +1 -1
- package/lib/client/surface/actions/useDashboardBatchManage.js +0 -13
- package/lib/client/surface/actions/useDashboardBatchManage.js.map +1 -1
- package/lib/client/surface/actions/useLifecycleActions.d.ts +4 -6
- package/lib/client/surface/actions/useLifecycleActions.d.ts.map +1 -1
- package/lib/client/surface/actions/useLifecycleActions.js +4 -47
- package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
- package/lib/client/surface/actions/useSessionActions.d.ts +1 -1
- package/lib/client/surface/actions/useSessionActions.d.ts.map +1 -1
- package/lib/client/surface/actions/useSessionActions.js +11 -20
- package/lib/client/surface/actions/useSessionActions.js.map +1 -1
- package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
- package/lib/client/surface/actions/useWorktreeRegistration.js +7 -14
- package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
- package/lib/client/surface/actions/worktree-cleanup-flow.d.ts +1 -2
- package/lib/client/surface/actions/worktree-cleanup-flow.d.ts.map +1 -1
- package/lib/client/surface/actions/worktree-cleanup-flow.js +1 -1
- package/lib/client/surface/actions/worktree-cleanup-flow.js.map +1 -1
- package/lib/client/surface/components/LifecycleDialogs.d.ts +1 -1
- package/lib/client/surface/components/LifecycleDialogs.d.ts.map +1 -1
- package/lib/client/surface/components/RestartToast.d.ts.map +1 -1
- package/lib/client/surface/components/RestartToast.js +1 -2
- package/lib/client/surface/components/RestartToast.js.map +1 -1
- package/lib/client/surface/components/SurfaceContent.d.ts +2 -2
- package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
- package/lib/client/surface/components/SurfaceContent.js +13 -26
- package/lib/client/surface/components/SurfaceContent.js.map +1 -1
- package/lib/client/surface/shared.d.ts +1 -7
- package/lib/client/surface/shared.d.ts.map +1 -1
- package/lib/client/surface/shared.js +0 -5
- package/lib/client/surface/shared.js.map +1 -1
- package/lib/client/surface/state/useLifecycleState.d.ts +0 -1
- package/lib/client/surface/state/useLifecycleState.d.ts.map +1 -1
- package/lib/client/surface/state/useLifecycleState.js +0 -3
- package/lib/client/surface/state/useLifecycleState.js.map +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.d.ts +2 -1
- package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.js +66 -9
- package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.d.ts +1 -6
- package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.js +3 -22
- package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
- package/lib/client/surface/types.d.ts +8 -31
- package/lib/client/surface/types.d.ts.map +1 -1
- package/lib/client/view/worktree-error-copy.d.ts +0 -2
- package/lib/client/view/worktree-error-copy.d.ts.map +1 -1
- package/lib/client/view/worktree-error-copy.js +0 -17
- package/lib/client/view/worktree-error-copy.js.map +1 -1
- package/lib/client/view/worktree-view-errors.d.ts +0 -10
- package/lib/client/view/worktree-view-errors.d.ts.map +1 -1
- package/lib/client/view/worktree-view-errors.js +1 -22
- package/lib/client/view/worktree-view-errors.js.map +1 -1
- package/lib/client/view/worktree-view-read.d.ts +3 -1
- package/lib/client/view/worktree-view-read.d.ts.map +1 -1
- package/lib/client/view/worktree-view-read.js +42 -1
- package/lib/client/view/worktree-view-read.js.map +1 -1
- package/lib/client/worktree-connection.d.ts +5 -4
- package/lib/client/worktree-connection.d.ts.map +1 -1
- package/lib/client/worktree-connection.js +6 -4
- package/lib/client/worktree-connection.js.map +1 -1
- package/lib/client.js +3494 -3751
- package/lib/client.js.map +1 -1
- package/lib/contract/index.contract.js +2 -2
- package/lib/contract/index.contract.js.map +1 -1
- package/lib/contract/index.d.ts +13 -6
- package/lib/contract/index.d.ts.map +1 -1
- package/lib/contract/index.js +4 -4
- package/lib/contract/index.js.map +1 -1
- package/lib/contract/session-flow.d.ts +29 -0
- package/lib/contract/session-flow.d.ts.map +1 -0
- package/lib/contract/session-flow.js +2 -0
- package/lib/contract/session-flow.js.map +1 -0
- package/lib/host/dsh-read-adapter.d.ts +14 -0
- package/lib/host/dsh-read-adapter.d.ts.map +1 -1
- package/lib/host/dsh-read-adapter.js +30 -3
- package/lib/host/dsh-read-adapter.js.map +1 -1
- package/lib/host/index.d.ts +0 -4
- package/lib/host/index.d.ts.map +1 -1
- package/lib/host/index.js +0 -2
- package/lib/host/index.js.map +1 -1
- package/lib/host/remote.d.ts +2 -2
- package/lib/host/remote.d.ts.map +1 -1
- package/lib/host/remote.js +6 -7
- package/lib/host/remote.js.map +1 -1
- package/lib/host/service.d.ts +12 -3
- package/lib/host/service.d.ts.map +1 -1
- package/lib/host/service.js +63 -37
- package/lib/host/service.js.map +1 -1
- package/lib/host/session-creation.d.ts +12 -0
- package/lib/host/session-creation.d.ts.map +1 -0
- package/lib/host/session-creation.js +56 -0
- package/lib/host/session-creation.js.map +1 -0
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/manage/manager-sessions.d.ts +2 -2
- package/lib/manage/manager-sessions.d.ts.map +1 -1
- package/lib/manage/manager-sessions.js +30 -16
- package/lib/manage/manager-sessions.js.map +1 -1
- package/lib/manage/manager-support.d.ts +2 -1
- package/lib/manage/manager-support.d.ts.map +1 -1
- package/lib/manage/manager-support.js +21 -37
- package/lib/manage/manager-support.js.map +1 -1
- package/lib/manage/manager-worktrees.d.ts +3 -1
- package/lib/manage/manager-worktrees.d.ts.map +1 -1
- package/lib/manage/manager-worktrees.js +41 -19
- package/lib/manage/manager-worktrees.js.map +1 -1
- package/lib/manage/manager.d.ts +5 -1
- package/lib/manage/manager.d.ts.map +1 -1
- package/lib/manage/manager.js +30 -4
- package/lib/manage/manager.js.map +1 -1
- package/lib/provider/generated-path.d.ts +7 -0
- package/lib/provider/generated-path.d.ts.map +1 -0
- package/lib/provider/generated-path.js +57 -0
- package/lib/provider/generated-path.js.map +1 -0
- package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -1
- package/lib/provider/sidecar/sidecar-schema.js +7 -1
- package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
- package/lib/provider/transaction/operations/create.d.ts.map +1 -1
- package/lib/provider/transaction/operations/create.js +2 -0
- package/lib/provider/transaction/operations/create.js.map +1 -1
- package/lib/provider/transaction/support/path-safety.d.ts.map +1 -1
- package/lib/provider/transaction/support/path-safety.js +5 -43
- package/lib/provider/transaction/support/path-safety.js.map +1 -1
- package/lib/provider/types.d.ts +2 -0
- package/lib/provider/types.d.ts.map +1 -1
- package/lib/provider/types.js.map +1 -1
- package/lib/tool/create-session.d.ts +11 -0
- package/lib/tool/create-session.d.ts.map +1 -0
- package/lib/tool/create-session.js +19 -0
- package/lib/tool/create-session.js.map +1 -0
- package/lib/tool/dispatch-session.d.ts.map +1 -1
- package/lib/tool/dispatch-session.js +9 -5
- package/lib/tool/dispatch-session.js.map +1 -1
- package/lib/tool/native-session.d.ts +9 -0
- package/lib/tool/native-session.d.ts.map +1 -1
- package/lib/tool/native-session.js +47 -1
- package/lib/tool/native-session.js.map +1 -1
- package/lib/typert.host.js +236 -122
- package/lib/typert.remote-client.d.ts +7 -5
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +236 -122
- package/package.json +1 -5
- package/lib/client/permission/worktree-permission-icon.d.ts +0 -7
- package/lib/client/permission/worktree-permission-icon.d.ts.map +0 -1
- package/lib/client/permission/worktree-permission-icon.js +0 -119
- package/lib/client/permission/worktree-permission-icon.js.map +0 -1
- package/lib/client/permission/worktree-permission.d.ts +0 -21
- package/lib/client/permission/worktree-permission.d.ts.map +0 -1
- package/lib/client/permission/worktree-permission.js +0 -78
- package/lib/client/permission/worktree-permission.js.map +0 -1
- package/lib/client/surface/components/AccessConfirmation.d.ts +0 -9
- package/lib/client/surface/components/AccessConfirmation.d.ts.map +0 -1
- package/lib/client/surface/components/AccessConfirmation.js +0 -18
- package/lib/client/surface/components/AccessConfirmation.js.map +0 -1
- package/lib/contract/worktree-permission.d.ts +0 -75
- package/lib/contract/worktree-permission.d.ts.map +0 -1
- package/lib/contract/worktree-permission.js +0 -32
- package/lib/contract/worktree-permission.js.map +0 -1
- package/lib/host/permission-preset-append.d.ts +0 -15
- package/lib/host/permission-preset-append.d.ts.map +0 -1
- package/lib/host/permission-preset-append.js +0 -63
- package/lib/host/permission-preset-append.js.map +0 -1
- package/lib/host/worktree-permission-manager.d.ts +0 -14
- package/lib/host/worktree-permission-manager.d.ts.map +0 -1
- package/lib/host/worktree-permission-manager.js +0 -115
- package/lib/host/worktree-permission-manager.js.map +0 -1
- package/lib/host/worktree-permission.d.ts +0 -51
- package/lib/host/worktree-permission.d.ts.map +0 -1
- package/lib/host/worktree-permission.js +0 -251
- package/lib/host/worktree-permission.js.map +0 -1
- package/lib/manage/worktree-permission.d.ts +0 -3
- package/lib/manage/worktree-permission.d.ts.map +0 -1
- package/lib/manage/worktree-permission.js +0 -3
- 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.
|
|
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
|
|
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
|
|
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.
|
|
@@ -447,11 +462,7 @@ requires confirming that all tasks using them have stopped. Buttons show eligibl
|
|
|
447
462
|
confirmation includes only those targets, while ineligible items stay selected. Archive before
|
|
448
463
|
cleanup or removal from management. Results appear per Worktree; successful items are deselected and failures
|
|
449
464
|
remain selected for explicit retry. Main itself is never a batch target.
|
|
450
|
-
|
|
451
|
-
**Settings → Worktree → Errors & recovery**, with an independent Retry action. Retry restores
|
|
452
|
-
permissions only; it never repeats disk cleanup. Another target's success does not clear the failure.
|
|
453
|
-
Closing Dashboard stops remaining queued items; the submitted item's follow-up still completes
|
|
454
|
-
while the Worktree view remains active.
|
|
465
|
+
|
|
455
466
|
|
|
456
467
|
**Derived Worktrees** shows managed Worktrees in the same Workspace whose saved baseline matches
|
|
457
468
|
this checkout's current local branch. Overview previews five entries; the tab shows all matches,
|
|
@@ -677,9 +688,11 @@ text, actions and diagnostic details follow the font size selected in **Settings
|
|
|
677
688
|
immutable acquisition `baseCommit` remains separate and is not rewritten by that edit. The index is
|
|
678
689
|
kept in the DSH host plugin data directory, not in a project directory or DSH's raw data store. It
|
|
679
690
|
does not store Session content or a copy of the Workspace root.
|
|
680
|
-
-
|
|
681
|
-
|
|
682
|
-
|
|
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.
|
|
683
696
|
- One Session can have at most one active Worktree binding, while a Worktree can have many Sessions.
|
|
684
697
|
Removing or cleaning a Worktree never deletes a DSH Session. A broken active binding reports a
|
|
685
698
|
repair state instead of silently falling back to another Worktree.
|
|
@@ -712,20 +725,8 @@ text, actions and diagnostic details follow the font size selected in **Settings
|
|
|
712
725
|
remains a separate leading indicator. Visual Session ordering initially follows the newest `updatedAt` values and
|
|
713
726
|
remains browser-local; Main remains fixed first, Worktree drag updates only this local order projection,
|
|
714
727
|
and Main drag updates native Workspace order only after DSH accepts it.
|
|
715
|
-
-
|
|
716
|
-
|
|
717
|
-
selection, and official Auto review integration. It combines DSH `danger-full-access` with `ask`,
|
|
718
|
-
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
|
|
719
|
-
`workspace-write + ask` when possible or reports an unverified, retryable state. Permission
|
|
720
|
-
services may mount late or be replaced: retry uses the currently available capabilities without
|
|
721
|
-
restarting the Worktree Host. A temporarily missing service never grants Full Access, and an
|
|
722
|
-
explicit user restriction is preserved. It cannot exceed the sandbox imposed by the host running DSH.
|
|
723
|
-
- If the named preset is missing but native Session policy services are available, the same
|
|
724
|
-
confirmation applies `danger-full-access + ask` through native permission events instead.
|
|
725
|
-
Both effective values are verified before success is reported; the native menu may show
|
|
726
|
-
**Custom**. No synthetic preset identity is stored. Duplicate pending confirmations for the
|
|
727
|
-
same Workspace, Worktree, Session and path share one dialog; different targets remain separate.
|
|
728
|
-
- 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.
|
|
729
730
|
- Git must be installed and available on `PATH`. A missing Git executable shows install guidance
|
|
730
731
|
and no command block; the plugin does not run setup or installation commands.
|
|
731
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
|
|
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
|
|
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
|
-
|
|
330
|
+
权限由 DSH 原生设置管理。
|
|
317
331
|
Agent 或插件重启后,未配置自动注入的能力需要重新执行 `/cluworktree`。指令不接受额外参数。
|
|
318
332
|
所有发现、回报和补充投递仅限调用方 Workspace;传入其他 `workspaceId` 不会获得额外访问权。
|
|
319
333
|
这些 Session 是普通原生 Session,不是原生 subagent 子会话,也没有持久化的委派任务目录。
|
|
@@ -389,9 +403,7 @@ Worktree(含已归档和已清理记录),批量归档、清理磁盘或移
|
|
|
389
403
|
确认所有使用这些目录的任务均已停止。按钮显示可操作数量,确认弹窗仅包含适用目标,不适用项保留选择。
|
|
390
404
|
清理或移出管理前需先归档。结果逐项显示,成功项
|
|
391
405
|
取消选择,失败项保留选择供显式重试。Main 本身不会成为批量操作目标。
|
|
392
|
-
|
|
393
|
-
每项提供独立的重试入口。重试只恢复权限,不会再次清理磁盘;其他目标成功不会清除该项失败。
|
|
394
|
-
关闭 Dashboard 会停止剩余排队项;只要 Worktree 视图仍有效,已提交项的后续处理仍会完成。
|
|
406
|
+
|
|
395
407
|
|
|
396
408
|
**派生 Worktree** 显示同一 Workspace 中,已保存基线匹配当前 checkout 本地分支的受管理 Worktree。
|
|
397
409
|
概览预览前五项,页签显示全部匹配项,包括带有可用状态和路径的已归档条目;点击条目可打开其 Dashboard。
|
|
@@ -567,8 +579,10 @@ Worktree 设置采用 DSH 原生 Tab、状态标签和紧凑按钮。说明文
|
|
|
567
579
|
替换为除当前 Worktree branch 之外的本地或已获取的远端 branch,保存后的值会成为 Git Tab 选择器的默认值。
|
|
568
580
|
不可变的获取 `baseCommit` 与它分开保存,不会因该编辑被重写。索引位于 DSH host 的 plugin data
|
|
569
581
|
directory,不写入项目目录或 DSH raw data,也不保存 Session 内容或 Workspace 根目录副本。
|
|
570
|
-
-
|
|
571
|
-
|
|
582
|
+
- 新 Session 保留原 Workspace 与不可变的 header 目录。当前执行目录 projection 及其变更事件由
|
|
583
|
+
DSH 拥有;插件不改写 Session metadata。Active binding 必须匹配当前执行目录。离开、解绑或
|
|
584
|
+
清理 Worktree 不会将运行中的 Session 重定向到 Main;目录缺失时 DSH 可能在下一次原生操作中恢复。
|
|
585
|
+
缺少原生目录事实的旧注入 adapter 保留原有 cwd 派生兼容行为。
|
|
572
586
|
- 一个 Session 最多有一个 active Worktree binding,一个 Worktree 可以有多个 Session。移除或
|
|
573
587
|
清理 Worktree 不会删除 DSH Session。失效的 active binding 会显示 repair 状态,不会静默切换到
|
|
574
588
|
另一个 Worktree。
|
|
@@ -595,17 +609,8 @@ Worktree 设置采用 DSH 原生 Tab、状态标签和紧凑按钮。说明文
|
|
|
595
609
|
优先于运行中,运行中优先于已完成。Idle Session 不会贡献分组 dot;Worktree 健康状态仍
|
|
596
610
|
使用独立的前置指示器。视觉上的 Session 排序初始按最新的 `updatedAt` 值排列并只保存在浏览器本地;Main 固定为首行,Worktree 拖拽只
|
|
597
611
|
更新这个本地排序投影,Main 拖拽只有在 DSH 接受后才更新原生 Workspace 顺序。
|
|
598
|
-
-
|
|
599
|
-
|
|
600
|
-
DSH `danger-full-access` 与 `ask` 组合,保留审批提示,不改变 network 或 process policy。
|
|
601
|
-
预设与原生 Session 权限写入均不可用时尽可能回退到 `workspace-write + ask`,否则显示未验证且可重试的状态。权限服务
|
|
602
|
-
可以迟挂载或被替换:重试使用当前可用能力,不需要重启 Worktree Host。服务暂时缺失时
|
|
603
|
-
绝不授予 Full Access,并保留用户的显式限制;它不能突破 DSH 宿主设置的 sandbox 上限。
|
|
604
|
-
- 若命名预设缺失但原生 Session 权限服务可用,同一确认框会通过原生权限事件设置
|
|
605
|
-
`danger-full-access + ask`。仅在两个实际值均验证成功后报告生效;原生菜单可能显示
|
|
606
|
-
**Custom(自定义)**,不会存储虚构的预设身份。同一 Workspace、Worktree、Session 和路径
|
|
607
|
-
的重复待确认请求共用一个对话框,不同目标仍分别确认。
|
|
608
|
-
- 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 换行符。
|
|
609
614
|
- Git 必须已安装且可在 PATH 中使用。Git 可执行文件缺失时显示安装提示且不显示命令块;插件
|
|
610
615
|
不会执行 setup 或安装命令。
|
|
611
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":"
|
|
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';
|
|
@@ -70,7 +69,7 @@ export function WorktreeSurface(inputProps) {
|
|
|
70
69
|
? undefined
|
|
71
70
|
: (workspaceId) => {
|
|
72
71
|
closeDashboard();
|
|
73
|
-
inputProps.createMainSession?.(workspaceId);
|
|
72
|
+
void mutation.runMutation(async () => { await inputProps.createMainSession?.(workspaceId); });
|
|
74
73
|
},
|
|
75
74
|
};
|
|
76
75
|
const registrationState = useRegistrationState({ props });
|
|
@@ -255,7 +254,7 @@ export function WorktreeSurface(inputProps) {
|
|
|
255
254
|
...(bounds.ready
|
|
256
255
|
? { top: `${bounds.top}px`, height: `${bounds.height}px` }
|
|
257
256
|
: { height: '0px', visibility: 'hidden' }),
|
|
258
|
-
}, 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 })
|
|
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 &&
|
|
259
258
|
dashboardRecord === undefined &&
|
|
260
259
|
dashboard.sessionId === source.currentSessionId &&
|
|
261
260
|
source.workspaceIds.includes(dashboard.workspaceId) &&
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/client/entry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/client/entry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAclF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA+CtD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,UAAU,EAAE,gBAAgB,CAAC;KAC9B;CACF;AAED,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,kBAAkB;QAC1B,QAAQ,EAAE,iBAAiB,CAAC;KAC7B;CACF;AAED,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA2FpG,qFAAqF;AACrF,eAAO,MAAM,MAAM,UAA+F,CAAC;AAEnH;;;GAGG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAkfxC"}
|
package/lib/client/entry.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createElement } from 'react';
|
|
2
2
|
import { createSnapshotStore } from '@deepseek-ai/dsh-client-store';
|
|
3
|
+
import { createLocalSessionConnector } from './session/local-session.js';
|
|
3
4
|
import { WORKTREE_NS, en, zh } from './locales.js';
|
|
4
5
|
import { createWorktreeConnectionAdapter } from './worktree-connection.js';
|
|
5
6
|
import { createWorktreeToolChangeMonitor } from './worktree-tool-changes.js';
|
|
@@ -27,8 +28,6 @@ import { createVirtualWorkspaceMembership, } from './session/virtual-workspace-m
|
|
|
27
28
|
import { createWorktreeSessionConnector, } from './session/worktree-session.js';
|
|
28
29
|
import { renameWorktreeSession } from './session/session-rename.js';
|
|
29
30
|
import { openWorktreeSession } from './session/session-navigation.js';
|
|
30
|
-
import { createWorktreeFullAccessConfirmationController, } from './permission/worktree-permission.js';
|
|
31
|
-
import { installWorktreePermissionIcon } from './permission/worktree-permission-icon.js';
|
|
32
31
|
import { createWorktreeSessionForkCoordinator, } from './session/worktree-session-fork.js';
|
|
33
32
|
export { WORKTREE_CONNECTION_CHANNEL, WORKTREE_CONNECTION_ENDPOINTS, WorktreeConnectionError, createWorktreeConnectionAdapter, } from './worktree-connection.js';
|
|
34
33
|
function sidebarRightController(ctx) {
|
|
@@ -103,25 +102,11 @@ export function apply(ctx) {
|
|
|
103
102
|
installWorktreeCommandActivity(ctx);
|
|
104
103
|
installWorktreeSteerActivity(ctx);
|
|
105
104
|
const locale = ctx.locale;
|
|
106
|
-
if (typeof document !== 'undefined') {
|
|
107
|
-
ctx.effect(() => installWorktreePermissionIcon(document), 'clutch-dsh-worktree: permission icon cleanup');
|
|
108
|
-
}
|
|
109
105
|
ctx.effect(() => locale.register(WORKTREE_NS, { zh, en }), 'clutch-dsh-worktree: locale dictionaries');
|
|
110
106
|
const manager = createWorktreeConnectionAdapter(ctx.connection.rpc);
|
|
111
107
|
const viewReader = createWorktreeViewReader(manager);
|
|
112
|
-
const fullAccessConfirmation = createWorktreeFullAccessConfirmationController();
|
|
113
108
|
const restartNotice = new RestartNotice((signal) => manager.probeHost(signal));
|
|
114
|
-
const permissionNotice = createSnapshotStore([]);
|
|
115
|
-
const permissionManager = typeof document !== 'undefined' ? manager : undefined;
|
|
116
109
|
const dashboardStore = createSnapshotStore(undefined);
|
|
117
|
-
const reportPermissionNotice = (input, result) => {
|
|
118
|
-
restartNotice.reportPermissionResult(result);
|
|
119
|
-
const visible = result.status === 'fallback-workspace-write' ||
|
|
120
|
-
result.status === 'user-restricted' ||
|
|
121
|
-
result.status === 'unverified';
|
|
122
|
-
const remaining = permissionNotice.getSnapshot().filter((notice) => notice.workspaceId !== input.workspaceId || notice.worktreeId !== input.worktreeId);
|
|
123
|
-
permissionNotice.set(visible ? [...remaining, { ...input, result }] : remaining);
|
|
124
|
-
};
|
|
125
110
|
const sessions = ctx.sessions;
|
|
126
111
|
const slots = ctx.slots;
|
|
127
112
|
slots.inject('conversation.input.dock', () => slots.register({
|
|
@@ -183,7 +168,6 @@ export function apply(ctx) {
|
|
|
183
168
|
toolChanges.start();
|
|
184
169
|
ctx.effect(() => () => manager.dispose(), 'clutch-dsh-worktree: connection cleanup');
|
|
185
170
|
ctx.effect(() => () => viewReader.dispose(), 'clutch-dsh-worktree: view reader cleanup');
|
|
186
|
-
ctx.effect(() => () => fullAccessConfirmation.dispose(), 'clutch-dsh-worktree: Full Access confirmation cleanup');
|
|
187
171
|
ctx.effect(() => () => virtualWorkspaceMembership.dispose(), 'clutch-dsh-worktree: Workspace membership cleanup');
|
|
188
172
|
ctx.effect(() => () => contextProjection.dispose(), 'clutch-dsh-worktree: Session context cleanup');
|
|
189
173
|
void contextProjection.refresh();
|
|
@@ -303,17 +287,31 @@ export function apply(ctx) {
|
|
|
303
287
|
}
|
|
304
288
|
const worktreeSessionConnector = createWorktreeSessionConnector({
|
|
305
289
|
manager,
|
|
290
|
+
viewReader,
|
|
306
291
|
sessions: ctx.sessions.list,
|
|
307
292
|
archivedSessionIds: () => ctx.workspaces.list.getSnapshot().archivedSessionIds,
|
|
308
293
|
createSession: async (input) => String(await sessions.create(input)),
|
|
294
|
+
createBoundSession: (input) => manager.createWorktreeSession({
|
|
295
|
+
workspaceId: input.workspaceId, worktreeId: input.worktreeId,
|
|
296
|
+
requestId: input.requestId,
|
|
297
|
+
}),
|
|
309
298
|
ensureSessionWorkspace,
|
|
310
|
-
permission: permissionManager,
|
|
311
|
-
confirmFullAccess: permissionManager === undefined
|
|
312
|
-
? undefined
|
|
313
|
-
: fullAccessConfirmation.request,
|
|
314
|
-
onPermissionResult: reportPermissionNotice,
|
|
315
299
|
openSession: (sessionId) => openWorktreeSession(ctx.uiWorkspace, ctx.sessions, sessionId),
|
|
316
300
|
});
|
|
301
|
+
const localSessionConnector = createLocalSessionConnector({
|
|
302
|
+
manager,
|
|
303
|
+
canReuseSession: (input) => manager.canReuseLocalSession(input),
|
|
304
|
+
sessions: ctx.sessions.list,
|
|
305
|
+
workspace: (id) => ctx.workspaces.list.getSnapshot().items.find((item) => item.workspaceId === id),
|
|
306
|
+
archivedSessionIds: () => ctx.workspaces.list.getSnapshot().archivedSessionIds,
|
|
307
|
+
createSession: async ({ workspaceId, cwd, sessionId }) => String(await sessions.create({
|
|
308
|
+
workspaceId: workspaceId, cwd,
|
|
309
|
+
...(sessionId === undefined ? {} : { sessionId: sessionId }),
|
|
310
|
+
})),
|
|
311
|
+
refreshSession: async (id) => { await sessions.refreshProjections(id); },
|
|
312
|
+
openSession: (id) => openWorktreeSession(ctx.uiWorkspace, ctx.sessions, id),
|
|
313
|
+
});
|
|
314
|
+
ctx.effect(() => () => localSessionConnector.dispose(), 'clutch-dsh-worktree: Local Session connector cleanup');
|
|
317
315
|
ctx.effect(() => () => worktreeSessionConnector.dispose(), 'clutch-dsh-worktree: Worktree Session connector cleanup');
|
|
318
316
|
const openDashboardForSession = (sessionId) => {
|
|
319
317
|
switchViewMode('worktree');
|
|
@@ -407,26 +405,14 @@ export function apply(ctx) {
|
|
|
407
405
|
manager,
|
|
408
406
|
viewReader,
|
|
409
407
|
subscribeToolChanges: toolChanges.subscribe,
|
|
410
|
-
permission: permissionManager,
|
|
411
|
-
confirmFullAccess: permissionManager === undefined
|
|
412
|
-
? undefined
|
|
413
|
-
: fullAccessConfirmation.request,
|
|
414
|
-
fullAccessConfirmation: typeof document === 'undefined'
|
|
415
|
-
? undefined
|
|
416
|
-
: fullAccessConfirmation,
|
|
417
|
-
onPermissionResult: reportPermissionNotice,
|
|
418
|
-
onPermissionNotice: reportPermissionNotice,
|
|
419
|
-
permissionNotice,
|
|
420
408
|
createWorkspace: async () => {
|
|
421
409
|
const workspacePath = await ctx.uiWorkspace.pickDirectory();
|
|
422
410
|
if (workspacePath !== null)
|
|
423
411
|
await ctx.workspaces.create({ path: workspacePath });
|
|
424
412
|
},
|
|
425
|
-
createSessionForWorktree: (input) => worktreeSessionConnector.create(input),
|
|
413
|
+
createSessionForWorktree: (input, beforeOpen) => worktreeSessionConnector.create(input, beforeOpen),
|
|
426
414
|
invalidateWorktreeContext: (workspaceId, options) => contextProjection.invalidate(workspaceId, options),
|
|
427
|
-
createMainSession: (workspaceId) =>
|
|
428
|
-
ctx.uiWorkspace.startSession(workspaceId);
|
|
429
|
-
},
|
|
415
|
+
createMainSession: (workspaceId) => localSessionConnector.create(workspaceId),
|
|
430
416
|
renameWorkspace: async (workspaceId, title) => {
|
|
431
417
|
await ctx.workspaces.rename(workspaceId, title);
|
|
432
418
|
},
|
|
@@ -474,9 +460,6 @@ export function apply(ctx) {
|
|
|
474
460
|
for (const sessionId of input.sessionIds) {
|
|
475
461
|
virtualWorkspaceMembership.removeSession(sessionId);
|
|
476
462
|
}
|
|
477
|
-
permissionNotice.set(permissionNotice.getSnapshot().filter((notice) => notice.workspaceId !== input.workspaceId ||
|
|
478
|
-
(notice.worktreeId !== input.worktreeId &&
|
|
479
|
-
(notice.sessionId === undefined || !input.sessionIds.includes(notice.sessionId)))));
|
|
480
463
|
},
|
|
481
464
|
}),
|
|
482
465
|
}, WorktreeOverlay));
|