@cerbur/clutch-dsh-worktree 0.1.8 → 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 (84) hide show
  1. package/README.md +18 -23
  2. package/README.zh.md +17 -21
  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 +221 -45
  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/view-mode-store.d.ts +1 -1
  29. package/lib/client/view-mode-store.d.ts.map +1 -1
  30. package/lib/client/view-mode-store.js +1 -1
  31. package/lib/client/view-mode-store.js.map +1 -1
  32. package/lib/client/view-mode.d.ts +20 -6
  33. package/lib/client/view-mode.d.ts.map +1 -1
  34. package/lib/client/view-mode.js +35 -10
  35. package/lib/client/view-mode.js.map +1 -1
  36. package/lib/client/virtual-workspace-membership.d.ts +12 -10
  37. package/lib/client/virtual-workspace-membership.d.ts.map +1 -1
  38. package/lib/client/virtual-workspace-membership.js +82 -57
  39. package/lib/client/virtual-workspace-membership.js.map +1 -1
  40. package/lib/client/worktree-context-store.d.ts +7 -15
  41. package/lib/client/worktree-context-store.d.ts.map +1 -1
  42. package/lib/client/worktree-context-store.js +20 -13
  43. package/lib/client/worktree-context-store.js.map +1 -1
  44. package/lib/client/worktree-expand-state.d.ts +5 -4
  45. package/lib/client/worktree-expand-state.d.ts.map +1 -1
  46. package/lib/client/worktree-expand-state.js.map +1 -1
  47. package/lib/client/worktree-session-fork.d.ts +18 -3
  48. package/lib/client/worktree-session-fork.d.ts.map +1 -1
  49. package/lib/client/worktree-session-fork.js +125 -36
  50. package/lib/client/worktree-session-fork.js.map +1 -1
  51. package/lib/client/worktree-session-order.d.ts +2 -2
  52. package/lib/client/worktree-session-order.d.ts.map +1 -1
  53. package/lib/client/worktree-surface-rows.d.ts.map +1 -1
  54. package/lib/client/worktree-surface-rows.js +1 -1
  55. package/lib/client/worktree-surface-rows.js.map +1 -1
  56. package/lib/client/worktree-surface-types.d.ts +19 -1
  57. package/lib/client/worktree-surface-types.d.ts.map +1 -1
  58. package/lib/client/worktree-view-read.d.ts +18 -8
  59. package/lib/client/worktree-view-read.d.ts.map +1 -1
  60. package/lib/client/worktree-view-read.js +75 -10
  61. package/lib/client/worktree-view-read.js.map +1 -1
  62. package/lib/client.js +1359 -169
  63. package/lib/client.js.map +1 -1
  64. package/lib/host/worktree-permission.d.ts +3 -2
  65. package/lib/host/worktree-permission.d.ts.map +1 -1
  66. package/lib/host/worktree-permission.js +29 -5
  67. package/lib/host/worktree-permission.js.map +1 -1
  68. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  69. package/lib/manage/manager-worktrees.js +5 -2
  70. package/lib/manage/manager-worktrees.js.map +1 -1
  71. package/lib/manage/manager.d.ts.map +1 -1
  72. package/lib/manage/manager.js +2 -0
  73. package/lib/manage/manager.js.map +1 -1
  74. package/lib/provider/git.d.ts.map +1 -1
  75. package/lib/provider/git.js +4 -0
  76. package/lib/provider/git.js.map +1 -1
  77. package/lib/provider/sidecar.js +1 -1
  78. package/lib/provider/sidecar.js.map +1 -1
  79. package/lib/provider/subprocess.d.ts.map +1 -1
  80. package/lib/provider/subprocess.js +8 -0
  81. package/lib/provider/subprocess.js.map +1 -1
  82. package/lib/provider/transaction.js +2 -2
  83. package/lib/provider/transaction.js.map +1 -1
  84. package/package.json +48 -34
@@ -8,6 +8,16 @@ export function mergeWorktreeView(views, nextView) {
8
8
  merged[index] = nextView;
9
9
  return merged;
10
10
  }
11
+ /** Merge explicit Workspace updates while preserving current order and ready references. */
12
+ export function mergeWorktreeViews(existing, workspaceIds, updates) {
13
+ const byWorkspaceId = new Map(existing.map((view) => [view.workspaceId, view]));
14
+ for (const update of updates)
15
+ byWorkspaceId.set(update.workspaceId, update);
16
+ return [...new Set(workspaceIds)].flatMap((workspaceId) => {
17
+ const view = byWorkspaceId.get(workspaceId);
18
+ return view === undefined ? [] : [view];
19
+ });
20
+ }
11
21
  /** Reuse the previous ID snapshot when DSH republishes equivalent Workspace items. */
