@cerbur/clutch-dsh-worktree 0.1.22 → 0.1.23

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 (77) hide show
  1. package/README.md +10 -0
  2. package/README.zh.md +9 -0
  3. package/lib/client/WorktreeSurface.js +3 -5
  4. package/lib/client/WorktreeSurface.js.map +1 -1
  5. package/lib/client/dashboard/dashboard-sessions.d.ts +1 -1
  6. package/lib/client/dashboard/dashboard-sessions.d.ts.map +1 -1
  7. package/lib/client/dashboard/dashboard-sessions.js +3 -2
  8. package/lib/client/dashboard/dashboard-sessions.js.map +1 -1
  9. package/lib/client/entry.d.ts.map +1 -1
  10. package/lib/client/entry.js +11 -1
  11. package/lib/client/entry.js.map +1 -1
  12. package/lib/client/locales.d.ts +2 -0
  13. package/lib/client/locales.d.ts.map +1 -1
  14. package/lib/client/locales.js +2 -0
  15. package/lib/client/locales.js.map +1 -1
  16. package/lib/client/session/virtual-workspace-membership.d.ts +1 -0
  17. package/lib/client/session/virtual-workspace-membership.d.ts.map +1 -1
  18. package/lib/client/session/virtual-workspace-membership.js +4 -0
  19. package/lib/client/session/virtual-workspace-membership.js.map +1 -1
  20. package/lib/client/surface/components/SurfaceContent.js +2 -2
  21. package/lib/client/surface/components/SurfaceContent.js.map +1 -1
  22. package/lib/client/surface/components/WorkspaceTree.d.ts +1 -1
  23. package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -1
  24. package/lib/client/surface/components/WorkspaceTree.js +3 -2
  25. package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
  26. package/lib/client/surface/selectors.d.ts +3 -1
  27. package/lib/client/surface/selectors.d.ts.map +1 -1
  28. package/lib/client/surface/selectors.js +15 -0
  29. package/lib/client/surface/selectors.js.map +1 -1
  30. package/lib/client/surface/state/useSessionOrdering.d.ts.map +1 -1
  31. package/lib/client/surface/state/useSessionOrdering.js +1 -1
  32. package/lib/client/surface/state/useSessionOrdering.js.map +1 -1
  33. package/lib/client/surface/state/useSurfaceRefresh.d.ts +2 -2
  34. package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
  35. package/lib/client/surface/state/useSurfaceRefresh.js +118 -95
  36. package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
  37. package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
  38. package/lib/client/surface/state/useSurfaceSources.js +8 -1
  39. package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
  40. package/lib/client/surface/types.d.ts +7 -5
  41. package/lib/client/surface/types.d.ts.map +1 -1
  42. package/lib/client/view/worktree-view-read.d.ts +9 -2
  43. package/lib/client/view/worktree-view-read.d.ts.map +1 -1
  44. package/lib/client/view/worktree-view-read.js +95 -5
  45. package/lib/client/view/worktree-view-read.js.map +1 -1
  46. package/lib/client/worktree-connection.d.ts +1 -0
  47. package/lib/client/worktree-connection.d.ts.map +1 -1
  48. package/lib/client/worktree-connection.js +18 -0
  49. package/lib/client/worktree-connection.js.map +1 -1
  50. package/lib/client.js +469 -282
  51. package/lib/client.js.map +1 -1
  52. package/lib/contract/index.contract.js +2 -0
  53. package/lib/contract/index.contract.js.map +1 -1
  54. package/lib/contract/index.d.ts +15 -1
  55. package/lib/contract/index.d.ts.map +1 -1
  56. package/lib/contract/index.js +1 -0
  57. package/lib/contract/index.js.map +1 -1
  58. package/lib/host/remote.d.ts.map +1 -1
  59. package/lib/host/remote.js +5 -0
  60. package/lib/host/remote.js.map +1 -1
  61. package/lib/host/service.d.ts +4 -1
  62. package/lib/host/service.d.ts.map +1 -1
  63. package/lib/host/service.js +6 -0
  64. package/lib/host/service.js.map +1 -1
  65. package/lib/manage/manager-navigation.d.ts +11 -0
  66. package/lib/manage/manager-navigation.d.ts.map +1 -0
  67. package/lib/manage/manager-navigation.js +88 -0
  68. package/lib/manage/manager-navigation.js.map +1 -0
  69. package/lib/manage/manager.d.ts +3 -0
  70. package/lib/manage/manager.d.ts.map +1 -1
  71. package/lib/manage/manager.js +6 -34
  72. package/lib/manage/manager.js.map +1 -1
  73. package/lib/typert.host.js +154 -50
  74. package/lib/typert.remote-client.d.ts +3 -1
  75. package/lib/typert.remote-client.d.ts.map +1 -1
  76. package/lib/typert.remote-client.js +154 -50
  77. package/package.json +1 -1
@@ -13,7 +13,7 @@ import type { useSurfaceSources } from '../state/useSurfaceSources.js';
13
13
  import type { useWorktreeRegistration } from '../actions/useWorktreeRegistration.js';
