@cerbur/clutch-dsh-worktree 0.1.24 → 0.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -22
- package/README.zh.md +67 -19
- package/lib/client/WorktreeSurface.d.ts.map +1 -1
- package/lib/client/WorktreeSurface.js +2 -1
- package/lib/client/WorktreeSurface.js.map +1 -1
- package/lib/client/dsh-icons.d.ts +1 -0
- package/lib/client/dsh-icons.d.ts.map +1 -1
- package/lib/client/dsh-icons.js +1 -0
- package/lib/client/dsh-icons.js.map +1 -1
- package/lib/client/locales.d.ts +28 -2
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +28 -2
- package/lib/client/locales.js.map +1 -1
- package/lib/client/surface/components/ActiveWorktree.d.ts +1 -1
- package/lib/client/surface/components/ActiveWorktree.d.ts.map +1 -1
- package/lib/client/surface/components/ActiveWorktree.js +8 -2
- package/lib/client/surface/components/ActiveWorktree.js.map +1 -1
- package/lib/client/surface/components/ActivityFilterBar.d.ts +16 -0
- package/lib/client/surface/components/ActivityFilterBar.d.ts.map +1 -0
- package/lib/client/surface/components/ActivityFilterBar.js +48 -0
- package/lib/client/surface/components/ActivityFilterBar.js.map +1 -0
- package/lib/client/surface/components/AnimatedTree.js +2 -2
- package/lib/client/surface/components/AnimatedTree.js.map +1 -1
- package/lib/client/surface/components/ArchivedWorktree.d.ts +1 -1
- package/lib/client/surface/components/ArchivedWorktree.d.ts.map +1 -1
- package/lib/client/surface/components/ArchivedWorktree.js +7 -2
- package/lib/client/surface/components/ArchivedWorktree.js.map +1 -1
- package/lib/client/surface/components/ArchivedWorktrees.d.ts +1 -1
- package/lib/client/surface/components/ArchivedWorktrees.d.ts.map +1 -1
- package/lib/client/surface/components/ArchivedWorktrees.js +2 -2
- package/lib/client/surface/components/ArchivedWorktrees.js.map +1 -1
- package/lib/client/surface/components/SurfaceContent.d.ts +2 -2
- package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
- package/lib/client/surface/components/SurfaceContent.js.map +1 -1
- package/lib/client/surface/components/WorkspaceTree.d.ts +2 -2
- package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -1
- package/lib/client/surface/components/WorkspaceTree.js +34 -11
- package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
- package/lib/client/surface/components/rows.d.ts.map +1 -1
- package/lib/client/surface/components/rows.js +1 -1
- package/lib/client/surface/components/rows.js.map +1 -1
- package/lib/client/surface/state/useActivityFilter.d.ts +25 -0
- package/lib/client/surface/state/useActivityFilter.d.ts.map +1 -0
- package/lib/client/surface/state/useActivityFilter.js +79 -0
- package/lib/client/surface/state/useActivityFilter.js.map +1 -0
- package/lib/client/surface/state/useSessionExpansion.d.ts +2 -0
- package/lib/client/surface/state/useSessionExpansion.d.ts.map +1 -1
- package/lib/client/surface/state/useSessionExpansion.js +75 -17
- package/lib/client/surface/state/useSessionExpansion.js.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.d.ts +2 -1
- package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.js +12 -0
- package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
- package/lib/client/view/activity-filter.d.ts +86 -0
- package/lib/client/view/activity-filter.d.ts.map +1 -0
- package/lib/client/view/activity-filter.js +121 -0
- package/lib/client/view/activity-filter.js.map +1 -0
- package/lib/client/view/view-mode-store.d.ts.map +1 -1
- package/lib/client/view/view-mode-store.js +26 -1
- package/lib/client/view/view-mode-store.js.map +1 -1
- package/lib/client/view/view-mode.d.ts +18 -1
- package/lib/client/view/view-mode.d.ts.map +1 -1
- package/lib/client/view/view-mode.js.map +1 -1
- package/lib/client/view/worktree-expand-state.d.ts +12 -1
- package/lib/client/view/worktree-expand-state.d.ts.map +1 -1
- package/lib/client/view/worktree-expand-state.js +26 -0
- package/lib/client/view/worktree-expand-state.js.map +1 -1
- package/lib/client.js +579 -79
- package/lib/client.js.map +1 -1
- package/lib/host/service.d.ts +1 -1
- package/lib/host/service.d.ts.map +1 -1
- package/lib/tool/context.d.ts +3 -0
- package/lib/tool/context.d.ts.map +1 -1
- package/lib/tool/context.js +13 -6
- package/lib/tool/context.js.map +1 -1
- package/lib/tool/index.d.ts.map +1 -1
- package/lib/tool/index.js +87 -33
- package/lib/tool/index.js.map +1 -1
- package/lib/tool/native-session.d.ts.map +1 -1
- package/lib/tool/native-session.js +16 -0
- package/lib/tool/native-session.js.map +1 -1
- package/lib/tool/types.d.ts +1 -1
- package/lib/tool/types.d.ts.map +1 -1
- package/lib/typert.host.js +623 -278
- package/lib/typert.remote-client.d.ts +35 -2
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +617 -277
- package/package.json +59 -54
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
2
|
-
import { isMainExpanded, isWorkspaceExpanded, isWorktreeExpanded, } from '../../view/worktree-expand-state.js';
|
|
2
|
+
import { isMainExpanded, isWorkspaceExpanded, isWorktreeExpanded, resolveOpenWorkspaceId, } from '../../view/worktree-expand-state.js';
|
|
3
3
|
import { scrollCurrentSessionIntoView } from '../../session/worktree-session-position.js';
|
|
4
4
|
import { clearSessionGroupExpansion, currentSessionRevealKeys, isCompleteWorktreeWorkspaceSnapshot, isPendingListPhase, resolveCurrentSessionLocation, } from '../selectors.js';
|
|
5
5
|
export function useSessionExpansion({ read, source, props }) {
|
|
@@ -14,6 +14,9 @@ export function useSessionExpansion({ read, source, props }) {
|
|
|
14
14
|
const [currentSessionReveal, setCurrentSessionReveal] = useState();
|
|
15
15
|
const revealSessionIdRef = useRef(Symbol('initial'));
|
|
16
16
|
const revealModeRef = useRef(Symbol('initial'));
|
|
17
|
+
// The Workspace already forced open for the current Session. It prevents the reveal
|
|
18
|
+
// from overriding a newer explicit tab click before suppression state commits.
|
|
19
|
+
const appliedRevealRef = useRef();
|
|
17
20
|
let activeReveal = currentSessionReveal;
|
|
18
21
|
if (currentSessionId !== revealSessionIdRef.current || mode !== revealModeRef.current) {
|
|
19
22
|
revealSessionIdRef.current = currentSessionId;
|
|
@@ -26,6 +29,10 @@ export function useSessionExpansion({ read, source, props }) {
|
|
|
26
29
|
}
|
|
27
30
|
const searchQueryRef = useRef(searchQuery);
|
|
28
31
|
searchQueryRef.current = searchQuery;
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (mode !== 'worktree')
|
|
34
|
+
appliedRevealRef.current = undefined;
|
|
35
|
+
}, [mode]);
|
|
29
36
|
useEffect(() => {
|
|
30
37
|
if (!searchExpanded)
|
|
31
38
|
return;
|
|
@@ -60,6 +67,15 @@ export function useSessionExpansion({ read, source, props }) {
|
|
|
60
67
|
activeReveal.sessionId === currentSessionId &&
|
|
61
68
|
currentRevealKeys.has(key) &&
|
|
62
69
|
activeReveal.suppressedKeys[key] !== true;
|
|
70
|
+
// Only one Workspace is open at a time: exactly one owns the tree body. A temporary
|
|
71
|
+
// current-Session reveal is the immediate choice; the store write below settles it.
|
|
72
|
+
const revealedWorkspaceId = currentSessionLocation?.workspaceId !== undefined &&
|
|
73
|
+
workspaceIds.includes(currentSessionLocation.workspaceId) &&
|
|
74
|
+
isCurrentSessionReveal('workspace:' + currentSessionLocation.workspaceId)
|
|
75
|
+
? currentSessionLocation.workspaceId
|
|
76
|
+
: undefined;
|
|
77
|
+
const openWorkspaceId = resolveOpenWorkspaceId(expandSnapshot, workspaceIds, revealedWorkspaceId);
|
|
78
|
+
const isWorkspaceOpen = (workspaceId) => workspaceId === openWorkspaceId;
|
|
63
79
|
useLayoutEffect(() => {
|
|
64
80
|
locateGenerationRef.current += 1;
|
|
65
81
|
positionedLocateGenerationRef.current = undefined;
|
|
@@ -102,6 +118,43 @@ export function useSessionExpansion({ read, source, props }) {
|
|
|
102
118
|
query,
|
|
103
119
|
readState.status,
|
|
104
120
|
]);
|
|
121
|
+
// Keep the tab choice as one persisted value. A revealed current-Session Workspace
|
|
122
|
+
// wins immediately; legacy multi-open records settle on the first open choice.
|
|
123
|
+
useLayoutEffect(() => {
|
|
124
|
+
if (mode !== 'worktree' ||
|
|
125
|
+
readState.status !== 'ready' ||
|
|
126
|
+
isPendingListPhase(workspaces.phase) ||
|
|
127
|
+
workspaceIds.length === 0) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const expandedIds = workspaceIds.filter((workspaceId) => isWorkspaceExpanded(expandSnapshot, workspaceId));
|
|
131
|
+
if (revealedWorkspaceId !== undefined) {
|
|
132
|
+
const applied = appliedRevealRef.current;
|
|
133
|
+
if (applied !== undefined &&
|
|
134
|
+
applied.sessionId === currentSessionId &&
|
|
135
|
+
applied.workspaceId === revealedWorkspaceId) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
expandState.actions.openWorkspaceExclusive(revealedWorkspaceId, workspaceIds);
|
|
139
|
+
appliedRevealRef.current = {
|
|
140
|
+
sessionId: currentSessionId,
|
|
141
|
+
workspaceId: revealedWorkspaceId,
|
|
142
|
+
};
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (expandedIds.length > 1 && openWorkspaceId !== undefined) {
|
|
146
|
+
expandState.actions.openWorkspaceExclusive(openWorkspaceId, workspaceIds);
|
|
147
|
+
}
|
|
148
|
+
}, [
|
|
149
|
+
mode,
|
|
150
|
+
readState.status,
|
|
151
|
+
workspaces.phase,
|
|
152
|
+
workspaceIds,
|
|
153
|
+
expandSnapshot,
|
|
154
|
+
revealedWorkspaceId,
|
|
155
|
+
openWorkspaceId,
|
|
156
|
+
expandState,
|
|
157
|
+
]);
|
|
105
158
|
useEffect(() => {
|
|
106
159
|
// Pruning is destructive: require a confirmed Workspace list whose projections all
|
|
107
160
|
// arrived. A pending or partial read means "nothing arrived yet", not "nothing exists".
|
|
@@ -129,27 +182,30 @@ export function useSessionExpansion({ read, source, props }) {
|
|
|
129
182
|
});
|
|
130
183
|
return true;
|
|
131
184
|
};
|
|
185
|
+
const workspaceGroupKeys = (workspaceId) => [
|
|
186
|
+
'main:' + workspaceId,
|
|
187
|
+
...(viewByWorkspace.get(workspaceId)?.worktrees.map((record) => record.worktreeId) ?? []).map((worktreeId) => 'worktree:' + worktreeId),
|
|
188
|
+
];
|
|
132
189
|
const toggleWorkspace = (workspaceId) => {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
if (visuallyExpanded && autoExpanded) {
|
|
190
|
+
// The active tab closes on a second activation; an inactive tab replaces the
|
|
191
|
+
// active one, so the tree body never shows two Workspaces at once.
|
|
192
|
+
if (openWorkspaceId === workspaceId) {
|
|
137
193
|
suppressCurrentSessionReveal('workspace:' + workspaceId);
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
...(viewByWorkspace.get(workspaceId)?.worktrees.map((record) => record.worktreeId) ?? []).map((worktreeId) => 'worktree:' + worktreeId),
|
|
143
|
-
]);
|
|
194
|
+
if (isWorkspaceExpanded(expandSnapshot, workspaceId)) {
|
|
195
|
+
expandState.actions.toggleWorkspace(workspaceId);
|
|
196
|
+
}
|
|
197
|
+
clearSessionGroups(workspaceGroupKeys(workspaceId));
|
|
144
198
|
return;
|
|
145
199
|
}
|
|
146
|
-
|
|
147
|
-
if (
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
]);
|
|
200
|
+
const currentWorkspaceId = currentSessionLocation?.workspaceId;
|
|
201
|
+
if (currentWorkspaceId !== undefined && currentWorkspaceId !== workspaceId) {
|
|
202
|
+
// Explicit tab selection outranks the automatic reveal of the Workspace that
|
|
203
|
+
// owns the current Session until navigation changes.
|
|
204
|
+
suppressCurrentSessionReveal('workspace:' + currentWorkspaceId);
|
|
152
205
|
}
|
|
206
|
+
if (openWorkspaceId !== undefined)
|
|
207
|
+
clearSessionGroups(workspaceGroupKeys(openWorkspaceId));
|
|
208
|
+
expandState.actions.openWorkspaceExclusive(workspaceId, workspaceIds);
|
|
153
209
|
};
|
|
154
210
|
const toggleMain = (workspaceId) => {
|
|
155
211
|
const persistedExpanded = isMainExpanded(expandSnapshot, workspaceId);
|
|
@@ -231,6 +287,8 @@ export function useSessionExpansion({ read, source, props }) {
|
|
|
231
287
|
currentSessionLocation,
|
|
232
288
|
currentRevealKeys,
|
|
233
289
|
isCurrentSessionReveal,
|
|
290
|
+
openWorkspaceId,
|
|
291
|
+
isWorkspaceOpen,
|
|
234
292
|
clearSessionGroups,
|
|
235
293
|
suppressCurrentSessionReveal,
|
|
236
294
|
toggleWorkspace,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionExpansion.js","sourceRoot":"","sources":["../../../../src/client/surface/state/useSessionExpansion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,mCAAmC,EACnC,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AAezB,MAAM,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAS;IAChE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAC5C,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IACpF,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,EAA6B,CAAC;IAC9F,MAAM,kBAAkB,GAAG,MAAM,CAAqB,MAAM,CAAC,SAAS,CAAsB,CAAC,CAAC;IAC9F,MAAM,aAAa,GAAG,MAAM,CAA0B,MAAM,CAAC,SAAS,CAA2B,CAAC,CAAC;IAEnG,IAAI,YAAY,GAAG,oBAAoB,CAAC;IACxC,IAAI,gBAAgB,KAAK,kBAAkB,CAAC,OAAO,IAAI,IAAI,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;QACtF,kBAAkB,CAAC,OAAO,GAAG,gBAAgB,CAAC;QAC9C,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,YAAY;YACV,gBAAgB,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU;gBACnD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QAC1D,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,cAAc,CAAC,OAAO,GAAG,WAAW,CAAC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,cAAc;YAAE,OAAO;QAC5B,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAQ,EAAE;YAC1C,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI;gBACxF,OAAO;YACT,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAC5B,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO;YACtC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,cAAc,EAAE,CAAC;YACnB,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACrB,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,6BAA6B,GAAG,MAAM,EAAU,CAAC;IACvD,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAG,QAAQ,CAE1E,EAAE,CAAC,CAAC;IACN,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;IACrD,MAAM,sBAAsB,GAAG,OAAO,CACpC,GAAG,EAAE,CACH,SAAS,CAAC,MAAM,KAAK,OAAO;QAC1B,CAAC,CAAC,6BAA6B,CAAC,gBAAgB,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;QACpF,CAAC,CAAC,SAAS,EACf,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CACxE,CAAC;IACF,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC,EAC/D,CAAC,sBAAsB,CAAC,CACzB,CAAC;IACF,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAW,EAAE,CACtD,YAAY,KAAK,SAAS;QAC1B,YAAY,CAAC,SAAS,KAAK,gBAAgB;QAC3C,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;QAC1B,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC5C,eAAe,CAAC,GAAG,EAAE;QACnB,mBAAmB,CAAC,OAAO,IAAI,CAAC,CAAC;QACjC,6BAA6B,CAAC,OAAO,GAAG,SAAS,CAAC;QAClD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7B,eAAe,CAAC,GAAG,EAAE;QACnB,IACE,IAAI,KAAK,UAAU;YACnB,gBAAgB,KAAK,SAAS;YAC9B,sBAAsB,KAAK,SAAS,EACpC,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC;QAC/C,IAAI,6BAA6B,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO;QACjE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE;YACvC,IAAI,SAAS,IAAI,UAAU,KAAK,mBAAmB,CAAC,OAAO;gBAAE,OAAO;YACpE,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAAE,OAAO;YAChF,6BAA6B,CAAC,OAAO,GAAG,UAAU,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,gBAAgB;QAChB,sBAAsB;QACtB,YAAY;QACZ,cAAc;QACd,IAAI;QACJ,KAAK;QACL,SAAS,CAAC,MAAM;KACjB,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,mFAAmF;QACnF,wFAAwF;QACxF,IACE,SAAS,CAAC,MAAM,KAAK,OAAO;YAC5B,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC;YACpC,CAAC,mCAAmC,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC;YAEnE,OAAO;QACT,WAAW,CAAC,OAAO,CAAC,MAAM,CACxB,YAAY,EACZ,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CACrF,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACrF,MAAM,kBAAkB,GAAG,CAAC,SAA4B,EAAQ,EAAE;QAChE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACnC,wBAAwB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC;IACF,MAAM,4BAA4B,GAAG,CAAC,GAAW,EAAW,EAAE;QAC5D,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,uBAAuB,CAAC,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,gBAAgB;gBAAE,OAAO,OAAO,CAAC;YACpF,OAAO;gBACL,GAAG,OAAO;gBACV,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;aAC3D,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAQ,EAAE;QACpD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,sBAAsB,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;QACxE,MAAM,gBAAgB,GAAG,iBAAiB,IAAI,YAAY,CAAC;QAC3D,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;YACrC,4BAA4B,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,gBAAgB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,kBAAkB,CAAC;gBACjB,OAAO,GAAG,WAAW;gBACrB,GAAG,CACD,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CACrF,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,GAAG,UAAU,CAAC;aAChD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,gBAAgB,EAAE,CAAC;YACrB,kBAAkB,CAAC;gBACjB,OAAO,GAAG,WAAW;gBACrB,GAAG,CACD,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CACrF,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,GAAG,UAAU,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAQ,EAAE;QAC/C,MAAM,iBAAiB,GAAG,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,iBAAiB,IAAI,YAAY,CAAC;QAC3D,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;YACrC,4BAA4B,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,gBAAgB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,kBAAkB,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,gBAAgB;YAAE,kBAAkB,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAQ,EAAE;QAClD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,sBAAsB,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,iBAAiB,IAAI,YAAY,CAAC;QAC3D,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;YACrC,4BAA4B,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,gBAAgB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,kBAAkB,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,gBAAgB;YAAE,kBAAkB,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC;IACF,MAAM,uBAAuB,GAAG,CAAC,WAAmB,EAAQ,EAAE;QAC5D,MAAM,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;QAC9C,MAAM,YAAY,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;QAC3E,MAAM,gBAAgB,GAAG,iBAAiB,IAAI,YAAY,CAAC;QAC3D,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;YACrC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;QACD,6BAA6B,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,OAAO;YACV,CAAC,WAAW,CAAC,EAAE,CAAC,gBAAgB;SACjC,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,YAAqB,EAAQ,EAAE;QAC3E,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;QACnE,IAAI,YAAY,EAAE,CAAC;YACjB,4BAA4B,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAAC;YAC1D,wBAAwB,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,wBAAwB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,OAAO;YACV,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB;SAC/B,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;IACF,OAAO;QACL,WAAW;QACX,cAAc;QACd,cAAc;QACd,iBAAiB;QACjB,UAAU;QACV,WAAW;QACX,UAAU;QACV,oBAAoB,EAAE,YAAY;QAClC,uBAAuB;QACvB,cAAc;QACd,mBAAmB;QACnB,6BAA6B;QAC7B,0BAA0B;QAC1B,6BAA6B;QAC7B,qBAAqB;QACrB,wBAAwB;QACxB,KAAK;QACL,sBAAsB;QACtB,iBAAiB;QACjB,sBAAsB;QACtB,kBAAkB;QAClB,4BAA4B;QAC5B,eAAe;QACf,UAAU;QACV,cAAc;QACd,uBAAuB;QACvB,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"useSessionExpansion.js","sourceRoot":"","sources":["../../../../src/client/surface/state/useSessionExpansion.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type SessionListLike } from '../../session/session-view.js';
|
|
2
2
|
import type { WorkspaceListLike, WorktreeSurfaceProps } from '../types.js';
|
|
3
3
|
type Input = {
|
|
4
|
-
props: Pick<WorktreeSurfaceProps, 'useStore' | 'available' | 'manager' | 'useSessions' | 'useSessionStatus' | 'useWorkspaces' | 'forkRecovery' | 'expandState' | 'sessionOrder' | 'sidebarSeat'>;
|
|
4
|
+
props: Pick<WorktreeSurfaceProps, 'useStore' | 'actions' | 'available' | 'manager' | 'useSessions' | 'useSessionStatus' | 'useWorkspaces' | 'forkRecovery' | 'expandState' | 'sessionOrder' | 'sidebarSeat'>;
|
|
5
5
|
};
|
|
6
6
|
export declare function useSurfaceSources({ props }: Input): {
|
|
7
7
|
preferredMode: import("../../view/view-mode.js").WorktreeViewMode;
|
|
@@ -16,6 +16,7 @@ export declare function useSurfaceSources({ props }: Input): {
|
|
|
16
16
|
expandSnapshot: import("../../view/worktree-expand-state.js").WorktreeExpandState;
|
|
17
17
|
sessionOrderSnapshot: import("../../session/worktree-session-order.js").WorktreeSessionOrderState;
|
|
18
18
|
sessionPresentations: Readonly<Record<string, import("../../session/session-view.js").SessionPresentation>>;
|
|
19
|
+
activity: import("../../view/activity-filter.js").ActivityFilterView;
|
|
19
20
|
bounds: {
|
|
20
21
|
ready: boolean;
|
|
21
22
|
top: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSurfaceSources.d.ts","sourceRoot":"","sources":["../../../../src/client/surface/state/useSurfaceSources.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"useSurfaceSources.d.ts","sourceRoot":"","sources":["../../../../src/client/surface/state/useSurfaceSources.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AASvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAG3E,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,IAAI,CACT,oBAAoB,EAClB,UAAU,GACV,SAAS,GACT,WAAW,GACX,SAAS,GACT,aAAa,GACb,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,aAAa,GACb,cAAc,GACd,aAAa,CAChB,CAAC;CACH,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;EA8EjD"}
|
|
@@ -4,6 +4,7 @@ import { useWorkspaceRegionGeometry } from '../../view/workspace-region-geometry
|
|
|
4
4
|
import { effectiveViewMode } from '../../view/view-mode.js';
|
|
5
5
|
import { currentSessionIdFromList } from '../../session/session-selection.js';
|
|
6
6
|
import { EMPTY_FORK_RECOVERY_STORE, useStableWorkspaceIds, } from '../shared.js';
|
|
7
|
+
import { useActivityFilter } from './useActivityFilter.js';
|
|
7
8
|
import { retainPendingWorkspaces } from '../selectors.js';
|
|
8
9
|
export function useSurfaceSources({ props }) {
|
|
9
10
|
const { useStore, available, manager, useSessions, useSessionStatus, useWorkspaces, forkRecovery, expandState, sessionOrder, } = props;
|
|
@@ -30,6 +31,16 @@ export function useSurfaceSources({ props }) {
|
|
|
30
31
|
const sessionPresentations = useMemo(() => deriveSessionPresentationIndex(sessions, sessionStatuses), [sessions.byId, sessionStatuses]);
|
|
31
32
|
const { bounds, collapsed } = useWorkspaceRegionGeometry(props.sidebarSeat);
|
|
32
33
|
const archivedSessionIds = workspaces.archivedSessionIds ?? [];
|
|
34
|
+
const activity = useActivityFilter({
|
|
35
|
+
props,
|
|
36
|
+
enabled: mode === 'worktree',
|
|
37
|
+
source: {
|
|
38
|
+
sessions,
|
|
39
|
+
sessionPresentations,
|
|
40
|
+
currentSessionId,
|
|
41
|
+
archivedSessionIds,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
33
44
|
return {
|
|
34
45
|
preferredMode,
|
|
35
46
|
mode,
|
|
@@ -43,6 +54,7 @@ export function useSurfaceSources({ props }) {
|
|
|
43
54
|
expandSnapshot,
|
|
44
55
|
sessionOrderSnapshot,
|
|
45
56
|
sessionPresentations,
|
|
57
|
+
activity,
|
|
46
58
|
bounds,
|
|
47
59
|
collapsed,
|
|
48
60
|
archivedSessionIds,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSurfaceSources.js","sourceRoot":"","sources":["../../../../src/client/surface/state/useSurfaceSources.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EACL,8BAA8B,GAE/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"useSurfaceSources.js","sourceRoot":"","sources":["../../../../src/client/surface/state/useSurfaceSources.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EACL,8BAA8B,GAE/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAmB1D,MAAM,UAAU,iBAAiB,CAAC,EAAE,KAAK,EAAS;IAChD,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,GACb,GAAG,KAAK,CAAC;IACV,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,iBAAiB,CAAC,aAAa,EAAE,SAAS,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAoB,CAAC;IAClE,8EAA8E;IAC9E,MAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAsB,CAAC;IAC9E,MAAM,kBAAkB,GAAG,MAAM,EAAqB,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,MAAM,IAAI,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACnF,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvB,MAAM,iBAAiB,GAAG,YAAY,IAAI,yBAAyB,CAAC;IACpE,MAAM,oBAAoB,GAAG,oBAAoB,CAC/C,iBAAiB,CAAC,SAAS,EAC3B,iBAAiB,CAAC,WAAW,EAC7B,iBAAiB,CAAC,WAAW,CAC9B,CAAC;IACF,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7C,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;IACvC,MAAM,cAAc,GAAG,oBAAoB,CACzC,WAAW,CAAC,SAAS,EACrB,WAAW,CAAC,WAAW,EACvB,WAAW,CAAC,WAAW,CACxB,CAAC;IACF,MAAM,oBAAoB,GAAG,oBAAoB,CAC/C,YAAY,CAAC,SAAS,EACtB,YAAY,CAAC,WAAW,EACxB,YAAY,CAAC,WAAW,CACzB,CAAC;IACF,MAAM,oBAAoB,GAAG,OAAO,CAClC,GAAG,EAAE,CAAC,8BAA8B,CAAC,QAAQ,EAAE,eAAe,CAAC,EAC/D,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CACjC,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,0BAA0B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACjC,KAAK;QACL,OAAO,EAAE,IAAI,KAAK,UAAU;QAC5B,MAAM,EAAE;YACN,QAAQ;YACR,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;SACnB;KACF,CAAC,CAAC;IACH,OAAO;QACL,aAAa;QACb,IAAI;QACJ,QAAQ;QACR,UAAU;QACV,iBAAiB;QACjB,oBAAoB;QACpB,gBAAgB;QAChB,YAAY;QACZ,eAAe;QACf,cAAc;QACd,oBAAoB;QACpB,oBAAoB;QACpB,QAAQ;QACR,MAAM;QACN,SAAS;QACT,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { SessionListLike, SessionPresentation } from '../session/session-view.js';
|
|
2
|
+
/**
|
|
3
|
+
* Browser-only activity window that scopes the Worktree tree.
|
|
4
|
+
*
|
|
5
|
+
* The filter is a presentation projection over native Session facts
|
|
6
|
+
* (`updatedAt`, running state and pending interaction). It never adds an RPC,
|
|
7
|
+
* never reads Git, and never writes a Sidecar field: hiding a row must not
|
|
8
|
+
* change what the Host or DSH considers to exist.
|
|
9
|
+
*/
|
|
10
|
+
export declare const ACTIVITY_WINDOWS: readonly ["today", "last24h", "last7d", "all"];
|
|
11
|
+
export type ActivityWindowId = (typeof ACTIVITY_WINDOWS)[number];
|
|
12
|
+
/** Preserve the pre-filter tree for existing users and for a fresh profile. */
|
|
13
|
+
export declare const DEFAULT_ACTIVITY_WINDOW: ActivityWindowId;
|
|
14
|
+
export declare function isActivityWindowId(value: unknown): value is ActivityWindowId;
|
|
15
|
+
/** Guard persisted values before they scope a visible tree. */
|
|
16
|
+
export declare function effectiveActivityWindow(value: unknown): ActivityWindowId;
|
|
17
|
+
/** The selector shows every range until the user narrows it. */
|
|
18
|
+
export declare const DEFAULT_ACTIVITY_WINDOWS: readonly ActivityWindowId[];
|
|
19
|
+
/**
|
|
20
|
+
* Guard the persisted visible-range list: unknown and duplicate entries are
|
|
21
|
+
* dropped, the canonical selector order is restored, and an empty result falls
|
|
22
|
+
* back to every range so the selector can never become unreachable.
|
|
23
|
+
*/
|
|
24
|
+
export declare function effectiveActivityWindows(value: unknown): readonly ActivityWindowId[];
|
|
25
|
+
/**
|
|
26
|
+
* Apply one visibility checkbox without producing an empty selector.
|
|
27
|
+
* Re-showing a range inserts it back into the canonical order.
|
|
28
|
+
*/
|
|
29
|
+
export declare function toggleActivityWindow(current: readonly ActivityWindowId[], window: ActivityWindowId, visible: boolean): readonly ActivityWindowId[];
|
|
30
|
+
/**
|
|
31
|
+
* Pick the tab that takes over when the selected range is hidden: the next
|
|
32
|
+
* visible range in selector order, wrapping to the first one at the end.
|
|
33
|
+
*/
|
|
34
|
+
export declare function nextActivityWindow(hidden: ActivityWindowId, visible: readonly ActivityWindowId[]): ActivityWindowId;
|
|
35
|
+
/** Local calendar-day start: DSH presents Session times in the local time zone. */
|
|
36
|
+
export declare function startOfLocalDay(now: number): number;
|
|
37
|
+
/** Inclusive lower bound in epoch milliseconds; `undefined` disables filtering. */
|
|
38
|
+
export declare function activityWindowSince(window: ActivityWindowId, now: number): number | undefined;
|
|
39
|
+
/** Native facts one activity decision needs. */
|
|
40
|
+
export interface ActivitySessionScope {
|
|
41
|
+
readonly sessions: Pick<SessionListLike, 'byId'>;
|
|
42
|
+
readonly sessionPresentations: Readonly<Record<string, SessionPresentation | undefined>>;
|
|
43
|
+
/** The selected Session stays visible in every window; navigation must not hide it. */
|
|
44
|
+
readonly currentSessionId?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A Session is active in a window when it runs now, waits for interaction, or
|
|
48
|
+
* was updated inside the window. Running and pending Sessions count even with
|
|
49
|
+
* an old `updatedAt`, because they are active now.
|
|
50
|
+
*/
|
|
51
|
+
export declare function isSessionActiveInWindow(sessionId: string, window: ActivityWindowId, now: number, scope: ActivitySessionScope): boolean;
|
|
52
|
+
/** Filter a group without mutating its source order. */
|
|
53
|
+
export declare function filterSessionIdsByActivity(sessionIds: readonly string[], window: ActivityWindowId, now: number, scope: ActivitySessionScope): readonly string[];
|
|
54
|
+
/** Session scope the tree and the range selector both count. */
|
|
55
|
+
export declare function activityCandidateSessionIds(source: Pick<SessionListLike, 'ids' | 'byId'>, archivedSessionIds: readonly string[]): readonly string[];
|
|
56
|
+
/** Count the Sessions a window would show; used for the range selector labels. */
|
|
57
|
+
export declare function countSessionsInWindow(candidateSessionIds: readonly string[], window: ActivityWindowId, now: number, scope: ActivitySessionScope): number;
|
|
58
|
+
/** Read face the tree components consume; produced by `useActivityFilter`. */
|
|
59
|
+
export interface ActivityFilterView {
|
|
60
|
+
readonly window: ActivityWindowId;
|
|
61
|
+
/** Whether a bounded window is active, i.e. rows may be hidden. */
|
|
62
|
+
readonly active: boolean;
|
|
63
|
+
readonly now: number;
|
|
64
|
+
readonly setWindow: (window: ActivityWindowId) => void;
|
|
65
|
+
/** Ranges the selector shows, in canonical order; never empty. */
|
|
66
|
+
readonly visibleWindows: readonly ActivityWindowId[];
|
|
67
|
+
readonly isWindowVisible: (window: ActivityWindowId) => boolean;
|
|
68
|
+
/** Show or hide one selector tab; hiding the last tab is ignored. */
|
|
69
|
+
readonly setWindowVisible: (window: ActivityWindowId, visible: boolean) => void;
|
|
70
|
+
/**
|
|
71
|
+
* Keep Workspaces/Worktrees with no Session in the range. Defaults to true;
|
|
72
|
+
* users can turn it off to scope structure to the activity range.
|
|
73
|
+
*/
|
|
74
|
+
readonly showInactiveStructure: boolean;
|
|
75
|
+
readonly setShowInactiveStructure: (show: boolean) => void;
|
|
76
|
+
/** Ephemeral dropdown state for the visible-range checkboxes. */
|
|
77
|
+
readonly menuOpen: boolean;
|
|
78
|
+
readonly setMenuOpen: (open: boolean) => void;
|
|
79
|
+
readonly isActive: (sessionId: string) => boolean;
|
|
80
|
+
/** Narrow a list to the range; `all` returns the input unchanged. */
|
|
81
|
+
readonly scopeSessionIds: (sessionIds: readonly string[]) => readonly string[];
|
|
82
|
+
/** Whether any candidate Session survives this window. */
|
|
83
|
+
readonly hasActiveSession: (sessionIds: readonly string[]) => boolean;
|
|
84
|
+
readonly count: (window: ActivityWindowId) => number;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=activity-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-filter.d.ts","sourceRoot":"","sources":["../../../src/client/view/activity-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEvF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,gDAAiD,CAAC;AAE/E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,EAAE,gBAAwB,CAAC;AAI/D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,+DAA+D;AAC/D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAExE;AAED,gEAAgE;AAChE,eAAO,MAAM,wBAAwB,EAAE,SAAS,gBAAgB,EAAqB,CAAC;AAEtF;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,gBAAgB,EAAE,CAKpF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,OAAO,GACf,SAAS,gBAAgB,EAAE,CAQ7B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,gBAAgB,CAOlB;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAYpB;AAED,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC;IACzF,uFAAuF;IACvF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAQD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAUT;AAED,wDAAwD;AACxD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,oBAAoB,GAC1B,SAAS,MAAM,EAAE,CAGnB;AAED,gEAAgE;AAChE,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,MAAM,CAAC,EAC7C,kBAAkB,EAAE,SAAS,MAAM,EAAE,GACpC,SAAS,MAAM,EAAE,CAKnB;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,SAAS,MAAM,EAAE,EACtC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,oBAAoB,GAC1B,MAAM,CAER;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACvD,kEAAkE;IAClE,QAAQ,CAAC,cAAc,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrD,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAChE,qEAAqE;IACrE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChF;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,CAAC;IAC/E,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,EAAE,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC;IACtE,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,MAAM,CAAC;CACtD"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-only activity window that scopes the Worktree tree.
|
|
3
|
+
*
|
|
4
|
+
* The filter is a presentation projection over native Session facts
|
|
5
|
+
* (`updatedAt`, running state and pending interaction). It never adds an RPC,
|
|
6
|
+
* never reads Git, and never writes a Sidecar field: hiding a row must not
|
|
7
|
+
* change what the Host or DSH considers to exist.
|
|
8
|
+
*/
|
|
9
|
+
export const ACTIVITY_WINDOWS = ['today', 'last24h', 'last7d', 'all'];
|
|
10
|
+
/** Preserve the pre-filter tree for existing users and for a fresh profile. */
|
|
11
|
+
export const DEFAULT_ACTIVITY_WINDOW = 'all';
|
|
12
|
+
const DAY_MS = 86_400_000;
|
|
13
|
+
export function isActivityWindowId(value) {
|
|
14
|
+
return typeof value === 'string' && ACTIVITY_WINDOWS.includes(value);
|
|
15
|
+
}
|
|
16
|
+
/** Guard persisted values before they scope a visible tree. */
|
|
17
|
+
export function effectiveActivityWindow(value) {
|
|
18
|
+
return isActivityWindowId(value) ? value : DEFAULT_ACTIVITY_WINDOW;
|
|
19
|
+
}
|
|
20
|
+
/** The selector shows every range until the user narrows it. */
|
|
21
|
+
export const DEFAULT_ACTIVITY_WINDOWS = ACTIVITY_WINDOWS;
|
|
22
|
+
/**
|
|
23
|
+
* Guard the persisted visible-range list: unknown and duplicate entries are
|
|
24
|
+
* dropped, the canonical selector order is restored, and an empty result falls
|
|
25
|
+
* back to every range so the selector can never become unreachable.
|
|
26
|
+
*/
|
|
27
|
+
export function effectiveActivityWindows(value) {
|
|
28
|
+
const values = Array.isArray(value) ? value.filter(isActivityWindowId) : [];
|
|
29
|
+
const selected = new Set(values);
|
|
30
|
+
const visible = ACTIVITY_WINDOWS.filter((window) => selected.has(window));
|
|
31
|
+
return visible.length > 0 ? visible : DEFAULT_ACTIVITY_WINDOWS;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Apply one visibility checkbox without producing an empty selector.
|
|
35
|
+
* Re-showing a range inserts it back into the canonical order.
|
|
36
|
+
*/
|
|
37
|
+
export function toggleActivityWindow(current, window, visible) {
|
|
38
|
+
const enabled = new Set(current);
|
|
39
|
+
const wasVisible = enabled.has(window);
|
|
40
|
+
if (visible === wasVisible)
|
|
41
|
+
return current;
|
|
42
|
+
if (visible)
|
|
43
|
+
enabled.add(window);
|
|
44
|
+
else
|
|
45
|
+
enabled.delete(window);
|
|
46
|
+
if (enabled.size === 0)
|
|
47
|
+
return current;
|
|
48
|
+
return ACTIVITY_WINDOWS.filter((candidate) => enabled.has(candidate));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Pick the tab that takes over when the selected range is hidden: the next
|
|
52
|
+
* visible range in selector order, wrapping to the first one at the end.
|
|
53
|
+
*/
|
|
54
|
+
export function nextActivityWindow(hidden, visible) {
|
|
55
|
+
const start = ACTIVITY_WINDOWS.indexOf(hidden);
|
|
56
|
+
for (let step = 1; step <= ACTIVITY_WINDOWS.length; step += 1) {
|
|
57
|
+
const candidate = ACTIVITY_WINDOWS[(start + step) % ACTIVITY_WINDOWS.length];
|
|
58
|
+
if (candidate !== undefined && visible.includes(candidate))
|
|
59
|
+
return candidate;
|
|
60
|
+
}
|
|
61
|
+
return visible[0] ?? DEFAULT_ACTIVITY_WINDOW;
|
|
62
|
+
}
|
|
63
|
+
/** Local calendar-day start: DSH presents Session times in the local time zone. */
|
|
64
|
+
export function startOfLocalDay(now) {
|
|
65
|
+
const date = new Date(now);
|
|
66
|
+
date.setHours(0, 0, 0, 0);
|
|
67
|
+
return date.getTime();
|
|
68
|
+
}
|
|
69
|
+
/** Inclusive lower bound in epoch milliseconds; `undefined` disables filtering. */
|
|
70
|
+
export function activityWindowSince(window, now) {
|
|
71
|
+
if (!Number.isFinite(now))
|
|
72
|
+
return undefined;
|
|
73
|
+
switch (window) {
|
|
74
|
+
case 'today':
|
|
75
|
+
return startOfLocalDay(now);
|
|
76
|
+
case 'last24h':
|
|
77
|
+
return now - DAY_MS;
|
|
78
|
+
case 'last7d':
|
|
79
|
+
return now - 7 * DAY_MS;
|
|
80
|
+
case 'all':
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function lastActivityAt(sessionId, scope) {
|
|
85
|
+
const updatedAt = scope.sessionPresentations[sessionId]?.updatedAt ?? scope.sessions.byId[sessionId]?.updatedAt;
|
|
86
|
+
return updatedAt !== undefined && Number.isFinite(updatedAt) ? updatedAt : undefined;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* A Session is active in a window when it runs now, waits for interaction, or
|
|
90
|
+
* was updated inside the window. Running and pending Sessions count even with
|
|
91
|
+
* an old `updatedAt`, because they are active now.
|
|
92
|
+
*/
|
|
93
|
+
export function isSessionActiveInWindow(sessionId, window, now, scope) {
|
|
94
|
+
const since = activityWindowSince(window, now);
|
|
95
|
+
if (since === undefined)
|
|
96
|
+
return true;
|
|
97
|
+
if (scope.currentSessionId === sessionId)
|
|
98
|
+
return true;
|
|
99
|
+
const presentation = scope.sessionPresentations[sessionId];
|
|
100
|
+
if (presentation !== undefined && (presentation.ongoing || presentation.status.state === 'warning')) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
const at = lastActivityAt(sessionId, scope);
|
|
104
|
+
return at !== undefined && at >= since;
|
|
105
|
+
}
|
|
106
|
+
/** Filter a group without mutating its source order. */
|
|
107
|
+
export function filterSessionIdsByActivity(sessionIds, window, now, scope) {
|
|
108
|
+
if (window === 'all')
|
|
109
|
+
return sessionIds;
|
|
110
|
+
return sessionIds.filter((sessionId) => isSessionActiveInWindow(sessionId, window, now, scope));
|
|
111
|
+
}
|
|
112
|
+
/** Session scope the tree and the range selector both count. */
|
|
113
|
+
export function activityCandidateSessionIds(source, archivedSessionIds) {
|
|
114
|
+
const excluded = new Set(archivedSessionIds);
|
|
115
|
+
return source.ids.filter((sessionId) => !excluded.has(sessionId) && source.byId[sessionId]?.blank !== true);
|
|
116
|
+
}
|
|
117
|
+
/** Count the Sessions a window would show; used for the range selector labels. */
|
|
118
|
+
export function countSessionsInWindow(candidateSessionIds, window, now, scope) {
|
|
119
|
+
return filterSessionIdsByActivity(candidateSessionIds, window, now, scope).length;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=activity-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-filter.js","sourceRoot":"","sources":["../../../src/client/view/activity-filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-mode-store.d.ts","sourceRoot":"","sources":["../../../src/client/view/view-mode-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"view-mode-store.d.ts","sourceRoot":"","sources":["../../../src/client/view/view-mode-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAUpF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,sFAAsF;AACtF,wBAAgB,uBAAuB,IAAI,iBAAiB,CAC1D,iBAAiB,EACjB,mBAAmB,CACpB,CAoCA"}
|
|
@@ -1,14 +1,39 @@
|
|
|
1
1
|
import { defineStore } from '@deepseek-ai/dsh-client-store';
|
|
2
|
+
import { DEFAULT_ACTIVITY_WINDOW, DEFAULT_ACTIVITY_WINDOWS, effectiveActivityWindow, effectiveActivityWindows, nextActivityWindow, toggleActivityWindow, } from './activity-filter.js';
|
|
2
3
|
import { WORKTREE_VIEW_MODE_STORAGE_KEY, } from './view-mode.js';
|
|
3
4
|
/** Create one root-scoped, browser-local view-mode store for the two slot entries. */
|
|
4
5
|
export function createWorktreeViewStore() {
|
|
5
6
|
return defineStore({
|
|
6
|
-
init: () => ({
|
|
7
|
+
init: () => ({
|
|
8
|
+
viewMode: 'workspace-session',
|
|
9
|
+
activityWindow: DEFAULT_ACTIVITY_WINDOW,
|
|
10
|
+
activityWindows: [...DEFAULT_ACTIVITY_WINDOWS],
|
|
11
|
+
showInactiveStructure: true,
|
|
12
|
+
}),
|
|
7
13
|
persist: WORKTREE_VIEW_MODE_STORAGE_KEY,
|
|
8
14
|
actions: {
|
|
9
15
|
setViewMode: (draft, mode) => {
|
|
10
16
|
draft.viewMode = mode;
|
|
11
17
|
},
|
|
18
|
+
setActivityWindow: (draft, window) => {
|
|
19
|
+
// Normalize an older persisted payload that predates the visible set.
|
|
20
|
+
draft.activityWindows = effectiveActivityWindows(draft.activityWindows);
|
|
21
|
+
draft.activityWindow = window;
|
|
22
|
+
},
|
|
23
|
+
setShowInactiveStructure: (draft, show) => {
|
|
24
|
+
draft.showInactiveStructure = show === true;
|
|
25
|
+
},
|
|
26
|
+
setActivityWindowVisible: (draft, window, visible) => {
|
|
27
|
+
const current = effectiveActivityWindows(draft.activityWindows);
|
|
28
|
+
const next = toggleActivityWindow(current, window, visible);
|
|
29
|
+
if (next === current)
|
|
30
|
+
return;
|
|
31
|
+
draft.activityWindows = next;
|
|
32
|
+
// Hiding the selected tab hands the selection to the next visible tab.
|
|
33
|
+
const selected = effectiveActivityWindow(draft.activityWindow);
|
|
34
|
+
if (!next.includes(selected))
|
|
35
|
+
draft.activityWindow = nextActivityWindow(selected, next);
|
|
36
|
+
},
|
|
12
37
|
},
|
|
13
38
|
});
|
|
14
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-mode-store.js","sourceRoot":"","sources":["../../../src/client/view/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,
|
|
1
|
+
{"version":3,"file":"view-mode-store.js","sourceRoot":"","sources":["../../../src/client/view/view-mode-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0B,MAAM,+BAA+B,CAAC;AACpF,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAC9B,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;YAC9B,QAAQ,EAAE,mBAAmB;YAC7B,cAAc,EAAE,uBAAuB;YACvC,eAAe,EAAE,CAAC,GAAG,wBAAwB,CAAC;YAC9C,qBAAqB,EAAE,IAAI;SAC5B,CAAC;QACF,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE;YACP,WAAW,EAAE,CAAC,KAAK,EAAE,IAAmC,EAAE,EAAE;gBAC1D,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAwB,EAAE,EAAE;gBACrD,sEAAsE;gBACtE,KAAK,CAAC,eAAe,GAAG,wBAAwB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBACxE,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;YAChC,CAAC;YACD,wBAAwB,EAAE,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;gBACjD,KAAK,CAAC,qBAAqB,GAAG,IAAI,KAAK,IAAI,CAAC;YAC9C,CAAC;YACD,wBAAwB,EAAE,CACxB,KAAK,EACL,MAAwB,EACxB,OAAgB,EAChB,EAAE;gBACF,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC5D,IAAI,IAAI,KAAK,OAAO;oBAAE,OAAO;gBAC7B,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC7B,uEAAuE;gBACvE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC/D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAAE,KAAK,CAAC,cAAc,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC1F,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
import type { ActionsDecl } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
+
import type { ActivityWindowId } from './activity-filter.js';
|
|
2
3
|
/** Peer navigation modes owned by this browser Consumer. */
|
|
3
4
|
export type WorktreeViewMode = 'workspace-session' | 'worktree';
|
|
4
5
|
/** Browser-local storage key; it is never sent to DSH or the sidecar. */
|
|
5
6
|
export declare const WORKTREE_VIEW_MODE_STORAGE_KEY = "clutch-dsh-worktree.view-mode";
|
|
6
|
-
/**
|
|
7
|
+
/** Durable Client preferences: the peer mode plus its activity range. */
|
|
7
8
|
export interface WorktreeViewState {
|
|
8
9
|
viewMode: WorktreeViewMode;
|
|
10
|
+
/** Bounded activity window; guard persisted values with `effectiveActivityWindow`. */
|
|
11
|
+
activityWindow: ActivityWindowId;
|
|
12
|
+
/**
|
|
13
|
+
* Ranges the selector shows, in canonical order; guard persisted values with
|
|
14
|
+
* `effectiveActivityWindows`. The list is never empty.
|
|
15
|
+
*/
|
|
16
|
+
activityWindows: readonly ActivityWindowId[];
|
|
17
|
+
/**
|
|
18
|
+
* Keep Workspaces and Worktrees whose Sessions are all outside the selected
|
|
19
|
+
* range. Defaults to true so structure and management actions stay visible;
|
|
20
|
+
* an explicit false scopes the structure to the activity range.
|
|
21
|
+
*/
|
|
22
|
+
showInactiveStructure: boolean;
|
|
9
23
|
}
|
|
10
24
|
/** A browser-local Worktree → DSH Workspace membership projection. */
|
|
11
25
|
export interface VirtualWorkspaceBinding {
|
|
@@ -15,6 +29,9 @@ export interface VirtualWorkspaceBinding {
|
|
|
15
29
|
/** The complete mutation face for the view-mode store. */
|
|
16
30
|
export type WorktreeViewActions = ActionsDecl<WorktreeViewState> & {
|
|
17
31
|
setViewMode: (draft: WorktreeViewState, mode: WorktreeViewMode) => void;
|
|
32
|
+
setActivityWindow: (draft: WorktreeViewState, window: ActivityWindowId) => void;
|
|
33
|
+
setShowInactiveStructure: (draft: WorktreeViewState, show: boolean) => void;
|
|
34
|
+
setActivityWindowVisible: (draft: WorktreeViewState, window: ActivityWindowId, visible: boolean) => void;
|
|
18
35
|
};
|
|
19
36
|
/** Guard persisted values before they become a visible mode. */
|
|
20
37
|
export declare function isWorktreeViewMode(value: unknown): value is WorktreeViewMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-mode.d.ts","sourceRoot":"","sources":["../../../src/client/view/view-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"view-mode.d.ts","sourceRoot":"","sources":["../../../src/client/view/view-mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-mode.js","sourceRoot":"","sources":["../../../src/client/view/view-mode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"view-mode.js","sourceRoot":"","sources":["../../../src/client/view/view-mode.ts"],"names":[],"mappings":"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"}
|