@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
@@ -1,4 +1,4 @@
1
- import { createSnapshotStore, } from '@deepseek-ai/dsh-client-runtime/client';
1
+ import { createSnapshotStore } from '@deepseek-ai/dsh-client-store';
2
2
  import { WORKTREE_NS, en, zh } from './locales.js';
3
3
  import { createWorktreeConnectionAdapter } from './worktree-connection.js';
4
4
  import { WorktreeHeaderContext } from './WorktreeContext.js';
@@ -8,24 +8,83 @@ import { createWorktreeContextProjection } from './worktree-context-store.js';
8
8
  import { createWorktreeExpandStateStore } from './worktree-expand-state.js';
9
9
  import { createWorktreeSessionOrderStore } from './worktree-session-order.js';
10
10
  import { createWorktreeViewStore } from './view-mode-store.js';
11
+ import { createWorktreeViewReader } from './worktree-view-read.js';
11
12
  import { createVirtualWorkspaceMembership, } from './virtual-workspace-membership.js';
12
13
  import { createWorktreeSessionConnector, } from './worktree-session.js';
13
14
  import { createWorktreeFullAccessConfirmationController, } from './worktree-permission.js';
14
15
  import { installWorktreePermissionIcon } from './worktree-permission-icon.js';
15
16
  import { createWorktreeSessionForkCoordinator, } from './worktree-session-fork.js';
16
17
  export { WORKTREE_CONNECTION_CHANNEL, WORKTREE_CONNECTION_ENDPOINTS, WorktreeConnectionError, createWorktreeConnectionAdapter, } from './worktree-connection.js';
18
+ function forkRelatedSessionIds(snapshot) {
19
+ if (typeof snapshot !== 'object' ||
20
+ snapshot === null ||
21
+ !Array.isArray(snapshot.ids) ||
22
+ typeof snapshot.byId !== 'object' ||
23
+ snapshot.byId === null ||
24
+ Array.isArray(snapshot.byId)) {
25
+ return undefined;
26
+ }
27
+ const related = new Set();
28
+ for (const childSessionId of snapshot.ids) {
29
+ if (typeof childSessionId !== 'string')
30
+ return undefined;
31
+ const summary = snapshot.byId[childSessionId];
32
+ if (summary !== undefined &&
33
+ (typeof summary !== 'object' || summary === null || Array.isArray(summary))) {
34
+ return undefined;
35
+ }
36
+ const parentSessionId = summary?.parentId;
37
+ if (parentSessionId === undefined ||
38
+ parentSessionId === childSessionId ||
39
+ summary?.blank === true ||
40
+ summary?.origin === 'subagent' ||
41
+ snapshot.byId[parentSessionId] === undefined) {
42
+ continue;
43
+ }
44
+ related.add(childSessionId);
45
+ related.add(parentSessionId);
46
+ }
47
+ return related;
48
+ }
49
+ function workspaceMembershipSignature(snapshot, sessions) {
50
+ const relatedSessionIds = forkRelatedSessionIds(sessions);
51
+ if (relatedSessionIds === undefined)
52
+ return undefined;
53
+ if (typeof snapshot !== 'object' || snapshot === null || !Array.isArray(snapshot.items)) {
54
+ return undefined;
55
+ }
56
+ const facts = [];
57
+ for (const workspace of snapshot.items) {
58
+ if (typeof workspace !== 'object' ||
59
+ workspace === null ||
60
+ typeof workspace.workspaceId !== 'string' ||
61
+ !Array.isArray(workspace.sessionIds) ||
62
+ workspace.sessionIds.some((sessionId) => typeof sessionId !== 'string')) {
63
+ return undefined;
64
+ }
65
+ facts.push([
66
+ workspace.workspaceId,
67
+ workspace.sessionIds.filter((sessionId) => relatedSessionIds.has(sessionId)).sort(),
68
+ ]);
69
+ }
70
+ // This signature tracks membership, not presentation order.
71
+ facts.sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0));
72
+ return JSON.stringify(facts);
73
+ }
17
74
  /** Required DSH Client services; Connection is the sole Worktree wire dependency. */
18
- export const inject = ['connection', 'locale', 'slots', 'sessions', 'workspaces'];
75
+ export const inject = ['connection', 'locale', 'slots', 'sessions', 'workspaces', 'uiWorkspace'];
19
76
  /**
20
77
  * DSH Client entry. The adapter is composed once per plugin fiber and is disposed
21
78
  * with that fiber, so slot consumers share one manager and one request lifetime.
22
79
  */