14
14
  export type WorkspaceTreeInput = {
15
15
  props: Pick<WorktreeSurfaceProps, 't' | 'openDashboard' | 'createMainSession' | 'openSession' | 'renameSession' | 'forkSession' | 'archiveSession' | 'manager'>;
16
- read: Pick<ReturnType<typeof useSurfaceRefresh>, 'viewByWorkspace' | 'refresh'>;
16
+ read: Pick<ReturnType<typeof useSurfaceRefresh>, 'viewByWorkspace' | 'refresh' | 'readState'>;
17
17
  source: Pick<ReturnType<typeof useSurfaceSources>, 'expandSnapshot' | 'workspaces' | 'sessions' | 'archivedSessionIds' | 'sessionPresentations' | 'currentSessionId'>;
18
18
  expansion: Pick<ReturnType<typeof useSessionExpansion>, 'isCurrentSessionReveal' | 'query' | 'expandedSessionGroups' | 'toggleWorkspace' | 'toggleMain' | 'toggleSessionGroup' | 'toggleWorktree' | 'expandedArchivedWorkspaces' | 'toggleArchivedWorkspace'>;
19
19
  ordering: Pick<ReturnType<typeof useSessionOrdering>, 'orderedSessionIdsByAccount'>;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceTree.d.ts","sourceRoot":"","sources":["../../../../src/client/surface/components/WorkspaceTree.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspaceTree.d.ts","sourceRoot":"","sources":["../../../../src/client/surface/components/WorkspaceTree.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAErF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,IAAI,CACT,oBAAoB,EAClB,GAAG,GACH,eAAe,GACf,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,SAAS,CACZ,CAAC;IACF,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC;IAC9F,MAAM,EAAE,IAAI,CACV,UAAU,CAAC,OAAO,iBAAiB,CAAC,EAClC,gBAAgB,GAChB,YAAY,GACZ,UAAU,GACV,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,CACrB,CAAC;IACF,SAAS,EAAE,IAAI,CACb,UAAU,CAAC,OAAO,mBAAmB,CAAC,EACpC,wBAAwB,GACxB,OAAO,GACP,uBAAuB,GACvB,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,GACpB,gBAAgB,GAChB,4BAA4B,GAC5B,yBAAyB,CAC5B,CAAC;IACF,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,EAAE,4BAA4B,CAAC,CAAC;IACpF,IAAI,EAAE,IAAI,CACR,UAAU,CAAC,OAAO,cAAc,CAAC,EAC/B,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,kBAAkB,GAClB,qBAAqB,GACrB,aAAa,GACb,sBAAsB,GACtB,gBAAgB,GAChB,mBAAmB,GACnB,uBAAuB,GACvB,iBAAiB,GACjB,oBAAoB,CACvB,CAAC;IACF,QAAQ,EAAE,IAAI,CACZ,UAAU,CAAC,OAAO,kBAAkB,CAAC,EACrC,eAAe,GAAG,gBAAgB,GAAG,aAAa,CACnD,CAAC;IACF,KAAK,EAAE,IAAI,CACT,UAAU,CAAC,OAAO,eAAe,CAAC,EAChC,qBAAqB,GACrB,wBAAwB,GACxB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,uBAAuB,CAC1B,CAAC;IACF,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACtF,MAAM,EAAE,IAAI,CACV,UAAU,CAAC,OAAO,gBAAgB,CAAC,EACnC,qBAAqB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,wBAAwB,CAC/F,CAAC;IACF,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAAE,aAAa,GAAG,eAAe,CAAC,CAAC;IACzF,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,EAAE,eAAe,GAAG,sBAAsB,CAAC,CAAC;IAC9F,cAAc,EAAE,IAAI,CAClB,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpC,oBAAoB,GAAG,sBAAsB,GAAG,mBAAmB,CACpE,CAAC;CACH,CAAC;AACF,KAAK,KAAK,GAAG,kBAAkB,CAAC;AAEhC,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,MAAM,EACN,SAAS,EACT,OAAO,EACP,cAAc,GACf,EAAE,KAAK,+BAmWP"}
@@ -44,7 +44,7 @@ export function WorkspaceTree({ props, read, source, expansion, ordering, drag,
44
44
  const workspaceGroupActivityStatus = aggregateSessionStatus(workspaceActivitySessionIds, sessionPresentations);
45
45
  const bindings = view?.bindings ?? [];
46
46
  const boundSessionIds = new Set(bindings.map((binding) => binding.sessionId));
47
- const mainSessionIds = filterVisibleSessionIds(unboundSessionIds(allWorkspaceSessionIds, [...boundSessionIds]), sessions);
47
+ const mainSessionIds = filterVisibleSessionIds(unboundSessionIds(allWorkspaceSessionIds, [...boundSessionIds]).filter((id) => view?.knownSessionIds === undefined || view.knownSessionIds.includes(id)), sessions);
48
48
  const mainGroupKey = `main:${workspace.workspaceId}`;
49
49
  const orderedMainSessionIds = orderedSessionIdsByAccount.get(mainGroupKey) ?? mainSessionIds;
50
50
  const visibleMainSessionIds = mainSessionIds.filter((sessionId) => workspaceMatchesQuery || sessionMatchesQuery(sessionId, sessions, query));
@@ -109,7 +109,8 @@ export function WorkspaceTree({ props, read, source, expansion, ordering, drag,
109
109
  openWorkspaceDelete(workspace);
110
110
  }, onMenuOpenChange: (open) => {
111
111
  setOpenWorkspaceMenuId(open ? workspace.workspaceId : undefined);
112
- } }), expanded && (_jsxs("div", { className: styles.treeChildren, children: [_jsx(WorktreeGroupRow, { t: t, kind: "main", label: mainLabel, expanded: mainExpanded, groupActivityStatus: aggregateSessionStatus(mainSessionIds, sessionPresentations), icon: _jsx(IconBranchOutline16, {}), workspaceTitle: workspace.title, onToggle: () => {
112
+ } }), expanded && view === undefined && (_jsx("p", { className: styles.message, "data-workspace-read": workspace.workspaceId, children: read.readState.targetErrors?.[workspace.workspaceId]
113
+ ? t('status.workspaceFailed') : t('status.loading') })), expanded && view !== undefined && (_jsxs("div", { className: styles.treeChildren, children: [_jsx(WorktreeGroupRow, { t: t, kind: "main", label: mainLabel, expanded: mainExpanded, groupActivityStatus: aggregateSessionStatus(mainSessionIds, sessionPresentations), icon: _jsx(IconBranchOutline16, {}), workspaceTitle: workspace.title, onToggle: () => {
113
114
  toggleMain(workspace.workspaceId);
114
115
  }, showDashboardAction: props.openDashboard !== undefined, menu: {
115
116
  onDashboard: props.openDashboard === undefined
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceTree.js","sourceRoot":"","sources":["../../../../src/client/surface/components/WorkspaceTree.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspaceTree.js","sourceRoot":"","sources":["../../../../src/client/surface/components/WorkspaceTree.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import type { SessionBinding, WorktreeRecord } from '../../contract/index.js';
2
2
  import { type SessionListLike, type SessionPresentation } from '../session/session-view.js';
3
3
  import type { WorktreeWorkspaceView } from '../view/worktree-view.js';
4
- import type { WorkspaceLike, WorktreeTranslate } from './types.js';
4
+ import type { WorkspaceLike, WorkspaceListLike, WorktreeTranslate } from './types.js';
5
+ /** Pending native replay is incomplete evidence, not removal of ready rows. */
6
+ export declare function retainPendingWorkspaces(previous: WorkspaceListLike | undefined, next: WorkspaceListLike): WorkspaceListLike;
5
7
  /** Native activity changes invalidate only the archived Worktrees' owning reads. */
6
8
  export declare function worktreeActivityRefreshWorkspaceIds(views: readonly WorktreeWorkspaceView[], previous: Readonly<Record<string, Pick<SessionPresentation, 'ongoing'> | undefined>>, next: Readonly<Record<string, Pick<SessionPresentation, 'ongoing'> | undefined>>): readonly string[];
7
9
  export declare function sessionLabel(sessionId: string, sessions: SessionListLike, t: WorktreeTranslate): string;
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/client/surface/selectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/client/surface/selectors.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,17 @@
1
1
  import { sessionDisplayLabel, sessionMatchesQuery, } from '../session/session-view.js';
2
+ /** Pending native replay is incomplete evidence, not removal of ready rows. */
3
+ export function retainPendingWorkspaces(previous, next) {
4
+ if (!previous || !isPendingListPhase(next.phase))
5
+ return next;
6
+ const updates = new Map(next.items.map((item) => [item.workspaceId, item]));
7
+ const items = previous.items.map((item) => {
8
+ const update = updates.get(item.workspaceId);
9
+ updates.delete(item.workspaceId);
10
+ return update ? { ...update, sessionIds: [...new Set([...item.sessionIds, ...update.sessionIds])] } : item;
11
+ });
12
+ return { ...next, items: [...items, ...updates.values()],
13
+ archivedSessionIds: [...new Set([...(previous.archivedSessionIds ?? []), ...(next.archivedSessionIds ?? [])])] };
14
+ }
2
15
  /** Native activity changes invalidate only the archived Worktrees' owning reads. */
3
16
  export function worktreeActivityRefreshWorkspaceIds(views, previous, next) {
4
17
  return views
@@ -70,6 +83,8 @@ export function resolveCurrentSessionLocation(currentSessionId, workspaces, view
70
83
  return undefined;
71
84
  const binding = view.bindings.find((candidate) => candidate.sessionId === currentSessionId);
72
85
  if (binding === undefined) {
86
+ if (view.knownSessionIds !== undefined && !view.knownSessionIds.includes(currentSessionId))
87
+ return undefined;
73
88
  return {
74
89
  sessionId: currentSessionId,
75
90
  workspaceId: workspace.workspaceId,
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../src/client/surface/selectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../src/client/surface/selectors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionOrdering.d.ts","sourceRoot":"","sources":["../../../../src/client/surface/state/useSessionOrdering.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC,CAAC;IAClF,MAAM,EAAE,IAAI,CACV,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpC,YAAY,GAAG,UAAU,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,MAAM,GAAG,cAAc,CACpG,CAAC;IACF,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;CACnD,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK;;;EA6FhE"}
1
+ {"version":3,"file":"useSessionOrdering.d.ts","sourceRoot":"","sources":["../../../../src/client/surface/state/useSessionOrdering.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC,CAAC;IAClF,MAAM,EAAE,IAAI,CACV,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpC,YAAY,GAAG,UAAU,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,MAAM,GAAG,cAAc,CACpG,CAAC;IACF,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;CACnD,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK;;;EA8FhE"}
@@ -31,7 +31,7 @@ export function useSessionOrdering({ read, source, props }) {
31
31
  const allWorkspaceSessionIds = filterArchivedSessionIds(workspaceSessionIds(workspaces, workspace.workspaceId, sessions.ids), archivedSessionIds);
32
32
  const bindings = view.bindings;
33
33
  const boundSessionIds = new Set(bindings.map((binding) => binding.sessionId));
34
- const mainSessionIds = filterVisibleSessionIds(unboundSessionIds(allWorkspaceSessionIds, [...boundSessionIds]), sessions);
34
+ const mainSessionIds = filterVisibleSessionIds(unboundSessionIds(allWorkspaceSessionIds, [...boundSessionIds]).filter((id) => view.knownSessionIds === undefined || view.knownSessionIds.includes(id)), sessions);
35
35
  inputs.push({
36
36
  accountKey: `main:${workspace.workspaceId}`,
37
37
  sessionIds: mainSessionIds,
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionOrdering.js","sourceRoot":"","sources":["../../../../src/client/surface/state/useSessionOrdering.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSessionOrdering.js","sourceRoot":"","sources":["../../../../src/client/surface/state/useSessionOrdering.tsx"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import type { ReadState, RefreshOptions, WorktreeSurfaceProps } from '../types.j
3
3
  import type { useRegistrationState } from './useRegistrationState.js';
4
4
  import type { useSurfaceSources } from './useSurfaceSources.js';
5
5
  type Input = {
6
- source: Pick<ReturnType<typeof useSurfaceSources>, 'forkRecoverySnapshot' | 'workspaceIdsRef' | 'mode' | 'workspaceIds' | 'sessionPresentations'>;
7
- props: Pick<WorktreeSurfaceProps, 'manager' | 'viewReader' | 'invalidateWorktreeContext' | 'syncSessionWorkspaces' | 'subscribeToolChanges'>;
6
+ source: Pick<ReturnType<typeof useSurfaceSources>, 'forkRecoverySnapshot' | 'workspaceIdsRef' | 'mode' | 'workspaceIds' | 'sessionPresentations' | 'currentSessionId' | 'workspaces' | 'expandSnapshot'>;
7
+ props: Pick<WorktreeSurfaceProps, 'manager' | 'viewReader' | 'invalidateWorktreeContext' | 'syncSessionWorkspaces' | 'syncWorkspaceSessions' | 'subscribeToolChanges'>;
8
8
  registrationState: Pick<ReturnType<typeof useRegistrationState>, 'modalReadViewRef' | 'setModalReadError' | 'setModalReadLoading' | 'modalReadLoader' | 'setWorktreeModalWorkspaceId'>;
9
9
  };
10
10
  export declare function useSurfaceRefresh({ source, props, registrationState }: Input): {
@@ -1 +1 @@
1
- {"version":3,"file":"useSurfaceRefresh.d.ts","sourceRoot":"","sources":["../../../../src/client/surface/state/useSurfaceRefresh.tsx"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,IAAI,CACV,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpC,sBAAsB,GAAG,iBAAiB,GAAG,MAAM,GAAG,cAAc,GAAG,sBAAsB,CAC9F,CAAC;IACF,KAAK,EAAE,IAAI,CACT,oBAAoB,EACpB,SAAS,GAAG,YAAY,GAAG,2BAA2B,GAAG,uBAAuB,GAAG,sBAAsB,CAC1G,CAAC;IACF,iBAAiB,EAAE,IAAI,CACrB,UAAU,CAAC,OAAO,oBAAoB,CAAC,EACrC,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,iBAAiB,GACjB,6BAA6B,CAChC,CAAC;CACH,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK;;;;;;;;;;;;;;;;;4BAuB5C,MAAM;;;;;;wBAQnB,cAAc,KAAQ,OAAO,CAAC,IAAI,CAAC;yCAqLrC,MAAM,KAAG,IAAI;;;;EA4J9B"}
1
+ {"version":3,"file":"useSurfaceRefresh.d.ts","sourceRoot":"","sources":["../../../../src/client/surface/state/useSurfaceRefresh.tsx"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,IAAI,CACV,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpC,sBAAsB,GAAG,iBAAiB,GAAG,MAAM,GAAG,cAAc,GAAG,sBAAsB,GAC3F,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,CACvD,CAAC;IACF,KAAK,EAAE,IAAI,CACT,oBAAoB,EACpB,SAAS,GAAG,YAAY,GAAG,2BAA2B,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,sBAAsB,CACpI,CAAC;IACF,iBAAiB,EAAE,IAAI,CACrB,UAAU,CAAC,OAAO,oBAAoB,CAAC,EACrC,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,iBAAiB,GACjB,6BAA6B,CAChC,CAAC;CACH,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK;;;;;;;;;;;;;;;;;4BAuC5C,MAAM;;;;;;wBAQnB,cAAc,KAAQ,OAAO,CAAC,IAAI,CAAC;yCA4HrC,MAAM,KAAG,IAAI;;;;EAuM9B"}
@@ -2,15 +2,28 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
2
  import { flushSync } from 'react-dom';
3
3
  import { WorktreeSessionActionError } from '../../session/worktree-session.js';
4
4
  import { createWorktreeRefreshGuard, mergeWorktreeView, mergeWorktreeViews, toWorktreeViewError, } from '../../view/worktree-view.js';
5
- import { worktreeActivityRefreshWorkspaceIds } from '../selectors.js';
5
+ import { worktreeActivityRefreshWorkspaceIds, isCompleteWorktreeWorkspaceSnapshot, isPendingListPhase } from '../selectors.js';
6
6
  import { EMPTY_READ_STATE } from '../shared.js';
7
7
  export function useSurfaceRefresh({ source, props, registrationState }) {
8
- const { forkRecoverySnapshot, workspaceIdsRef, mode, workspaceIds, sessionPresentations } = source;
8
+ const { forkRecoverySnapshot, mode, workspaceIds, sessionPresentations } = source;
9
+ const workspaceIdsRef = useRef(workspaceIds);
10
+ workspaceIdsRef.current = isPendingListPhase(source.workspaces.phase)
11
+ ? [...new Set([...workspaceIdsRef.current, ...workspaceIds])] : workspaceIds;
12
+ const workspacesRef = useRef(source.workspaces);
13
+ workspacesRef.current = source.workspaces;
9
14
  const { manager, viewReader, invalidateWorktreeContext, syncSessionWorkspaces } = props;
15
+ const syncedMembershipViews = useRef(new Map());
10
16
  const { modalReadViewRef, setModalReadError, setModalReadLoading, modalReadLoader, setWorktreeModalWorkspaceId, } = registrationState;
11
17
  const [readState, setReadState] = useState(EMPTY_READ_STATE);
12
18
  const readStateRef = useRef(readState);
13
19
  readStateRef.current = readState;
20
+ const priorityIdsRef = useRef(workspaceIds);
21
+ const currentWorkspaceId = source.workspaces.items.find((workspace) => workspace.sessionIds.includes(source.currentSessionId ?? ''))?.workspaceId;
22
+ priorityIdsRef.current = [...workspaceIds].sort((a, b) => {
23
+ const priority = (id) => id === currentWorkspaceId ? 0
24
+ : source.expandSnapshot.collapsedWorkspaceIds[id] ? 2 : 1;
25
+ return priority(a) - priority(b);
26
+ });
14
27
  const refreshGuard = useRef(createWorktreeRefreshGuard());
15
28
  const targetRefreshGuards = useRef(new Map());
16
29
  const targetReads = useRef(new Map());
@@ -35,46 +48,12 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
35
48
  return;
36
49
  }
37
50
  const scope = options.scope ?? { kind: 'global' };
38
- const preserveCurrent = options.preserveCurrent === true;
39
51
  const currentWorkspaceIds = workspaceIdsRef.current;
40
- if (scope.kind === 'global') {
41
- if (!preserveCurrent) {
42
- setReadState({ status: 'loading', views: [] });
43
- }
44
- const selectedWorkspaceIds = [...currentWorkspaceIds];
45
- for (const workspaceId of selectedWorkspaceIds) {
46
- viewReader.invalidate(workspaceId);
47
- }
48
- const contextRefresh = options.invalidateContext === false ? undefined
49
- : invalidateWorktreeContext?.(undefined, { alreadyInvalidated: true });
50
- await refreshGuard.current.run(async () => {
51
- const [views] = await Promise.all([
52
- viewReader.readMany(selectedWorkspaceIds),
53
- contextRefresh ?? Promise.resolve(),
54
- ]);
55
- return views;
56
- }, (views) => {
57
- setReadState((current) => {
58
- const merged = mergeWorktreeViews(current.views, workspaceIdsRef.current, views);
59
- return {
60
- status: 'ready',
61
- views: modalReadViewRef.current === undefined
62
- ? merged
63
- : mergeWorktreeView(merged, modalReadViewRef.current),
64
- };
65
- });
66
- }, (error) => {
67
- if (preserveCurrent)
68
- throw error;
69
- setReadState({
70
- status: 'error',
71
- views: modalReadViewRef.current === undefined ? [] : [modalReadViewRef.current],
72
- error: toWorktreeViewError(error),
73
- });
74
- });
75
- return;
76
- }
77
- const requestedWorkspaceIds = scope.kind === 'workspace' ? [scope.workspaceId] : scope.workspaceIds;
52
+ // Publish each completed Workspace; the shared reader bounds RPC fan-out.
53
+ if (scope.kind === 'global')
54
+ setReadState((current) => ({ ...current, status: 'ready' }));
55
+ const requestedWorkspaceIds = scope.kind === 'global' ? priorityIdsRef.current
56
+ : scope.kind === 'workspace' ? [scope.workspaceId] : scope.workspaceIds;
78
57
  const selectedWorkspaceIds = [...new Set(requestedWorkspaceIds)].filter((workspaceId) => currentWorkspaceIds.includes(workspaceId));
79
58
  if (selectedWorkspaceIds.length === 0) {
80
59
  if (options.openingSession)
@@ -83,7 +62,7 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
83
62
  }
84
63
  const results = await Promise.allSettled(selectedWorkspaceIds.map(async (workspaceId) => {
85
64
  const guard = guardFor(workspaceId);
86
- if (!options.alreadyInvalidated) {
65
+ if (!options.alreadyInvalidated && !options.ensureLoaded) {
87
66
  viewReader.invalidate(workspaceId, {
88
67
  reuseInFlight: options.reuseInFlight, changeId: options.changeId,
89
68
  });
@@ -92,7 +71,9 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
92
71
  ? undefined
93
72
  : invalidateWorktreeContext?.(workspaceId, { alreadyInvalidated: true })
94
73
  ?.catch(() => undefined);
95
- let request = { generation: guard.begin(), promise: viewReader.read(workspaceId) };
74
+ let request = { generation: guard.begin(), promise: viewReader.read(workspaceId, { current: true }),
75
+ pending: true,
76
+ sessionIds: workspacesRef.current.items.find((item) => item.workspaceId === workspaceId)?.sessionIds ?? [] };
96
77
  targetReads.current.set(workspaceId, request);
97
78
  try {
98
79
  let view;
@@ -117,6 +98,7 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
117
98
  }
118
99
  if (!view)
119
100
  throw new WorktreeSessionActionError('WORKTREE_VIEW_FAILED', 'workspace projection unavailable', true);
101
+ view = view.knownSessionIds === undefined ? { ...view, knownSessionIds: request.sessionIds } : view;
120
102
  if (opening && (!workspaceIdsRef.current.includes(workspaceId) ||
121
103
  !view.worktrees.some((record) => record.worktreeId === opening.worktreeId) ||
122
104
  !view.bindings.some((binding) => binding.sessionId === opening.sessionId &&
@@ -125,28 +107,19 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
125
107
  }
126
108
  if (!guard.isCurrent(request.generation))
127
109
  return;
110
+ if (targetRefreshGuards.current.get(workspaceId) !== guard)
111
+ return;
128
112
  if (!workspaceIdsRef.current.includes(workspaceId))
129
113
  return;
114
+ // flushSync may run membership effects before this request's finally.
115
+ // The authoritative result is settled before publishing its ready view.
116
+ request.pending = false;
130
117
  const publish = () => setReadState((current) => {
131
- const remainingTargetError = current.targetError?.workspaceIds.filter((candidate) => candidate !== workspaceId) ?? [];
132
- const next = {
133
- ...current,
134
- status: 'ready',
118
+ const targetErrors = { ...current.targetErrors };
119
+ delete targetErrors[workspaceId];
120
+ return { ...current, status: 'ready',
135
121
  views: mergeWorktreeViews(current.views, workspaceIdsRef.current, [view]),
136
- error: undefined,
137
- };
138
- if (remainingTargetError.length === 0) {
139
- const withoutTargetError = { ...next };
140
- delete withoutTargetError.targetError;
141
- return withoutTargetError;
142
- }
143
- return {
144
- ...next,
145
- targetError: {
146
- workspaceIds: remainingTargetError,
147
- error: current.targetError.error,
148
- },
149
- };
122
+ error: undefined, targetErrors };
150
123
  });
151
124
  // Native navigation updates an external store synchronously. Commit its
152
125
  // destination first so that the newly current blank row cannot enter Local.
@@ -160,31 +133,27 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
160
133
  throw error;
161
134
  if (!guard.isCurrent(request.generation))
162
135
  return;
136
+ if (targetRefreshGuards.current.get(workspaceId) !== guard)
137
+ return;
163
138
  if (!workspaceIdsRef.current.includes(workspaceId))
164
139
  return;
165
140
  setReadState((current) => {
166
- const previousIds = current.targetError?.workspaceIds ?? [];
167
141
  return {
168
142
  ...current,
169
143
  status: 'ready',
170
144
  views: mergeWorktreeViews(current.views, workspaceIdsRef.current, []),
171
145
  error: undefined,
172
- targetError: {
173
- workspaceIds: [...new Set([...previousIds, workspaceId])],
174
- error: {
175
- ...toWorktreeViewError(error),
176
- retryable: true,
177
- },
146
+ targetErrors: { ...current.targetErrors,
147
+ [workspaceId]: { ...toWorktreeViewError(error), retryable: true },
178
148
  },
179
149
  };
180
150
  });
181
151
  }
182
152
  finally {
183
- // Opening requires the destination grouping, not completion of the old
184
- // Session's context refresh (which may follow further invalidations).
185
- // Keep refreshing in the background, including when reusing a Session.
186
- if (!options.openingSession)
187
- await contextRefresh;
153
+ request.pending = false;
154
+ // Context follows its own identity and generation. Never hold a ready
155
+ // Workspace behind the current Session's independent projection.
156
+ void contextRefresh;
188
157
  }
189
158
  }));
190
159
  if (options.openingSession) {
@@ -215,7 +184,9 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
215
184
  });
216
185
  return;
217
186
  }
218
- void modalReadLoader.current.load(workspaceId, (view) => {
187
+ const sessionIds = workspacesRef.current.items.find((item) => item.workspaceId === workspaceId)?.sessionIds ?? [];
188
+ void modalReadLoader.current.load(workspaceId, (data) => {
189
+ const view = data.knownSessionIds === undefined ? { ...data, knownSessionIds: sessionIds } : data;
219
190
  modalReadViewRef.current = view;
220
191
  setModalReadLoading(false);
221
192
  setReadState((current) => ({
@@ -227,9 +198,50 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
227
198
  setModalReadError(toWorktreeViewError(error));
228
199
  });
229
200
  }, [manager, viewReader]);
201
+ const previousNativeSessions = useRef(new Map(source.workspaces.items.map((item) => [item.workspaceId, item.sessionIds])));
202
+ useEffect(() => {
203
+ if (isPendingListPhase(source.workspaces.phase))
204
+ return;
205
+ const previous = previousNativeSessions.current;
206
+ previousNativeSessions.current = new Map(source.workspaces.items.map((item) => [item.workspaceId, item.sessionIds]));
207
+ for (const workspace of source.workspaces.items) {
208
+ const ids = previous.get(workspace.workspaceId);
209
+ if (!ids)
210
+ continue; // Workspace entry/addition owns its initial read.
211
+ const view = readStateRef.current.views.find((item) => item.workspaceId === workspace.workspaceId);
212
+ if (!workspace.sessionIds.some((id) => !ids.includes(id) &&
213
+ !view?.bindings.some((binding) => binding.sessionId === id)))
214
+ continue;
215
+ // A new native member is not evidence of an absent binding. Retire reads
216
+ // that started before its arrival, even while native mode is active.
217
+ viewReader.invalidate(workspace.workspaceId);
218
+ guardFor(workspace.workspaceId).invalidate();
219
+ if (mode === 'worktree')
220
+ void refresh({
221
+ scope: { kind: 'workspace', workspaceId: workspace.workspaceId }, alreadyInvalidated: true,
222
+ });
223
+ }
224
+ }, [source.workspaces.items, source.workspaces.phase, mode, refresh, viewReader]);
225
+ useEffect(() => {
226
+ if (mode !== 'worktree' || isPendingListPhase(source.workspaces.phase))
227
+ return;
228
+ for (const view of readState.views) {
229
+ if (view.knownSessionIds === undefined || readState.targetErrors?.[view.workspaceId])
230
+ continue;
231
+ const ids = source.workspaces.items.find((item) => item.workspaceId === view.workspaceId)?.sessionIds ?? [];
232
+ const unknown = ids.filter((id) => !view.knownSessionIds.includes(id) &&
233
+ !view.bindings.some((binding) => binding.sessionId === id));
234
+ const pending = targetReads.current.get(view.workspaceId);
235
+ if (!unknown.length || (pending?.pending && unknown.every((id) => pending.sessionIds.includes(id))))
236
+ continue;
237
+ // A shared Context read may predate the Surface's first native snapshot.
238
+ // Keep unknown members hidden and validate them with a new generation.
239
+ void refresh({ scope: { kind: 'workspace', workspaceId: view.workspaceId } });
240
+ }
241
+ }, [readState.views, readState.targetErrors, source.workspaces.items, source.workspaces.phase, mode, refresh]);
230
242
  useEffect(() => {
231
243
  if (mode === 'worktree') {
232
- void refresh({ preserveCurrent: readStateRef.current.status === 'ready' });
244
+ void refresh({ preserveCurrent: true, reuseInFlight: true });
233
245
  }
234
246
  else {
235
247
  refreshGuard.current.invalidate();
@@ -241,47 +253,43 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
241
253
  setWorktreeModalWorkspaceId(undefined);
242
254
  setModalReadError(undefined);
243
255
  setModalReadLoading(false);
244
- setReadState(EMPTY_READ_STATE);
256
+ // Keep ready content for immediate reuse on re-entry.
245
257
  }
246
258
  }, [mode, refresh]);
247
259
  const previousWorkspaceIdsRef = useRef(workspaceIds);
248
260
  useEffect(() => {
261
+ if (isPendingListPhase(source.workspaces.phase))
262
+ return;
249
263
  const previousWorkspaceIds = previousWorkspaceIdsRef.current;
250
264
  previousWorkspaceIdsRef.current = workspaceIds;
251
- if (mode !== 'worktree')
252
- return;
253
265
  const addedWorkspaceIds = workspaceIds.filter((workspaceId) => !previousWorkspaceIds.includes(workspaceId));
254
266
  const removedWorkspaceIds = previousWorkspaceIds.filter((workspaceId) => !workspaceIds.includes(workspaceId));
255
267
  for (const workspaceId of removedWorkspaceIds) {
268
+ targetRefreshGuards.current.get(workspaceId)?.invalidate();
256
269
  targetRefreshGuards.current.delete(workspaceId);
257
270
  targetReads.current.delete(workspaceId);
271
+ viewReader.invalidate(workspaceId);
272
+ syncedMembershipViews.current.delete(workspaceId);
273
+ props.syncWorkspaceSessions?.(workspaceId, []);
258
274
  }
259
275
  setReadState((current) => {
260
276
  const views = mergeWorktreeViews(current.views, workspaceIds, []);
261
- const remainingTargetError = current.targetError?.workspaceIds.filter((workspaceId) => workspaceIds.includes(workspaceId)) ?? [];
262
- const next = { ...current, views };
263
- if (remainingTargetError.length === 0) {
264
- const withoutTargetError = { ...next };
265
- delete withoutTargetError.targetError;
266
- return withoutTargetError;
267
- }
268
- return {
269
- ...next,
270
- targetError: {
271
- workspaceIds: remainingTargetError,
272
- error: current.targetError.error,
273
- },
274
- };
277
+ const targetErrors = Object.fromEntries(Object.entries(current.targetErrors ?? {})
278
+ .filter(([workspaceId]) => workspaceIds.includes(workspaceId)));
279
+ return { ...current, views, targetErrors };
275
280
  });
281
+ if (mode !== 'worktree')
282
+ return;
276
283
  for (const workspaceId of addedWorkspaceIds) {
277
284
  void refresh({
278
285
  scope: { kind: 'workspace', workspaceId },
279
286
  preserveCurrent: true,
287
+ ensureLoaded: true,
280
288
  }).catch(() => {
281
289
  // The target error remains visible and can be retried explicitly.
282
290
  });
283
291
  }
284
- }, [mode, refresh, workspaceIds]);
292
+ }, [mode, refresh, workspaceIds, source.workspaces.phase, viewReader]);
285
293
  useEffect(() => {
286
294
  if (forkRecoveryRevisionRef.current === forkRecoverySnapshot.revision)
287
295
  return;
@@ -307,13 +315,28 @@ export function useSurfaceRefresh({ source, props, registrationState }) {
307
315
  refresh,
308
316
  ]);
309
317
  useEffect(() => {
310
- if (readState.status !== 'ready' || syncSessionWorkspaces === undefined)
318
+ if (readState.status !== 'ready' || isPendingListPhase(source.workspaces.phase))
319
+ return;
320
+ if (props.syncWorkspaceSessions) {
321
+ for (const view of readState.views) {
322
+ if (syncedMembershipViews.current.get(view.workspaceId) === view ||
323
+ targetReads.current.get(view.workspaceId)?.pending)
324
+ continue;
325
+ syncedMembershipViews.current.set(view.workspaceId, view);
326
+ props.syncWorkspaceSessions(view.workspaceId, view.bindings);
327
+ }
328
+ return;
329
+ }
330
+ // Legacy injected surfaces have only a full-snapshot synchronization port.
331
+ if (syncSessionWorkspaces === undefined ||
332
+ [...targetReads.current.values()].some((request) => request.pending) ||
333
+ !isCompleteWorktreeWorkspaceSnapshot(workspaceIds, readState.views))
311
334
  return;
312
335
  syncSessionWorkspaces(readState.views.flatMap((view) => view.bindings.map((binding) => ({
313
336
  workspaceId: binding.workspaceId,
314
337
  sessionId: binding.sessionId,
315
338
  }))));
316
- }, [readState.status, readState.views, syncSessionWorkspaces]);
339
+ }, [readState.status, readState.views, syncSessionWorkspaces, props.syncWorkspaceSessions, workspaceIds, source.workspaces.phase]);
317
340
  const viewByWorkspace = useMemo(() => new Map(readState.views.map((view) => [view.workspaceId, view])), [readState.views]);
318
341
  const previousActivityRef = useRef(sessionPresentations);
319
342
  useEffect(() => {