@cerbur/clutch-dsh-worktree 0.1.7 → 0.1.9

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 (159) hide show
  1. package/README.md +47 -32
  2. package/README.zh.md +39 -25
  3. package/lib/client/WorktreeContext.d.ts +1 -1
  4. package/lib/client/WorktreeContext.d.ts.map +1 -1
  5. package/lib/client/WorktreeContext.js +1 -1
  6. package/lib/client/WorktreeContext.js.map +1 -1
  7. package/lib/client/WorktreeHeroContext.d.ts.map +1 -1
  8. package/lib/client/WorktreeHeroContext.js +1 -1
  9. package/lib/client/WorktreeHeroContext.js.map +1 -1
  10. package/lib/client/WorktreeModeAction.d.ts.map +1 -1
  11. package/lib/client/WorktreeModeAction.js.map +1 -1
  12. package/lib/client/WorktreeSurface.d.ts +1 -1
  13. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  14. package/lib/client/WorktreeSurface.js +245 -53
  15. package/lib/client/WorktreeSurface.js.map +1 -1
  16. package/lib/client/dsh-rc1-slot-contract.d.ts +43 -0
  17. package/lib/client/dsh-rc1-slot-contract.d.ts.map +1 -0
  18. package/lib/client/dsh-rc1-slot-contract.js +2 -0
  19. package/lib/client/dsh-rc1-slot-contract.js.map +1 -0
  20. package/lib/client/dsh-slot-contract.d.ts +43 -0
  21. package/lib/client/dsh-slot-contract.d.ts.map +1 -0
  22. package/lib/client/dsh-slot-contract.js +2 -0
  23. package/lib/client/dsh-slot-contract.js.map +1 -0
  24. package/lib/client/entry.d.ts +2 -2
  25. package/lib/client/entry.d.ts.map +1 -1
  26. package/lib/client/entry.js +144 -26
  27. package/lib/client/entry.js.map +1 -1
  28. package/lib/client/locales.d.ts +12 -0
  29. package/lib/client/locales.d.ts.map +1 -1
  30. package/lib/client/locales.js +12 -0
  31. package/lib/client/locales.js.map +1 -1
  32. package/lib/client/view-mode-store.d.ts +1 -1
  33. package/lib/client/view-mode-store.d.ts.map +1 -1
  34. package/lib/client/view-mode-store.js +1 -1
  35. package/lib/client/view-mode-store.js.map +1 -1
  36. package/lib/client/view-mode.d.ts +20 -6
  37. package/lib/client/view-mode.d.ts.map +1 -1
  38. package/lib/client/view-mode.js +35 -10
  39. package/lib/client/view-mode.js.map +1 -1
  40. package/lib/client/virtual-workspace-membership.d.ts +12 -10
  41. package/lib/client/virtual-workspace-membership.d.ts.map +1 -1
  42. package/lib/client/virtual-workspace-membership.js +82 -57
  43. package/lib/client/virtual-workspace-membership.js.map +1 -1
  44. package/lib/client/worktree-context-store.d.ts +7 -15
  45. package/lib/client/worktree-context-store.d.ts.map +1 -1
  46. package/lib/client/worktree-context-store.js +20 -13
  47. package/lib/client/worktree-context-store.js.map +1 -1
  48. package/lib/client/worktree-context.js +1 -1
  49. package/lib/client/worktree-context.js.map +1 -1
  50. package/lib/client/worktree-error-copy.d.ts.map +1 -1
  51. package/lib/client/worktree-error-copy.js +8 -0
  52. package/lib/client/worktree-error-copy.js.map +1 -1
  53. package/lib/client/worktree-expand-state.d.ts +5 -4
  54. package/lib/client/worktree-expand-state.d.ts.map +1 -1
  55. package/lib/client/worktree-expand-state.js.map +1 -1
  56. package/lib/client/worktree-session-fork.d.ts +18 -3
  57. package/lib/client/worktree-session-fork.d.ts.map +1 -1
  58. package/lib/client/worktree-session-fork.js +125 -36
  59. package/lib/client/worktree-session-fork.js.map +1 -1
  60. package/lib/client/worktree-session-order.d.ts +2 -2
  61. package/lib/client/worktree-session-order.d.ts.map +1 -1
  62. package/lib/client/worktree-session.d.ts.map +1 -1
  63. package/lib/client/worktree-session.js +3 -1
  64. package/lib/client/worktree-session.js.map +1 -1
  65. package/lib/client/worktree-surface-rows.d.ts.map +1 -1
  66. package/lib/client/worktree-surface-rows.js +8 -1
  67. package/lib/client/worktree-surface-rows.js.map +1 -1
  68. package/lib/client/worktree-surface-types.d.ts +19 -1
  69. package/lib/client/worktree-surface-types.d.ts.map +1 -1
  70. package/lib/client/worktree-view-read.d.ts +18 -8
  71. package/lib/client/worktree-view-read.d.ts.map +1 -1
  72. package/lib/client/worktree-view-read.js +75 -10
  73. package/lib/client/worktree-view-read.js.map +1 -1
  74. package/lib/client.js +1404 -178
  75. package/lib/client.js.map +1 -1
  76. package/lib/contract/index.d.ts +6 -2
  77. package/lib/contract/index.d.ts.map +1 -1
  78. package/lib/contract/index.js +4 -0
  79. package/lib/contract/index.js.map +1 -1
  80. package/lib/host/dsh-read-adapter.d.ts +1 -0
  81. package/lib/host/dsh-read-adapter.d.ts.map +1 -1
  82. package/lib/host/dsh-read-adapter.js +6 -0
  83. package/lib/host/dsh-read-adapter.js.map +1 -1
  84. package/lib/host/service.d.ts +2 -0
  85. package/lib/host/service.d.ts.map +1 -1
  86. package/lib/host/service.js +6 -1
  87. package/lib/host/service.js.map +1 -1
  88. package/lib/host/worktree-permission-manager.d.ts.map +1 -1
  89. package/lib/host/worktree-permission-manager.js +3 -1
  90. package/lib/host/worktree-permission-manager.js.map +1 -1
  91. package/lib/host/worktree-permission.d.ts +3 -2
  92. package/lib/host/worktree-permission.d.ts.map +1 -1
  93. package/lib/host/worktree-permission.js +29 -5
  94. package/lib/host/worktree-permission.js.map +1 -1
  95. package/lib/index.d.ts +2 -1
  96. package/lib/index.d.ts.map +1 -1
  97. package/lib/index.js +1 -0
  98. package/lib/index.js.map +1 -1
  99. package/lib/manage/manager-context.d.ts +2 -0
  100. package/lib/manage/manager-context.d.ts.map +1 -1
  101. package/lib/manage/manager-worktrees.d.ts +5 -0
  102. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  103. package/lib/manage/manager-worktrees.js +130 -39
  104. package/lib/manage/manager-worktrees.js.map +1 -1
  105. package/lib/manage/manager.d.ts +20 -0
  106. package/lib/manage/manager.d.ts.map +1 -1
  107. package/lib/manage/manager.js +93 -13
  108. package/lib/manage/manager.js.map +1 -1
  109. package/lib/manage/types.d.ts +9 -1
  110. package/lib/manage/types.d.ts.map +1 -1
  111. package/lib/provider/git.d.ts +37 -9
  112. package/lib/provider/git.d.ts.map +1 -1
  113. package/lib/provider/git.js +166 -61
  114. package/lib/provider/git.js.map +1 -1
  115. package/lib/provider/index.d.ts +5 -1
  116. package/lib/provider/index.d.ts.map +1 -1
  117. package/lib/provider/index.js +4 -0
  118. package/lib/provider/index.js.map +1 -1
  119. package/lib/provider/mutation-lock.d.ts +37 -0
  120. package/lib/provider/mutation-lock.d.ts.map +1 -0
  121. package/lib/provider/mutation-lock.js +270 -0
  122. package/lib/provider/mutation-lock.js.map +1 -0
  123. package/lib/provider/mutation-token.d.ts +8 -0
  124. package/lib/provider/mutation-token.d.ts.map +1 -0
  125. package/lib/provider/mutation-token.js +20 -0
  126. package/lib/provider/mutation-token.js.map +1 -0
  127. package/lib/provider/repository-fingerprint.d.ts +8 -0
  128. package/lib/provider/repository-fingerprint.d.ts.map +1 -0
  129. package/lib/provider/repository-fingerprint.js +13 -0
  130. package/lib/provider/repository-fingerprint.js.map +1 -0
  131. package/lib/provider/sidecar-persistence.d.ts +7 -3
  132. package/lib/provider/sidecar-persistence.d.ts.map +1 -1
  133. package/lib/provider/sidecar-persistence.js +118 -44
  134. package/lib/provider/sidecar-persistence.js.map +1 -1
  135. package/lib/provider/sidecar-schema.d.ts +1 -1
  136. package/lib/provider/sidecar-schema.d.ts.map +1 -1
  137. package/lib/provider/sidecar-schema.js +140 -8
  138. package/lib/provider/sidecar-schema.js.map +1 -1
  139. package/lib/provider/sidecar.d.ts +3 -1
  140. package/lib/provider/sidecar.d.ts.map +1 -1
  141. package/lib/provider/sidecar.js +7 -2
  142. package/lib/provider/sidecar.js.map +1 -1
  143. package/lib/provider/subprocess.d.ts +37 -0
  144. package/lib/provider/subprocess.d.ts.map +1 -0
  145. package/lib/provider/subprocess.js +327 -0
  146. package/lib/provider/subprocess.js.map +1 -0
  147. package/lib/provider/transaction.d.ts +65 -0
  148. package/lib/provider/transaction.d.ts.map +1 -0
  149. package/lib/provider/transaction.js +1011 -0
  150. package/lib/provider/transaction.js.map +1 -0
  151. package/lib/provider/types.d.ts +98 -7
  152. package/lib/provider/types.d.ts.map +1 -1
  153. package/lib/provider/types.js +1 -1
  154. package/lib/provider/types.js.map +1 -1
  155. package/lib/typert.host.js +29 -25
  156. package/lib/typert.remote-client.d.ts +2 -2
  157. package/lib/typert.remote-client.d.ts.map +1 -1
  158. package/lib/typert.remote-client.js +29 -25
  159. package/package.json +48 -32