23
80
  export function apply(ctx) {
81
+ const locale = ctx.locale;
24
82
  if (typeof document !== 'undefined') {
25
83
  ctx.effect(() => installWorktreePermissionIcon(document), 'clutch-dsh-worktree: permission icon cleanup');
26
84
  }
27
- ctx.effect(() => ctx.locale.register(WORKTREE_NS, { zh, en }), 'clutch-dsh-worktree: locale dictionaries');
85
+ ctx.effect(() => locale.register(WORKTREE_NS, { zh, en }), 'clutch-dsh-worktree: locale dictionaries');
28
86
  const manager = createWorktreeConnectionAdapter(ctx.connection.rpc);
87
+ const viewReader = createWorktreeViewReader(manager);
29
88
  const fullAccessConfirmation = createWorktreeFullAccessConfirmationController();
30
89
  const permissionNotice = createSnapshotStore(undefined);
31
90
  const permissionManager = typeof document !== 'undefined' ? manager : undefined;
@@ -36,14 +95,16 @@ export function apply(ctx) {
36
95
  permissionNotice.set(visible ? { ...input, result } : undefined);
37
96
  };
38
97
  const sessions = ctx.sessions;
98
+ const slots = ctx.slots;
39
99
  const virtualWorkspaceMembership = createVirtualWorkspaceMembership(ctx.workspaces.list);
40
100
  const contextProjection = createWorktreeContextProjection({
41
101
  sessions: ctx.sessions.list,
42
102
  workspaces: ctx.workspaces.list,
43
- manager,
103
+ viewReader,
44
104
  storeFactory: createSnapshotStore,
45
105
  });
46
106
  ctx.effect(() => () => manager.dispose(), 'clutch-dsh-worktree: connection cleanup');
107
+ ctx.effect(() => () => viewReader.dispose(), 'clutch-dsh-worktree: view reader cleanup');
47
108
  ctx.effect(() => () => fullAccessConfirmation.dispose(), 'clutch-dsh-worktree: Full Access confirmation cleanup');
48
109
  ctx.effect(() => () => virtualWorkspaceMembership.dispose(), 'clutch-dsh-worktree: Workspace membership cleanup');
49
110
  ctx.effect(() => () => contextProjection.dispose(), 'clutch-dsh-worktree: Session context cleanup');
@@ -60,25 +121,74 @@ export function apply(ctx) {
60
121
  };
61
122
  const forkableSessions = ctx.sessions;
62
123
  const nativeFork = forkableSessions.fork;
63
- const findWorktreeSessionBinding = async (sessionId) => {
64
- const workspaceIds = ctx.workspaces.list.getSnapshot().items.map((workspace) => workspace.workspaceId);
65
- const results = await Promise.allSettled(workspaceIds.map(async (workspaceId) => {
66
- const bindings = await manager.listBindings({ workspaceId });
67
- return bindings.find((binding) => binding.sessionId === sessionId && binding.status === 'active');
68
- }));
69
- const found = results.find((result) => result.status === 'fulfilled' && result.value !== undefined);
70
- if (found !== undefined)
71
- return found.value;
72
- const failed = results.find((result) => result.status === 'rejected');
73
- if (failed !== undefined)
74
- throw failed.reason;
75
- return undefined;
124
+ const workspaceBindingReads = new Map();
125
+ const readWorkspaceBindings = (workspaceId) => {
126
+ const current = workspaceBindingReads.get(workspaceId);
127
+ if (current !== undefined)
128
+ return current;
129
+ const promise = manager.listBindings({ workspaceId }).finally(() => {
130
+ if (workspaceBindingReads.get(workspaceId) === promise) {
131
+ workspaceBindingReads.delete(workspaceId);
132
+ }
133
+ });
134
+ workspaceBindingReads.set(workspaceId, promise);
135
+ return promise;
136
+ };
137
+ const findWorktreeSessionBindings = async (sessionIds) => {
138
+ const requested = [...new Set(sessionIds)];
139
+ const requestedSet = new Set(requested);
140
+ const workspaces = ctx.workspaces.list.getSnapshot().items;
141
+ const workspaceIds = [
142
+ ...new Set(workspaces.map((workspace) => workspace.workspaceId)),
143
+ ];
144
+ const owners = new Map();
145
+ for (const workspace of workspaces) {
146
+ for (const sessionId of workspace.sessionIds) {
147
+ if (!requestedSet.has(sessionId))
148
+ continue;
149
+ const workspaceOwners = owners.get(sessionId) ?? [];
150
+ if (!workspaceOwners.includes(workspace.workspaceId)) {
151
+ workspaceOwners.push(workspace.workspaceId);
152
+ owners.set(sessionId, workspaceOwners);
153
+ }
154
+ }
155
+ }
156
+ const unknownScope = requested.some((sessionId) => (owners.get(sessionId)?.length ?? 0) === 0);
157
+ const selectedWorkspaceIds = unknownScope
158
+ ? workspaceIds
159
+ : workspaceIds.filter((workspaceId) => requested.some((sessionId) => owners.get(sessionId)?.includes(workspaceId) === true));
160
+ const results = await Promise.allSettled(selectedWorkspaceIds.map((workspaceId) => readWorkspaceBindings(workspaceId)));
161
+ const resultByWorkspaceId = new Map(selectedWorkspaceIds.map((workspaceId, index) => [workspaceId, results[index]]));
162
+ const bySessionId = new Map();
163
+ for (const sessionId of requested) {
164
+ const relevantWorkspaceIds = owners.get(sessionId) ?? selectedWorkspaceIds;
165
+ let found;
166
+ let failed;
167
+ for (const workspaceId of relevantWorkspaceIds) {
168
+ const result = resultByWorkspaceId.get(workspaceId);
169
+ if (result === undefined)
170
+ continue;
171
+ if (result.status === 'rejected') {
172
+ failed ??= result.reason;
173
+ continue;
174
+ }
175
+ const binding = result.value.find((candidate) => candidate.sessionId === sessionId && candidate.status === 'active');
176
+ if (binding !== undefined) {
177
+ found = binding;
178
+ break;
179
+ }
180
+ }
181
+ bySessionId.set(sessionId, found === undefined
182
+ ? failed === undefined ? { status: 'missing' } : { status: 'error', error: failed }
183
+ : { status: 'found', binding: found });
184
+ }
185
+ return { bySessionId };
76
186
  };
77
187
  const forkCoordinator = typeof nativeFork !== 'function'
78
188
  ? undefined
79
189
  : createWorktreeSessionForkCoordinator({
80
190
  fork: (input) => nativeFork.call(ctx.sessions, input),
81
- findBinding: findWorktreeSessionBinding,
191
+ findBindings: findWorktreeSessionBindings,
82
192
  bindSession: (input) => manager.bindSession(input),
83
193
  sessions: ctx.sessions.list,
84
194
  });
@@ -87,8 +197,16 @@ export function apply(ctx) {
87
197
  const reconcileForkChildren = () => {
88
198
  void forkCoordinator.reconcile();
89
199
  };
200
+ let lastWorkspaceMembershipSignature = workspaceMembershipSignature(ctx.workspaces.list.getSnapshot(), ctx.sessions.list.getSnapshot());
201
+ const reconcileForkChildrenForWorkspace = () => {
202
+ const nextSignature = workspaceMembershipSignature(ctx.workspaces.list.getSnapshot(), ctx.sessions.list.getSnapshot());
203
+ const changed = nextSignature !== undefined && nextSignature !== lastWorkspaceMembershipSignature;
204
+ if (nextSignature !== undefined)
205
+ lastWorkspaceMembershipSignature = nextSignature;
206
+ void forkCoordinator.reconcile({ force: changed });
207
+ };
90
208
  const unsubscribeSessionList = ctx.sessions.list.subscribe(reconcileForkChildren);
91
- const unsubscribeWorkspaceList = ctx.workspaces.list.subscribe(reconcileForkChildren);
209
+ const unsubscribeWorkspaceList = ctx.workspaces.list.subscribe(reconcileForkChildrenForWorkspace);
92
210
  ctx.effect(() => () => {
93
211
  unsubscribeSessionList();
94
212
  unsubscribeWorkspaceList();
@@ -100,8 +218,7 @@ export function apply(ctx) {
100
218
  const worktreeSessionConnector = createWorktreeSessionConnector({
101
219
  manager,
102
220
  sessions: ctx.sessions.list,
103
- archivedSessionIds: () => ctx.workspaces.list.getSnapshot().archivedSessionIds ??
104
- [],
221
+ archivedSessionIds: () => ctx.workspaces.list.getSnapshot().archivedSessionIds,
105
222
  createSession: async (input) => String(await sessions.create(input)),
106
223
  ensureSessionWorkspace,
107
224
  permission: permissionManager,
@@ -114,21 +231,21 @@ export function apply(ctx) {
114
231
  },
115
232
  });
116
233
  ctx.effect(() => () => worktreeSessionConnector.dispose(), 'clutch-dsh-worktree: Worktree Session connector cleanup');
117
- ctx.slots.inject('conversation.session.header.actions', () => ctx.slots.register({
234
+ slots.inject('conversation.session.header.actions', () => slots.register({
118
235
  name: 'conversation.session.header.actions',
119
236
  id: 'clutch-dsh-worktree-context-header',
120
237
  order: -5,
121
238
  locale: WORKTREE_NS,
122
239
  inject: () => ({ hooks: { worktreeContext: contextProjection.store } }),
123
240
  }, WorktreeHeaderContext));
124
- ctx.slots.inject('sidebar.footer.action', () => ctx.slots.register({
241
+ slots.inject('sidebar.footer.action', () => slots.register({
125
242
  name: 'sidebar.footer.action',
126
243
  id: 'clutch-dsh-worktree-mode-action',
127
244
  store: viewStore,
128
245
  locale: WORKTREE_NS,
129
246
  inject: () => ({ available: true }),
130
247
  }, WorktreeModeAction));
131
- ctx.slots.inject('shell.overlay', () => ctx.slots.register({
248
+ slots.inject('shell.overlay', () => slots.register({
132
249
  name: 'shell.overlay',
133
250
  id: 'clutch-dsh-worktree-navigation',
134
251
  store: viewStore,
@@ -139,6 +256,7 @@ export function apply(ctx) {
139
256
  sessionOrder,
140
257
  hooks: { worktreeContext: contextProjection.store },
141
258
  manager,
259
+ viewReader,
142
260
  permission: permissionManager,
143
261
  confirmFullAccess: permissionManager === undefined
144
262
  ? undefined
@@ -150,14 +268,14 @@ export function apply(ctx) {
150
268
  onPermissionNotice: reportPermissionNotice,
151
269
  permissionNotice,
152
270
  createWorkspace: async () => {
153
- const workspacePath = await ctx.workspaces.pickDirectory();
271
+ const workspacePath = await ctx.uiWorkspace.pickDirectory();
154
272
  if (workspacePath !== null)
155
273
  await ctx.workspaces.create({ path: workspacePath });
156
274
  },
157
275
  createSessionForWorktree: (input) => worktreeSessionConnector.create(input),
158
276
  invalidateWorktreeContext: (workspaceId) => contextProjection.invalidate(workspaceId),
159
277
  createMainSession: (workspaceId) => {
160
- ctx.workspaces.startSession(workspaceId);
278
+ ctx.uiWorkspace.startSession(workspaceId);
161
279
  },
162
280
  renameWorkspace: async (workspaceId, title) => {
163
281
  await ctx.workspaces.rename(workspaceId, title);
@@ -1 +1 @@
1
- {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/client/entry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/client/entry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type EngineStoreHandle } from '@deepseek-ai/dsh-client-runtime/client';
1
+ import { type EngineStoreHandle } from '@deepseek-ai/dsh-client-store';
2
2
  import { type WorktreeViewActions, type WorktreeViewState } from './view-mode.js';
3
3
  /** Create one root-scoped, browser-local view-mode store for the two slot entries. */
4
4
  export declare function createWorktreeViewStore(): EngineStoreHandle<WorktreeViewState, WorktreeViewActions>;
@@ -1 +1 @@
1
- {"version":3,"file":"view-mode-store.d.ts","sourceRoot":"","sources":["../../src/client/view-mode-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,sFAAsF;AACtF,wBAAgB,uBAAuB,IAAI,iBAAiB,CAC1D,iBAAiB,EACjB,mBAAmB,CACpB,CAUA"}
1
+ {"version":3,"file":"view-mode-store.d.ts","sourceRoot":"","sources":["../../src/client/view-mode-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,sFAAsF;AACtF,wBAAgB,uBAAuB,IAAI,iBAAiB,CAC1D,iBAAiB,EACjB,mBAAmB,CACpB,CAUA"}
@@ -1,4 +1,4 @@
1
- import { defineStore } from '@deepseek-ai/dsh-client-runtime/client';
1
+ import { defineStore } from '@deepseek-ai/dsh-client-store';
2
2
  import { WORKTREE_VIEW_MODE_STORAGE_KEY, } from './view-mode.js';
3
3
  /** Create one root-scoped, browser-local view-mode store for the two slot entries. */
4
4
  export function createWorktreeViewStore() {
@@ -1 +1 @@
1
- {"version":3,"file":"view-mode-store.js","sourceRoot":"","sources":["../../src/client/view-mode-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0B,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EACL,8BAA8B,GAG/B,MAAM,gBAAgB,CAAC;AAExB,sFAAsF;AACtF,MAAM,UAAU,uBAAuB;IAIrC,OAAO,WAAW,CAAC;QACjB,IAAI,EAAE,GAAsB,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QAClE,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE;YACP,WAAW,EAAE,CAAC,KAAK,EAAE,IAAmC,EAAE,EAAE;gBAC1D,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"view-mode-store.js","sourceRoot":"","sources":["../../src/client/view-mode-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0B,MAAM,+BAA+B,CAAC;AACpF,OAAO,EACL,8BAA8B,GAG/B,MAAM,gBAAgB,CAAC;AAExB,sFAAsF;AACtF,MAAM,UAAU,uBAAuB;IAIrC,OAAO,WAAW,CAAC;QACjB,IAAI,EAAE,GAAsB,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QAClE,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE;YACP,WAAW,EAAE,CAAC,KAAK,EAAE,IAAmC,EAAE,EAAE;gBAC1D,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -28,23 +28,37 @@ export declare function unboundSessionIds(sessionIds: readonly string[], boundSe
28
28
  * `previousBindings` are removed first so the same function can also undo a
29
29
  * projection after a binding is deleted or the plugin is disposed.
30
30
  */
31
+ interface WorkspaceMembershipLike {
32
+ readonly workspaceId: string;
33
+ readonly sessionIds: readonly string[];
34
+ }
31
35
  export declare function projectVirtualWorkspaceMembership<T extends {
32
- readonly items: readonly WorkspaceLike[];
36
+ readonly items: readonly WorkspaceMembershipLike[];
33
37
  }>(snapshot: T, previousBindings: readonly VirtualWorkspaceBinding[], nextBindings: readonly VirtualWorkspaceBinding[]): T;
34
- interface WorkspaceLike {
38
+ export interface WorkspaceLike {
35
39
  readonly workspaceId: string;
36
40
  readonly sessionIds: readonly string[];
41
+ readonly createdAt: string;
37
42
  }
38
- interface WorkspaceListLike {
43
+ export interface WorkspaceListLike {
39
44
  readonly items: readonly WorkspaceLike[];
40
- readonly recentWorkspaceId?: string;
41
45
  }
42
- interface SessionListLike {
46
+ export interface SessionLike {
47
+ readonly updatedAt?: number;
48
+ }
49
+ export interface SessionListLike {
43
50
  readonly current?: string;
51
+ readonly byId: Readonly<Record<string, SessionLike | undefined>>;
44
52
  }
53
+ /**
54
+ * Derive the most recent Workspace from rc.1 Session/Workspace metadata.
55
+ * Host order is retained when timestamps tie, so equal activity never causes
56
+ * the native Workspace order to oscillate.
57
+ */
58
+ export declare function deriveRecentWorkspaceId(workspaces: WorkspaceListLike, sessionsById: Readonly<Record<string, SessionLike | undefined>>): string | undefined;
45
59
  /**
46
60
  * Select the initial Worktree surface Workspace without navigating DSH:
47
- * current Session membership wins, then DSH recency, then the first available
61
+ * current Session membership wins, then derived DSH recency, then the first available
48
62
  * Workspace keeps the surface usable in an empty/reconnecting fixture.
49
63
  */
50
64
  export declare function initialWorkspaceId(workspaces: WorkspaceListLike, sessions: SessionListLike): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"view-mode.d.ts","sourceRoot":"","sources":["../../src/client/view-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,UAAU,CAAC;AAEhE,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,kCAAkC,CAAC;AAE9E,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG;IACjE,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzE,CAAC;AAEF,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,OAAO,EAClB,wBAAwB,EAAE,OAAO,GAChC,gBAAgB,CAGlB;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,SAAS,MAAM,EAAE,CAMnB;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,SAAS,MAAM,EAAE,CAGnB;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,EAEtD,QAAQ,EAAE,CAAC,EACX,gBAAgB,EAAE,SAAS,uBAAuB,EAAE,EACpD,YAAY,EAAE,SAAS,uBAAuB,EAAE,GAC/C,CAAC,CA6BH;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,eAAe,GACxB,MAAM,GAAG,SAAS,CAepB"}
1
+ {"version":3,"file":"view-mode.d.ts","sourceRoot":"","sources":["../../src/client/view-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,UAAU,CAAC;AAEhE,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,kCAAkC,CAAC;AAE9E,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG;IACjE,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzE,CAAC;AAEF,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,OAAO,EAClB,wBAAwB,EAAE,OAAO,GAChC,gBAAgB,CAGlB;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,SAAS,MAAM,EAAE,CAMnB;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,SAAS,MAAM,EAAE,CAGnB;AAED;;;;GAIG;AACH,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,wBAAgB,iCAAiC,CAC/C,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAA;CAAE,EAEhE,QAAQ,EAAE,CAAC,EACX,gBAAgB,EAAE,SAAS,uBAAuB,EAAE,EACpD,YAAY,EAAE,SAAS,uBAAuB,EAAE,GAC/C,CAAC,CA6BH;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC;CAClE;AAWD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC,GAC9D,MAAM,GAAG,SAAS,CAiBpB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,eAAe,GACxB,MAAM,GAAG,SAAS,CAWpB"}
@@ -24,11 +24,6 @@ export function unboundSessionIds(sessionIds, boundSessionIds) {
24
24
  const bound = new Set(boundSessionIds);
25
25
  return sessionIds.filter((sessionId) => !bound.has(sessionId));
26
26
  }
27
- /**
28
- * Apply a browser-only membership delta to a DSH Workspace list snapshot.
29
- * `previousBindings` are removed first so the same function can also undo a
30
- * projection after a binding is deleted or the plugin is disposed.
31
- */
32
27
  export function projectVirtualWorkspaceMembership(snapshot, previousBindings, nextBindings) {
33
28
  const previousSessionIds = new Set(previousBindings.map((binding) => binding.sessionId));
34
29
  const nextByWorkspace = new Map();
@@ -55,9 +50,40 @@ export function projectVirtualWorkspaceMembership(snapshot, previousBindings, ne
55
50
  return snapshot;
56
51
  return { ...snapshot, items };
57
52
  }
53
+ function validTimestamp(value) {
54
+ return typeof value === 'number' && Number.isFinite(value);
55
+ }
56
+ function createdAtTimestamp(createdAt) {
57
+ const timestamp = Date.parse(createdAt);
58
+ return Number.isFinite(timestamp) ? timestamp : undefined;
59
+ }
60
+ /**
61
+ * Derive the most recent Workspace from rc.1 Session/Workspace metadata.
62
+ * Host order is retained when timestamps tie, so equal activity never causes
63
+ * the native Workspace order to oscillate.
64
+ */
65
+ export function deriveRecentWorkspaceId(workspaces, sessionsById) {
66
+ let recentWorkspaceId;
67
+ let recentTimestamp = Number.NEGATIVE_INFINITY;
68
+ for (const workspace of workspaces.items) {
69
+ let workspaceTimestamp;
70
+ for (const sessionId of workspace.sessionIds) {
71
+ const updatedAt = sessionsById[sessionId]?.updatedAt;
72
+ if (validTimestamp(updatedAt)) {
73
+ workspaceTimestamp = Math.max(workspaceTimestamp ?? updatedAt, updatedAt);
74
+ }
75
+ }
76
+ workspaceTimestamp ??= createdAtTimestamp(workspace.createdAt);
77
+ if (workspaceTimestamp === undefined || workspaceTimestamp <= recentTimestamp)
78
+ continue;
79
+ recentWorkspaceId = workspace.workspaceId;
80
+ recentTimestamp = workspaceTimestamp;
81
+ }
82
+ return recentWorkspaceId;
83
+ }
58
84
  /**
59
85
  * Select the initial Worktree surface Workspace without navigating DSH:
60
- * current Session membership wins, then DSH recency, then the first available
86
+ * current Session membership wins, then derived DSH recency, then the first available
61
87
  * Workspace keeps the surface usable in an empty/reconnecting fixture.
62
88
  */
63
89
  export function initialWorkspaceId(workspaces, sessions) {
@@ -67,10 +93,9 @@ export function initialWorkspaceId(workspaces, sessions) {
67
93
  if (currentWorkspace !== undefined)
68
94
  return currentWorkspace.workspaceId;
69
95
  }
70
- if (workspaces.recentWorkspaceId !== undefined &&
71
- workspaces.items.some((workspace) => workspace.workspaceId === workspaces.recentWorkspaceId)) {
72
- return workspaces.recentWorkspaceId;
73
- }
96
+ const recentWorkspaceId = deriveRecentWorkspaceId(workspaces, sessions.byId);
97
+ if (recentWorkspaceId !== undefined)
98
+ return recentWorkspaceId;
74
99
  return workspaces.items[0]?.workspaceId;
75
100
  }
76
101
  //# sourceMappingURL=view-mode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-mode.js","sourceRoot":"","sources":["../../src/client/view-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-mode.js","sourceRoot":"","sources":["../../src/client/view-mode.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import { type VirtualWorkspaceBinding } from './view-mode.js';
2
- /** The writable face of DSH's in-memory Workspace list store. */
3
- export interface WritableWorkspaceList<T extends {
2
+ /** The read-only snapshot face published by DSH's Workspace Controller. */
3
+ export interface WorkspaceSnapshotSource<T extends {
4
4
  readonly items: readonly unknown[];
5
5
  }> {
6
6
  getSnapshot(): T;
7
- set(next: T): void;
8
7
  subscribe(listener: () => void): () => void;
9
8
  }
10
9
  export interface VirtualWorkspaceMembership {
@@ -13,15 +12,18 @@ export interface VirtualWorkspaceMembership {
13
12
  removeSession(sessionId: string): void;
14
13
  dispose(): void;
15
14
  }
16
- /**
17
- * Maintains a re-playable in-memory overlay over DSH's Workspace list. Native
18
- * refreshes are observed and the current sidecar bindings are applied again;
19
- * no DSH Host mutation or persistence is involved.
20
- */
21
- export declare function createVirtualWorkspaceMembership<T extends {
15
+ type WorkspaceSnapshotWithItems = {
22
16
  readonly items: readonly {
23
17
  readonly workspaceId: string;
24
18
  readonly sessionIds: readonly string[];
25
19
  }[];
26
- }>(list: WritableWorkspaceList<T>): VirtualWorkspaceMembership;
20
+ };
21
+ /**
22
+ * Decorate DSH's read-only WorkspaceSource with a browser-local membership
23
+ * projection. The source's native model is never written: the wrapper keeps
24
+ * the current sidecar bindings in memory, reprojects every native snapshot,
25
+ * and publishes only the projected view to subscribers.
26
+ */
27
+ export declare function createVirtualWorkspaceMembership<T extends WorkspaceSnapshotWithItems>(list: WorkspaceSnapshotSource<T>): VirtualWorkspaceMembership;
28
+ export {};
27
29
  //# sourceMappingURL=virtual-workspace-membership.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-workspace-membership.d.ts","sourceRoot":"","sources":["../../src/client/virtual-workspace-membership.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,gBAAgB,CAAC;AAExB,iEAAiE;AACjE,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE;IACrF,WAAW,IAAI,CAAC,CAAC;IACjB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,GAAG,IAAI,CAAC;IACzD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,OAAO,IAAI,IAAI,CAAC;CACjB;AA2CD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,CAAC,SAAS;IACR,QAAQ,CAAC,KAAK,EAAE,SAAS;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;KACxC,EAAE,CAAC;CACL,EACD,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAoE5D"}
1
+ {"version":3,"file":"virtual-workspace-membership.d.ts","sourceRoot":"","sources":["../../src/client/virtual-workspace-membership.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,gBAAgB,CAAC;AAExB,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB,CACtC,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE;IAEhD,WAAW,IAAI,CAAC,CAAC;IACjB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,GAAG,IAAI,CAAC;IACzD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,OAAO,IAAI,IAAI,CAAC;CACjB;AAqBD,KAAK,0BAA0B,GAAG;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;KACxC,EAAE,CAAC;CACL,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,CAAC,SAAS,0BAA0B,EACpC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,0BAA0B,CA4H9D"}