12
22
  export function stableWorkspaceIds(previous, next) {
13
23
  if (previous.length !== next.length)
@@ -98,6 +108,65 @@ function readinessFromBranchError(error) {
98
108
  }
99
109
  return undefined;
100
110
  }
111
+ /** Share complete Workspace reads without allowing stale generations to repopulate the cache. */
112
+ export function createWorktreeViewReader(manager) {
113
+ const entries = new Map();
114
+ let disposed = false;
115
+ const entryFor = (workspaceId) => {
116
+ const current = entries.get(workspaceId);
117
+ if (current !== undefined)
118
+ return current;
119
+ const created = { generation: 0, stale: false };
120
+ entries.set(workspaceId, created);
121
+ return created;
122
+ };
123
+ const read = (workspaceId) => {
124
+ if (disposed)
125
+ return Promise.reject(new Error('Worktree view reader disposed'));
126
+ const entry = entryFor(workspaceId);
127
+ if (!entry.stale && entry.view !== undefined)
128
+ return Promise.resolve(entry.view);
129
+ if (entry.inFlight?.generation === entry.generation)
130
+ return entry.inFlight.promise;
131
+ const generation = entry.generation;
132
+ const promise = loadWorktreeView(manager, workspaceId)
133
+ .then((data) => {
134
+ const view = { workspaceId, ...data };
135
+ if (!disposed && entries.get(workspaceId) === entry && entry.generation === generation) {
136
+ entry.view = view;
137
+ entry.stale = false;
138
+ }
139
+ return view;
140
+ })
141
+ .finally(() => {
142
+ if (entry.inFlight?.promise === promise)
143
+ entry.inFlight = undefined;
144
+ });
145
+ entry.inFlight = { generation, promise };
146
+ return promise;
147
+ };
148
+ return {
149
+ invalidate(workspaceId) {
150
+ if (disposed)
151
+ return;
152
+ const entry = entryFor(workspaceId);
153
+ entry.generation += 1;
154
+ entry.stale = true;
155
+ entry.view = undefined;
156
+ },
157
+ read,
158
+ readMany(workspaceIds) {
159
+ const uniqueIds = [...new Set(workspaceIds)];
160
+ return Promise.all(uniqueIds.map((workspaceId) => read(workspaceId)));
161
+ },
162
+ dispose() {
163
+ if (disposed)
164
+ return;
165
+ disposed = true;
166
+ entries.clear();
167
+ },
168
+ };
169
+ }
101
170
  /** Read all three Worktree projections needed by the surface in one refresh. */
102
171
  export async function loadWorktreeView(manager, workspaceId) {
103
172
  const [worktreesResult, branchesResult, bindingsResult] = await Promise.allSettled([
@@ -130,26 +199,22 @@ export async function loadWorktreeView(manager, workspaceId) {
130
199
  : { status: 'noLocalBranch' },
131
200
  };
132
201
  }
133
- /** Isolate modal-target reads from full-surface refresh generations. */
134
- export function createWorktreeModalViewLoader() {
202
+ /** Isolate modal-target callbacks while sharing the Client Workspace reader. */
203
+ export function createWorktreeModalViewLoader(reader) {
135
204
  const guard = createWorktreeRefreshGuard();
136
205
  return {
137
206
  invalidate: guard.invalidate,
138
- load(manager, workspaceId, onSuccess, onError) {
139
- return guard.run(() => loadWorktreeView(manager, workspaceId), (data) => onSuccess({ workspaceId, ...data }), (error) => onError(toWorktreeViewError(error)));
207
+ load(workspaceId, onSuccess, onError) {
208
+ return guard.run(() => reader.read(workspaceId), onSuccess, (error) => onError(toWorktreeViewError(error)));
140
209
  },
141
210
  };
142
211
  }
143
212
  /** Load one independent projection per DSH Workspace for the flat sidebar hierarchy. */
144
- export async function loadWorktreeViews(manager, workspaceIds, options = {}) {
145
- const views = await Promise.all(workspaceIds.map(async (workspaceId) => ({
213
+ export async function loadWorktreeViews(manager, workspaceIds) {
214
+ return Promise.all(workspaceIds.map(async (workspaceId) => ({
146
215
  workspaceId,
147
216
  ...(await loadWorktreeView(manager, workspaceId)),
148
217
  })));
149
- if (options.invalidateContext !== false) {
150
- await options.invalidateWorktreeContext?.();
151
- }
152
- return views;
153
218
  }
154
219
  /** Hide DSH-archived Sessions from the browser-local Worktree projection. */
155
220
  export function filterArchivedSessionIds(sessionIds, archivedSessionIds) {
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-view-read.js","sourceRoot":"","sources":["../../src/client/worktree-view-read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-view-read.js","sourceRoot":"","sources":["../../src/client/worktree-view-read.ts"],"names":[],"mappings":"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"}