package/README.md CHANGED
@@ -65,6 +65,7 @@ the adjacent Import tab, and a standard dropdown containing safe example branch/
65
65
  - Highlight the DSH current Session in Worktree view; entering Worktree mode or switching the current Session temporarily reveals its Workspace/Main/Worktree path, expands Session overflow only when the row is outside the first five, clears a hiding search, and scrolls the row into view; this browser-local behavior does not change persisted expansion choices.
66
66
  - Keep the current local branch or Worktree branch visible as read-only context in the existing
67
67
  Conversation title row and in the blank-session Hero.
68
+ - Copy the ID of any non-blank Worktree Session from its Session actions menu.
68
69
  - Keep Conversation and Hero context stable across same-Session snapshot updates and Session
69
70
  switches, while retaining the last valid context during replacement reads.
70
71
  - Truncate long branch labels to fit their chips and reveal the complete value through a native
@@ -79,22 +80,14 @@ the adjacent Import tab, and a standard dropdown containing safe example branch/
79
80
 
80
81
  ### Compatibility and prerequisites
81
82
 
82
- - For development and source validation, use a clean checkout of the official [DeepSeek Harness
83
- repository](https://github.com/deepseek-ai/deepseek-harness) on its current default branch. The
84
- repository currently uses `master` rather than `main`; it is developer-preview software, so its
85
- package and API contracts may change. Run the upstream install/build steps before installing
86
- this plugin into that profile.
87
- - The target profile, such as `web` or `demo`, must already start successfully, and the plugin
88
- must be installed into the same profile that launches the Web UI.
89
- - DSH Client must provide the native `@deepseek-ai/dsh-client-ui-conversation` package and its
90
- `conversation.session.header.actions` seat.
91
- - Git must be installed and available on `PATH` for Worktree operations. A Workspace must be
92
- inside a Git repository with an initial commit and at least one local branch. A missing Git
93
- executable shows install guidance and no command block; a missing repository, initial commit,
94
- or local branch shows copyable setup commands. The plugin does not run setup or installation
95
- commands or modify Workspace files.
96
- - The package declares an installable `dsh.bundle` and provides `cordis.patch.yml`; its browser
97
- UI is declared through the `dsh.client` metadata.
83
+ The supported compatibility facts are:
84
+
85
+ | Component | Min Version | Notes |
86
+ | --- | --- | --- |
87
+ | DSH Client | `>=0.1.2-rc.1` | Requires the Session/Workspace Controllers and Client Store |
88
+ | DSH Host | `>=0.1.2-rc.1` | Requires the Typert Gateway `/api` protocol and subprocess capability |
89
+ | Git | `>=2.20.0` | Requires worktree core commands and branch discovery |
90
+ | Node.js | `>=20.0.0` | LTS is recommended |
98
91
 
99
92
  ## Installation
100
93
 
@@ -130,12 +123,13 @@ npm view @cerbur/clutch-dsh-worktree version --registry=https://registry.npmjs.o
130
123
 
131
124
  For source-based development or validation, prepare the upstream checkout first. The current
132
125
  upstream default branch is `master`; follow the repository's default branch if it changes later.
126
+ For the minimum rc.1 compatibility validation path, check out `dsh-v0.1.2-rc.1`:
133
127
 
134
128
  ```bash
135
129
  git clone https://github.com/deepseek-ai/deepseek-harness.git
136
130
  cd deepseek-harness
137
131
  git fetch origin
138
- git pull --ff-only origin master
132
+ git checkout dsh-v0.1.2-rc.1
139
133
  pnpm install
140
134
  pnpm run build
141
135
  ```
@@ -238,8 +232,8 @@ blank-session Hero. The displayed language follows DSH's current language settin
238
232
  chooses the next available numeric suffix for the name; existing names are skipped.
239
233
  3. The target Worktree path must be absolute, belong to the same Project, and differ from the
240
234
  Project root. Relative paths, a different Project, or the Project root are rejected.
241
- 4. Git must be installed and available on `PATH`. A missing Git executable shows install guidance
242
- and no command block; install Git, restart DSH, and retry. If the repository, initial commit,
235
+ 4. Git must be installed and available on `PATH`. A missing Git executable shows install guidance and no command block;
236
+ install Git, restart DSH, and retry. If the repository, initial commit,
243
237
  or local branch is missing, follow the copyable setup commands in the dialog. The plugin only
244
238
  renders this guidance; it does not run setup or installation commands or edit business files.
245
239
 
@@ -264,9 +258,10 @@ blank-session Hero. The displayed language follows DSH's current language settin
264
258
 
265
259
  - Use Main's `+` to create a normal DSH Session in the Project-root view.
266
260
  - Use a Worktree's `+` to create or reuse a Session with that Worktree as its runtime cwd. The
267
- plugin calls the upstream runtime with `session.create({ cwd: worktreePath })`, then saves the
268
- external binding and opens the Session. The browser-local `{ workspaceId, sessionId }` membership
269
- projection is refreshed afterward, so the newly created Session does not briefly appear in Main.
261
+ plugin calls the DSH Session Controller with `ctx.sessions.create({ cwd: worktreePath })`, then
262
+ saves the external binding and opens the Session. The browser-local `{ workspaceId, sessionId }`
263
+ membership projection is refreshed afterward, so the newly created Session does not briefly
264
+ appear in Main.
270
265
  - The connector reuses an unarchived blank Session with the exact target cwd when possible. An
271
266
  already-bound Session opens directly; an unbound candidate is bound before projection and
272
267
  opening. Otherwise the new-Session flow is `create → bind → open → refresh`, and concurrent
@@ -324,6 +319,7 @@ blank-session Hero. The displayed language follows DSH's current language settin
324
319
 
325
320
  - Drag Worktrees within their owning Workspace. The ordered `worktrees` array is persisted in
326
321
  the plugin sidecar; Main is a fixed first row and Worktrees cannot move across Workspaces.
322
+ - Newly created or imported Worktrees are inserted at the head of their Workspace's Worktree list; existing Worktree order is preserved and Main remains fixed first.
327
323
  - Open the shared Main and Worktree options menu to copy the selected row's absolute path. Main
328
324
  and detached/removed Worktrees show only `Copy path`; active Worktrees also show `Remove
329
325
  Worktree` with a confirmation dialog.
@@ -354,9 +350,10 @@ blank-session Hero. The displayed language follows DSH's current language settin
354
350
  ### Understand status and recovery messages
355
351
 
356
352
  - `ready` means the Worktree is available. `repair` identifies a missing or invalid Worktree,
357
- Session, binding, or cwd. `detached` means the Git Worktree was removed while the relationship
358
- was retained. An active binding pointing to a missing Worktree produces an explicit repair
359
- warning or error; it never silently falls back to another Worktree.
353
+ Session, binding, or cwd. `recovery-needed` means a Git/sidecar operation or identity check is
354
+ unresolved and destructive actions are blocked. `detached` means the Git Worktree was removed
355
+ while the relationship was retained. An active binding pointing to a missing Worktree produces
356
+ an explicit repair warning or error; it never silently falls back to another Worktree.
360
357
  - Worktree health is a runtime Git projection and is not written to the sidecar. Git readiness
361
358
  failures are shown per Workspace: a missing Git executable shows installation guidance without
362
359
  commands, while repository, initial commit, or local branch failures show copyable setup
@@ -398,19 +395,37 @@ store a copy of `projectRoot` or any Session content. If the sidecar is unavaila
398
395
  the native Project/Session view remains readable and the plugin becomes degraded/read-only; an
399
396
  empty index must never overwrite the native DSH lists.
400
397
 
398
+ The sidecar accepts v1 and v2 snapshots for backwards-compatible reads. Legacy records are
399
+ normalized in memory, and the first successful mutation atomically upgrades the shard to v3.
400
+ New v3 snapshots use a revision, an opaque repository fingerprint, and durable pending-operation
401
+ metadata for Git create/remove. A transitional v3 snapshot containing an older raw repository
402
+ field is read and cleaned on its next stable write. Invalid JSON, unknown schema versions, and
403
+ invariant violations are reported as corruption rather than reset to an empty index.
404
+
401
405
  Each Session has at most one active Worktree binding, while a Worktree may have multiple bound
402
406
  Sessions. Rebinding the same Session to the same Worktree is idempotent; binding it to two active
403
407
  Worktrees is a conflict. A Session with no binding, a Main binding, or a detached binding runs
404
408
  with the Project root as cwd. An active Worktree binding runs with that Worktree path. The cwd is
405
409
  derived for each execution and is never persisted back into DSH Session metadata.
406
410
 
407
- Worktree creation creates the Git Worktree before recording its external relationship. If the
408
- sidecar write fails, the new Git Worktree is cleaned up when possible. A failed Worktree deletion
409
- does not change the sidecar state, so the relationship remains retryable. Session creation uses
410
- the native DSH API before binding; a binding failure never deletes or modifies the already-created
411
- Session.
412
-
413
- The Worktree session flow sends the independent Worktree cwd through the upstream DSH runtime and
411
+ Worktree creation creates the Git Worktree before recording its external relationship. Git
412
+ create/remove mutations are serialized across Host processes per Workspace and repository,
413
+ record a durable pending operation, and verify the actual Git result before publishing stable
414
+ sidecar state. If a create cannot be reconciled or a path/repository identity changes, the
415
+ operation remains explicitly recoverable; the plugin never uses force removal or deletes an
416
+ unknown directory. If a sidecar write fails, the new Git Worktree is cleaned up when possible. A
417
+ failed Worktree deletion does not silently change the relation, so it remains retryable or is
418
+ marked `recovery-needed`. Session creation uses the native DSH API before binding; a binding
419
+ failure never deletes or modifies the already-created Session.
420
+
421
+ On Host startup, the plugin performs a best-effort safe recovery for known DSH Workspaces. It may
422
+ finalize a pending create/remove only when Git path and repository identity are certain; otherwise
423
+ it retains the marker and surfaces `WORKTREE_RECOVERY_REQUIRED` or
424
+ `WORKTREE_IDENTITY_CHANGED`. It never guesses at destructive cleanup. A destructive action may
425
+ also carry an opaque mutation token from the latest Worktree projection so a stale UI cannot act
426
+ on a changed record.
427
+
428
+ The Worktree session flow sends the independent Worktree cwd through the DSH Session Controller and
414
429
  keeps `{ workspaceId, sessionId }` as a browser-local membership projection rather than a
415
430
  persistent DSH attach. It does not modify DSH source, Session metadata, or native Workspace
416
431
  storage. The projection is replayed after native list refreshes and removed when the binding
package/README.zh.md CHANGED
@@ -58,6 +58,7 @@ Session 元数据、原生列表和会话历史的唯一事实来源。插件只
58
58
  - 在 Worktree view 高亮 DSH 当前 Session;进入 Worktree 模式或切换当前会话时,临时展开其 Workspace/Main/Worktree 路径;只有当前行不在前五行时才展开 Session 五行溢出,随后清空隐藏它的搜索并滚动定位;这一浏览器本地行为不改变已保存的展开选择。
59
59
  - 在已有 Conversation 的标题行以及新会话空白 Hero 中,以只读方式显示当前 local branch 或
60
60
  Worktree branch 上下文。
61
+ - 在普通 Worktree Session 的 Session 操作菜单中复制 Session ID。
61
62
  - 在同一个 Session 的 snapshot 更新以及 Session 切换期间保持 Conversation 和 Hero 上下文
62
63
  稳定;替换读取进行时保留上一次有效上下文。
63
64
  - 过长的 branch 名称在 chip 中折叠,并通过原生 hover card 展示完整值;Sidebar footer action
@@ -70,20 +71,14 @@ Session 元数据、原生列表和会话历史的唯一事实来源。插件只
70
71
 
71
72
  ### 兼容性与前置条件
72
73
 
73
- - 开发和源码验证应使用官方 [DeepSeek Harness 仓库](https://github.com/deepseek-ai/deepseek-harness)
74
- 的干净 checkout,并跟随仓库当前默认分支。该仓库当前使用 `master` 而不是 `main`,且仍是
75
- developer preview,package API contract 可能变化;在向 profile 安装本 plugin 前,先完成
76
- upstream 的安装和构建步骤。
77
- - 目标 profile(例如 `web` `demo`)必须已经可以正常启动,且 plugin 必须安装到实际
78
- 启动 Web UI 的同一个 profile。
79
- - DSH Client 必须提供原生 `@deepseek-ai/dsh-client-ui-conversation` package 及其
80
- `conversation.session.header.actions` seat。
81
- - Worktree 操作要求 Git 已安装且可在 PATH 中使用。Workspace 必须位于 Git repository 中,
82
- 且至少有一个初始 commit 和本地 branch。Git 可执行文件缺失时显示安装提示且不显示命令块;
83
- 缺少 repository、初始 commit 或本地 branch 时显示可复制的 setup 命令。插件不会执行 setup
84
- 或安装命令,也不会修改 Workspace 文件。
85
- - package 声明了可安装的 `dsh.bundle` 并提供 `cordis.patch.yml`;浏览器 UI 通过
86
- `dsh.client` metadata 声明。
74
+ 兼容性事实表如下:
75
+
76
+ | 组件 / Component | 最低版本 / Min Version | 说明 / Notes |
77
+ | --- | --- | --- |
78
+ | DSH Client | `>=0.1.2-rc.1` | 依赖 Session/Workspace Controller 及 Client Store |
79
+ | DSH Host | `>=0.1.2-rc.1` | 依赖 Typert Gateway `/api` 协议与 subprocess capability |
80
+ | Git | `>=2.20.0` | 要求支持 worktree 核心命令与 branch 发现 |
81
+ | Node.js | `>=20.0.0` | 推荐使用 LTS 版本 |
87
82
 
88
83
  ## 安装
89
84
 
@@ -117,13 +112,14 @@ npm view @cerbur/clutch-dsh-worktree version --registry=https://registry.npmjs.o
117
112
  ### 准备当前 upstream DSH checkout
118
113
 
119
114
  进行源码开发或验证时,先准备 upstream checkout。当前 upstream 默认分支是 `master`;如果仓库
120
- 未来切换默认分支,应跟随仓库的当前默认分支。
115
+ 未来切换默认分支,应跟随仓库的当前默认分支。最小 rc.1 兼容性验证路径切换到
116
+ `dsh-v0.1.2-rc.1`:
121
117
 
122
118
  ```bash
123
119
  git clone https://github.com/deepseek-ai/deepseek-harness.git
124
120
  cd deepseek-harness
125
121
  git fetch origin
126
- git pull --ff-only origin master
122
+ git checkout dsh-v0.1.2-rc.1
127
123
  pnpm install
128
124
  pnpm run build
129
125
  ```
@@ -246,10 +242,10 @@ pnpm dsh plugin --profile web remove @cerbur/clutch-dsh-worktree
246
242
  ### 创建 Main 和 Worktree Session
247
243
 
248
244
  - 使用 Main 的 `+`,在 Project 根目录视角中创建普通 DSH Session。
249
- - 使用 Worktree 的 `+`,创建或复用 runtime cwd 指向该 Worktree 的 Session。插件通过 upstream
250
- runtime 调用 `session.create({ cwd: worktreePath })`,随后保存外部 binding 并打开该 Session。
251
- 当前浏览器内的 `{ workspaceId, sessionId }` membership projection 会在之后刷新,因此新建
252
- Session 不会短暂出现在 Main 中。
245
+ - 使用 Worktree 的 `+`,创建或复用 runtime cwd 指向该 Worktree 的 Session。插件通过 DSH
246
+ Session Controller 调用 `ctx.sessions.create({ cwd: worktreePath })`,随后保存外部 binding
247
+ 并打开该 Session。当前浏览器内的 `{ workspaceId, sessionId }` membership projection 会在
248
+ 之后刷新,因此新建 Session 不会短暂出现在 Main 中。
253
249
  - 如果存在目标 cwd 完全匹配的未归档 blank Session,连接器会优先复用它。已绑定的 Session
254
250
  会直接打开;未绑定的候选会先 binding,再 projection 和打开。否则执行
255
251
  新建路径执行 `create → bind → open → refresh`,同一个 Worktree 的并发点击会合并。
@@ -297,6 +293,7 @@ pnpm dsh plugin --profile web remove @cerbur/clutch-dsh-worktree
297
293
 
298
294
  - 在所属 Workspace 内拖动 Worktree。排序持久化在 plugin sidecar 的有序 `worktrees` 数组中;
299
295
  Main 是固定的第一行,Worktree 不能跨 Workspace 移动。
296
+ - 新创建或新导入的 Worktree 会插入所属 Workspace 的 Worktree 列表队头;已有 Worktree 顺序保持不变,Main 固定在第一位。
300
297
  - 打开 Main 和 Worktree 共用的选项菜单复制所选行的绝对路径。Main 和 detached/removed Worktree
301
298
  只显示“复制路径”;active Worktree 还显示“移除 Worktree”并要求确认。
302
299
  - 导入的 Worktree 与 plugin 创建的 Worktree 显示相同的 active 选项菜单。两种来源都执行真实
@@ -324,6 +321,7 @@ pnpm dsh plugin --profile web remove @cerbur/clutch-dsh-worktree
324
321
  ### 理解状态与恢复提示
325
322
 
326
323
  - `ready` 表示 Worktree 可用。`repair` 表示 Worktree、Session、binding 或 cwd 缺失/无效。
324
+ `recovery-needed` 表示 Git/sidecar 操作或身份校验尚未解决,破坏性操作会被阻止。
327
325
  `detached` 表示 Git Worktree 已被移除,但关系仍然保留。active binding 指向缺失
328
326
  Worktree 时会显示明确的 repair 警告或错误,不会静默切换到其他 Worktree。
329
327
  - Worktree health 是 Git 的运行时 projection,不写入 sidecar。Git 前置条件失败按
@@ -361,16 +359,32 @@ DSH 管理原始 Project/Workspace 身份和根目录、Session 身份和元数
361
359
  Session 内容。如果 sidecar 不可用或损坏,原生 Project/Session 视角仍然可读,插件进入
362
360
  degraded/read-only 状态;不能用空索引覆盖 DSH 原生列表。
363
361
 
362
+ sidecar 兼容读取 v1 和 v2 snapshot。旧记录会先在内存中归一化,第一次成功 mutation 会
363
+ 以原子方式将 shard 升级为 v3。新的 v3 snapshot 使用 revision、不可逆向还原的 repository
364
+ fingerprint,以及为 Git create/remove 保存的 durable pending-operation metadata。早期 v3
365
+ 实现可能写入的 raw repository 字段也可以读取,并会在下一次稳定写入时清理。无效 JSON、
366
+ 未知 schema version 和关系不变量错误都会报告为 corruption,不会静默重置为空索引。
367
+
364
368
  一个 Session 最多绑定一个 active Worktree,一个 Worktree 可以绑定多个 Session。Session
365
369
  重复绑定同一个 Worktree 是幂等的,绑定两个 active Worktree 会产生 conflict。没有 binding、
366
370
  使用 Main binding 或处于 detached binding 的 Session 使用 Project 根目录作为 cwd;active
367
371
  Worktree binding 使用对应的 Worktree 路径。cwd 在每次执行时派生,不会写回 DSH Session 元数据。
368
372
 
369
- 创建 Worktree 时先创建 Git Worktree,再记录外部关系。sidecar 写入失败时会尽可能清理刚
370
- 创建的 Git Worktree。删除 Worktree 失败时不会改变 sidecar 状态,因此关系仍可重试。创建
371
- Session 时先调用 DSH 原生 API,再写入 binding;binding 失败不会删除或修改已创建的 Session。
372
-
373
- Worktree Session 流程将独立的 Worktree cwd 交给 upstream DSH runtime,并将
373
+ 创建 Worktree 时先创建 Git Worktree,再记录外部关系。Git create/remove mutation 会按
374
+ Workspace repository 串行化跨 Host 进程执行,写入 durable pending operation,并在确认
375
+ 实际 Git 结果后才发布稳定 sidecar 状态。如果 create 无法对账,或 path/repository identity
376
+ 发生变化,操作会明确保留为可恢复状态;插件不会使用 force remove,也不会删除未知目录。
377
+ sidecar 写入失败时会尽可能清理刚创建的 Git Worktree。删除 Worktree 失败时不会静默改变
378
+ 关系,因此关系仍可重试,或会标记为 `recovery-needed`。创建 Session 时先调用 DSH 原生
379
+ API,再写入 binding;binding 失败不会删除或修改已创建的 Session。
380
+
381
+ Host 启动时,插件会针对已知 DSH Workspace 执行一次尽力而为的安全恢复。只有在 Git path
382
+ 和 repository identity 都能确认时,才会完成 pending create/remove;否则保留 marker,并
383
+ 显示 `WORKTREE_RECOVERY_REQUIRED` 或 `WORKTREE_IDENTITY_CHANGED`。它不会猜测性清理破坏性
384
+ 状态。破坏性操作还可以携带最新 Worktree projection 生成的 opaque mutation token,避免
385
+ 过期 UI 对已变化的记录执行操作。
386
+
387
+ Worktree Session 流程将独立的 Worktree cwd 交给 DSH Session Controller,并将
374
388
  `{ workspaceId, sessionId }` 保持为浏览器本地 membership projection,而不是持久化的 DSH
375
389
  attach。它不会修改 DSH 源码、Session metadata 或原生 Workspace 存储。native list 刷新后会
376
390
  重放 projection;binding 消失或 Client dispose 时会移除 projection。
@@ -1,4 +1,4 @@
1
- import type { SnapshotStore } from '@deepseek-ai/dsh-client-runtime/client';
1
+ import type { SnapshotStore } from '@deepseek-ai/dsh-client-store';
2
2
  import type { InjectFace, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
3
3
  import type { WorktreeContextState } from './worktree-context-store.js';
4
4
  import { WORKTREE_NS } from './locales.js';
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeContext.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,YAAY,EAEb,MAAM,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;KAC/D,CAAC;CACH;AAID,0DAA0D;AAC1D,MAAM,MAAM,0BAA0B,GACpC,YAAY,CAAC,qCAAqC,CAAC,GACnD,WAAW,CAAC,OAAO,WAAW,CAAC,GAC/B,UAAU,CAAC,uBAAuB,CAAC,CAAC;AA2BtC,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,kBAAkB,EAClB,CAAC,GACF,EAAE,0BAA0B,sCAI5B"}
1
+ {"version":3,"file":"WorktreeContext.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,YAAY,EAEb,MAAM,kCAAkC,CAAC;AAO1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;KAC/D,CAAC;CACH;AAID,0DAA0D;AAC1D,MAAM,MAAM,0BAA0B,GACpC,YAAY,CAAC,qCAAqC,CAAC,GACnD,WAAW,CAAC,OAAO,WAAW,CAAC,GAC/B,UAAU,CAAC,uBAAuB,CAAC,CAAC;AA6BtC,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,kBAAkB,EAClB,CAAC,GACF,EAAE,0BAA0B,sCAI5B"}
@@ -7,7 +7,7 @@ function WorktreeContextLabel({ value, t, }) {
7
7
  const ariaLabel = value.kind === 'main'
8
8
  ? t('context.main', { name: value.label })
9
9
  : t('context.worktree', { name: value.label });
10
- return (_jsx(HoverCard, { anchor: _jsxs("span", { className: styles.headerContext, title: value.label, "aria-label": ariaLabel, children: [_jsx(IconBranchOutline16, { size: 14, className: styles.contextIcon, "aria-hidden": "true" }), _jsx("span", { className: styles.contextLabel, children: value.label })] }), content: _jsx("div", { className: styles.contextHoverTitle, children: value.label }), openDelayMs: 500 }));
10
+ return (_jsx(HoverCard, { anchor: _jsxs("span", { className: styles.headerContext, title: value.label, "aria-label": ariaLabel, children: [_jsx(IconBranchOutline16, { size: 14, className: styles.contextIcon, "aria-hidden": "true" }), _jsx("span", { className: styles.contextLabel, children: value.label })] }), content: _jsx("div", { className: styles.contextHoverTitle, children: value.label }), openDelayMs: 500, copyLabel: t('copy'), copiedLabel: t('hover.copied') }));
11
11
  }
12
12
  /** Render the current branch or active Worktree branch beside the Session title. */
13
13
  export function WorktreeHeaderContext({ sessionId, useWorktreeContext, t, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeContext.js","sourceRoot":"","sources":["../../src/client/WorktreeContext.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAKvF,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAiB5C,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,CAAC,GAIF;IACC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM;QACrC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACjD,OAAO,CACL,KAAC,SAAS,IACR,MAAM,EACJ,gBAAM,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,gBAAc,SAAS,aAC9E,KAAC,mBAAmB,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,iBAAc,MAAM,GAAG,EACnF,eAAM,SAAS,EAAE,MAAM,CAAC,YAAY,YAAG,KAAK,CAAC,KAAK,GAAQ,IACrD,EAET,OAAO,EAAE,cAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,YAAG,KAAK,CAAC,KAAK,GAAO,EACtE,WAAW,EAAE,GAAG,GAChB,CACH,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CAAC,EACpC,SAAS,EACT,kBAAkB,EAClB,CAAC,GAC0B;IAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,KAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAI,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"WorktreeContext.js","sourceRoot":"","sources":["../../src/client/WorktreeContext.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAQvF,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAiB5C,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,CAAC,GAIF;IACC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM;QACrC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACjD,OAAO,CACL,KAAC,SAAS,IACR,MAAM,EACJ,gBAAM,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,gBAAc,SAAS,aAC9E,KAAC,mBAAmB,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,iBAAc,MAAM,GAAG,EACnF,eAAM,SAAS,EAAE,MAAM,CAAC,YAAY,YAAG,KAAK,CAAC,KAAK,GAAQ,IACrD,EAET,OAAO,EAAE,cAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,YAAG,KAAK,CAAC,KAAK,GAAO,EACtE,WAAW,EAAE,GAAG,EAChB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EACpB,WAAW,EAAE,CAAC,CAAC,cAAc,CAAC,GAC9B,CACH,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CAAC,EACpC,SAAS,EACT,kBAAkB,EAClB,CAAC,GAC0B;IAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,KAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAI,CAAC;AAC5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeHeroContext.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeHeroContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,YAAY,EAEb,MAAM,kCAAkC,CAAC;AAG1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3C,MAAM,MAAM,wBAAwB,GAClC,YAAY,CAAC,eAAe,CAAC,GAC7B,WAAW,CAAC,OAAO,WAAW,CAAC,GAC/B,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAgFtC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,kBAAkB,EAClB,CAAC,GACF,EAAE,wBAAwB,sCAgF1B"}
1
+ {"version":3,"file":"WorktreeHeroContext.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeHeroContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,YAAY,EAEb,MAAM,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3C,MAAM,MAAM,wBAAwB,GAClC,YAAY,CAAC,eAAe,CAAC,GAC7B,WAAW,CAAC,OAAO,WAAW,CAAC,GAC/B,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAgFtC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,kBAAkB,EAClB,CAAC,GACF,EAAE,wBAAwB,sCAkF1B"}
@@ -128,6 +128,6 @@ export function WorktreeHeroContext({ useWorktreeContext, t, }) {
128
128
  return (_jsx("span", { className: styles.heroContextHost, "data-worktree-hero-host": true, style: placement === null ? { visibility: 'hidden' } : {
129
129
  left: `${placement.left}px`,
130
130
  top: `${placement.top}px`,
131
- }, children: _jsx(HoverCard, { anchor: (_jsx("span", { ref: measure, className: styles.heroContext, "data-worktree-hero-context": true, "aria-label": ariaLabel, title: label, children: label })), content: _jsx("div", { className: styles.contextHoverTitle, children: label }), openDelayMs: 500 }) }));
131
+ }, children: _jsx(HoverCard, { anchor: (_jsx("span", { ref: measure, className: styles.heroContext, "data-worktree-hero-context": true, "aria-label": ariaLabel, title: label, children: label })), content: _jsx("div", { className: styles.contextHoverTitle, children: label }), openDelayMs: 500, copyLabel: t('copy'), copiedLabel: t('hover.copied') }) }));
132
132
  }
133
133
  //# sourceMappingURL=WorktreeHeroContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeHeroContext.js","sourceRoot":"","sources":["../../src/client/WorktreeHeroContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAO/D,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAKlE,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAc5C,SAAS,QAAQ,CAAC,KAA2B;IAC3C,IACE,KAAK,CAAC,MAAM,KAAK,OAAO;QACxB,KAAK,CAAC,cAAc,KAAK,SAAS;QAClC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAC3B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;AAC1D,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAgB,EAAE,MAAc;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAc,SAAS,CAAC,CAAC;IACjE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;YAC/F,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAgB;IACvC,2EAA2E;IAC3E,4EAA4E;IAC5E,qEAAqE;IACrE,OAAO,sBAAsB,CAAC,IAAI,EAAE,cAAc,CAAC;WAC9C,sBAAsB,CAAC,IAAI,EAAE,cAAc,CAAC;WAC5C,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAoB;IAC9C,IAAI,OAAO,CAAC,YAAY,YAAY,WAAW;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC;IAE7E,KAAK,IAAI,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAChG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,OAAoB;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAc,2BAA2B,CAAC,CAAC;IACvE,OAAO,kBAAkB,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAoB;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAc,qBAAqB,CAAC,CAAC;IACxE,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAExE,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;IACpD,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IACvE,OAAO;QACL,IAAI,EAAE,iBAAiB;YACrB,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACxC,GAAG,EAAE,iBAAiB;YACpB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA2B,EAAE,CAAoB;IACzE,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/F,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,kBAAkB,EAClB,CAAC,GACwB;IACzB,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,OAA2B,EAAQ,EAAE;QAChE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QACD,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QACvF,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAc,8BAA8B,CAAC,CAAC;QACpF,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAEvC,IAAI,YAAgC,CAAC;QACrC,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,YAAY,KAAK,SAAS;gBAAE,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAC1E,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;gBAC/C,YAAY,GAAG,SAAS,CAAC;gBACzB,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,KAAK,WAAW;YAC9D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACnC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;YACvC,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,OAAO,cAAc,KAAK,WAAW;YAC1D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,QAAQ,EAAE,CAAC;QAEX,OAAO,GAAG,EAAE;YACV,IAAI,YAAY,KAAK,SAAS;gBAAE,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAC1E,gBAAgB,EAAE,UAAU,EAAE,CAAC;YAC/B,cAAc,EAAE,UAAU,EAAE,CAAC;YAC7B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErB,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO,CACL,eACE,SAAS,EAAE,MAAM,CAAC,eAAe,mCAEjC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACrD,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,IAAI;YAC3B,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI;SAC1B,YAED,KAAC,SAAS,IACR,MAAM,EAAE,CACN,eACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,MAAM,CAAC,WAAW,oDAEjB,SAAS,EACrB,KAAK,EAAE,KAAK,YAEX,KAAK,GACD,CACR,EACD,OAAO,EAAE,cAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,YAAG,KAAK,GAAO,EAChE,WAAW,EAAE,GAAG,GAChB,GACG,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"WorktreeHeroContext.js","sourceRoot":"","sources":["../../src/client/WorktreeHeroContext.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeModeAction.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeModeAction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9F,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,kEAAkE;AAClE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,wFAAwF;AACxF,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,uBAAuB,CAAC,GACzE,UAAU,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,GACtD,WAAW,CAAC,OAAO,WAAW,CAAC,GAC/B,0BAA0B,CAAC;AAE7B,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,CAAC,EACD,SAAS,GACV,EAAE,uBAAuB,sCAsBzB"}
1
+ {"version":3,"file":"WorktreeModeAction.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeModeAction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAI9F,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,kEAAkE;AAClE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,wFAAwF;AACxF,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,uBAAuB,CAAC,GACzE,UAAU,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,GACtD,WAAW,CAAC,OAAO,WAAW,CAAC,GAC/B,0BAA0B,CAAC;AAE7B,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,CAAC,EACD,SAAS,GACV,EAAE,uBAAuB,sCAsBzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeModeAction.js","sourceRoot":"","sources":["../../src/client/WorktreeModeAction.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,MAAM,MAAM,gBAAgB,CAAC;AAapC,yEAAyE;AACzE,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,CAAC,EACD,SAAS,GACe;IACxB,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,KAAK,UAAU,CAAC;IACnC,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,oDAEX,MAAM,IAAI,SAAS,oBAChB,CAAC,IAAI,IAAI,SAAS,gBACtB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,kBACtC,MAAM,EACpB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAChD,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC,aAED,KAAC,mBAAmB,IAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAI,EAC5C,IAAI,IAAI,eAAM,SAAS,EAAE,MAAM,CAAC,WAAW,YAAG,CAAC,CAAC,YAAY,CAAC,GAAQ,IAC/D,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"WorktreeModeAction.js","sourceRoot":"","sources":["../../src/client/WorktreeModeAction.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,MAAM,MAAM,gBAAgB,CAAC;AAapC,yEAAyE;AACzE,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,CAAC,EACD,SAAS,GACe;IACxB,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,KAAK,UAAU,CAAC;IACnC,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,oDAEX,MAAM,IAAI,SAAS,oBAChB,CAAC,IAAI,IAAI,SAAS,gBACtB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,kBACtC,MAAM,EACpB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAChD,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC,aAED,KAAC,mBAAmB,IAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAI,EAC5C,IAAI,IAAI,eAAM,SAAS,EAAE,MAAM,CAAC,WAAW,YAAG,CAAC,CAAC,YAAY,CAAC,GAAQ,IAC/D,CACV,CAAC;AACJ,CAAC"}
@@ -4,5 +4,5 @@ export type { WorktreeSurfaceInjected, WorktreeSurfaceProps } from './worktree-s
4
4
  * Peer Worktree navigation surface. It keeps the original DSH Workspace mode
5
5
  * intact and renders a browser-local Workspace → Worktree → Session projection.
6
6
  */
7
- export declare function WorktreeSurface({ useStore, actions, useSessions, useWorkspaces, t, available, expandState, sessionOrder, manager, permission, confirmFullAccess, fullAccessConfirmation, onPermissionResult, onPermissionNotice, permissionNotice, invalidateWorktreeContext, createWorkspace, createSessionForWorktree: createSessionCallback, createMainSession, renameWorkspace, deleteWorkspace, insertWorkspaceBefore, insertSessionBefore, insertWorktreeBefore, renameSession, forkSession, archiveSession, forkRecovery, retryForkSession, ensureSessionWorkspace, syncSessionWorkspaces, openSession, }: WorktreeSurfaceProps): import("react").JSX.Element | null;
7
+ export declare function WorktreeSurface({ useStore, actions, useSessions, useWorkspaces, t, available, expandState, sessionOrder, manager, viewReader, permission, confirmFullAccess, fullAccessConfirmation, onPermissionResult, onPermissionNotice, permissionNotice, invalidateWorktreeContext, createWorkspace, createSessionForWorktree: createSessionCallback, createMainSession, renameWorkspace, deleteWorkspace, insertWorkspaceBefore, insertSessionBefore, insertWorktreeBefore, renameSession, forkSession, archiveSession, forkRecovery, retryForkSession, ensureSessionWorkspace, syncSessionWorkspaces, openSession, }: WorktreeSurfaceProps): import("react").JSX.Element | null;
8
8
  //# sourceMappingURL=WorktreeSurface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeSurface.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAQV,oBAAoB,EASrB,MAAM,6BAA6B,CAAC;AA6BrC,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAoEjG;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,CAAC,EACD,SAAS,EACT,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EAAE,qBAAqB,EAC/C,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,GACZ,EAAE,oBAAoB,sCA4tDtB"}
1
+ {"version":3,"file":"WorktreeSurface.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAQV,oBAAoB,EASrB,MAAM,6BAA6B,CAAC;AA6BrC,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAwEjG;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,CAAC,EACD,SAAS,EACT,WAAW,EACX,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EAAE,qBAAqB,EAC/C,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,GACZ,EAAE,oBAAoB,sCA66DtB"}