@cerbur/clutch-dsh-worktree 0.1.19 → 0.1.21

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 (61) hide show
  1. package/README.md +32 -0
  2. package/README.zh.md +23 -0
  3. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  4. package/lib/client/WorktreeSurface.js +4 -2
  5. package/lib/client/WorktreeSurface.js.map +1 -1
  6. package/lib/client/dashboard/BatchManageWorktrees.d.ts +12 -0
  7. package/lib/client/dashboard/BatchManageWorktrees.d.ts.map +1 -0
  8. package/lib/client/dashboard/BatchManageWorktrees.js +77 -0
  9. package/lib/client/dashboard/BatchManageWorktrees.js.map +1 -0
  10. package/lib/client/dashboard/WorktreeDashboard.d.ts +3 -1
  11. package/lib/client/dashboard/WorktreeDashboard.d.ts.map +1 -1
  12. package/lib/client/dashboard/WorktreeDashboard.js +14 -10
  13. package/lib/client/dashboard/WorktreeDashboard.js.map +1 -1
  14. package/lib/client/dashboard/batch-manage.d.ts +12 -0
  15. package/lib/client/dashboard/batch-manage.d.ts.map +1 -0
  16. package/lib/client/dashboard/batch-manage.js +34 -0
  17. package/lib/client/dashboard/batch-manage.js.map +1 -0
  18. package/lib/client/entry.d.ts.map +1 -1
  19. package/lib/client/entry.js +6 -8
  20. package/lib/client/entry.js.map +1 -1
  21. package/lib/client/locales.d.ts +48 -0
  22. package/lib/client/locales.d.ts.map +1 -1
  23. package/lib/client/locales.js +48 -0
  24. package/lib/client/locales.js.map +1 -1
  25. package/lib/client/session/active-sessions.d.ts +21 -0
  26. package/lib/client/session/active-sessions.d.ts.map +1 -0
  27. package/lib/client/session/active-sessions.js +61 -0
  28. package/lib/client/session/active-sessions.js.map +1 -0
  29. package/lib/client/surface/actions/useDashboardBatchManage.d.ts +9 -0
  30. package/lib/client/surface/actions/useDashboardBatchManage.d.ts.map +1 -0
  31. package/lib/client/surface/actions/useDashboardBatchManage.js +105 -0
  32. package/lib/client/surface/actions/useDashboardBatchManage.js.map +1 -0
  33. package/lib/client/surface/actions/useLifecycleActions.d.ts +3 -3
  34. package/lib/client/surface/actions/useLifecycleActions.d.ts.map +1 -1
  35. package/lib/client/surface/actions/useLifecycleActions.js +11 -11
  36. package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
  37. package/lib/client/surface/components/SessionActivityBell.d.ts +14 -0
  38. package/lib/client/surface/components/SessionActivityBell.d.ts.map +1 -0
  39. package/lib/client/surface/components/SessionActivityBell.js +92 -0
  40. package/lib/client/surface/components/SessionActivityBell.js.map +1 -0
  41. package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
  42. package/lib/client/surface/components/SurfaceContent.js +9 -7
  43. package/lib/client/surface/components/SurfaceContent.js.map +1 -1
  44. package/lib/client/surface/components/SurfaceHeader.d.ts +3 -2
  45. package/lib/client/surface/components/SurfaceHeader.d.ts.map +1 -1
  46. package/lib/client/surface/components/SurfaceHeader.js +4 -2
  47. package/lib/client/surface/components/SurfaceHeader.js.map +1 -1
  48. package/lib/client/surface/shared.d.ts +2 -2
  49. package/lib/client/surface/shared.d.ts.map +1 -1
  50. package/lib/client/surface/shared.js +1 -1
  51. package/lib/client/surface/shared.js.map +1 -1
  52. package/lib/client/surface/state/useLifecycleState.d.ts +1 -1
  53. package/lib/client/surface/state/useLifecycleState.d.ts.map +1 -1
  54. package/lib/client/surface/state/useLifecycleState.js +3 -3
  55. package/lib/client/surface/state/useLifecycleState.js.map +1 -1
  56. package/lib/client/surface/state/useSurfaceSources.d.ts +1 -1
  57. package/lib/client/surface/types.d.ts +1 -1
  58. package/lib/client/surface/types.d.ts.map +1 -1
  59. package/lib/client.js +754 -74
  60. package/lib/client.js.map +1 -1
  61. package/package.json +1 -1
package/README.md CHANGED
@@ -128,6 +128,23 @@ visible rather than covering its controls. It retries when the layout changes.
128
128
  Worktree navigation and Dashboard support AppFrame layouts with extra titlebar or shell controls
129
129
  before, between, or after the native columns, while keeping those controls accessible.
130
130
 
131
+ ### Active sessions
132
+
133
+ The bell between Search and Collapse All opens a compact list of running Sessions, Sessions
134
+ waiting for interaction, and unread completions across Workspaces. A blue dot marks a nonempty
135
+ list; otherwise it shows **No active sessions**. Search, collapsed groups, and the five-row tree
136
+ limit do not filter this list. Blank and archived Sessions are excluded.
137
+
138
+ Each entry shows its Session name, Workspace, and Worktree (or Local), with the native Session
139
+ status indicator and time on the right. Select an entry to open it; DSH clears its unread
140
+ completion through normal navigation. Opening the bell alone does not mark anything read.
141
+ Click outside or press Escape to close. The panel also closes if the Sidebar collapses or its
142
+ layout becomes unavailable; reopen it with the bell after the Sidebar recovers.
143
+ Running duration updates while the panel is open;
144
+ observed stops show time since completion. Before this Client observes a transition, time uses
145
+ the same native Session activity timestamp as Session rows, since DSH exposes no start/stop
146
+ timestamp. Display clocks are temporary and reset on Client reload.
147
+
131
148
  ### Create a Worktree
132
149
 
133
150
  You can also enable Agent tools with `/cluworktree`; see the next section.
@@ -421,6 +438,21 @@ Quick Actions offers baseline synchronization and archive. VS Code must be
421
438
  installed on the browser's machine and able to access the recorded path; the link does not verify
422
439
  launch success.
423
440
 
441
+ Local/Main Dashboard adds **Manage Worktrees** after **Settings**. Rows use the same branch icons,
442
+ paths, and availability badges as Derived Worktrees; archived records have a separate badge and
443
+ the heading shows the total. Select individual records or all Worktrees in this Workspace,
444
+ including archived and cleaned records, then archive, clean up
445
+ disk, or remove them from management. Confirmation lists the selected paths; disk cleanup also
446
+ requires confirming that all tasks using them have stopped. Buttons show eligible target counts;
447
+ confirmation includes only those targets, while ineligible items stay selected. Archive before
448
+ cleanup or removal from management. Results appear per Worktree; successful items are deselected and failures
449
+ remain selected for explicit retry. Main itself is never a batch target.
450
+ Permission recovery failures after disk cleanup remain separate for each Workspace/Worktree in
451
+ **Settings → Worktree → Errors & recovery**, with an independent Retry action. Retry restores
452
+ permissions only; it never repeats disk cleanup. Another target's success does not clear the failure.
453
+ Closing Dashboard stops remaining queued items; the submitted item's follow-up still completes
454
+ while the Worktree view remains active.
455
+
424
456
  **Derived Worktrees** shows managed Worktrees in the same Workspace whose saved baseline matches
425
457
  this checkout's current local branch. Overview previews five entries; the tab shows all matches,
426
458
  including archived entries with their availability and paths. Click an entry to open its Dashboard.
package/README.zh.md CHANGED
@@ -118,6 +118,19 @@ Web 的 Worktree 导航从原生 DSH 品牌栏下方开始,保留可见且可
118
118
  Worktree 导航与 Dashboard 支持在原生栏目之前、之间或之后插入额外标题栏或壳层控件的 AppFrame
119
119
  布局,并保持这些控件可用。
120
120
 
121
+ ### 活跃会话
122
+
123
+ 搜索与全部折叠之间的铃铛可展开跨 Workspace 的活跃列表,包含运行中、等待交互以及完成未读的
124
+ Session。列表非空时显示蓝色提醒圆点;空列表显示**无活跃会话**。搜索、分组折叠和树中五行
125
+ 展示限制不会过滤此列表。空白和已归档 Session 不列入。
126
+
127
+ 每项依次展示 Session 名称、Workspace、Worktree(或本地),右侧显示原生 Session 状态指示器
128
+ 和时间。点击条目打开会话,由 DSH 的正常导航清除完成未读;仅打开铃铛不会标记已读。
129
+ 点击外部或按 Escape 关闭。Sidebar 收起或布局不可用时也会关闭浮窗;Sidebar 恢复后需再次点击铃铛打开。
130
+ 浮窗打开时更新运行时长;观察到停止后显示完成于多久前。
131
+ 当前 Client 尚未观察到状态切换时,沿用 Session 行使用的原生活动时间作为基线,因为 DSH
132
+ 没有暴露开始/停止时间戳。显示计时仅临时保留,重新加载 Client 后重置。
133
+
121
134
  ### 创建 Worktree
122
135
 
123
136
  也可以通过 `/cluworktree` 启用 Agent 工具,见下一节。
@@ -370,6 +383,16 @@ Worktree 中,右上角操作会变为 **New Session**,直接在该 Worktree
370
383
  中打开记录的目录以及查看 Git 与变更。快捷操作提供同步基线与归档。VS Code
371
384
  必须安装在浏览器所在机器上且能够访问记录的路径;链接不会验证应用是否成功启动。
372
385
 
386
+ Local/Main Dashboard 在**设置**后提供**管理 worktree**页签。列表沿用派生 Worktree 的分支图标、
387
+ 路径和可用状态徽标,已归档记录另有归档徽标,标题旁显示总数。可以逐项选择或全选当前 Workspace 的
388
+ Worktree(含已归档和已清理记录),批量归档、清理磁盘或移出管理。确认弹窗列出选中路径;清理磁盘还需
389
+ 确认所有使用这些目录的任务均已停止。按钮显示可操作数量,确认弹窗仅包含适用目标,不适用项保留选择。
390
+ 清理或移出管理前需先归档。结果逐项显示,成功项
391
+ 取消选择,失败项保留选择供显式重试。Main 本身不会成为批量操作目标。
392
+ 磁盘清理后的权限恢复失败按 Workspace/Worktree 分别保留在**设置 → Worktree → 报错与修复**中,
393
+ 每项提供独立的重试入口。重试只恢复权限,不会再次清理磁盘;其他目标成功不会清除该项失败。
394
+ 关闭 Dashboard 会停止剩余排队项;只要 Worktree 视图仍有效,已提交项的后续处理仍会完成。
395
+
373
396
  **派生 Worktree** 显示同一 Workspace 中,已保存基线匹配当前 checkout 本地分支的受管理 Worktree。
374
397
  概览预览前五项,页签显示全部匹配项,包括带有可用状态和路径的已归档条目;点击条目可打开其 Dashboard。
375
398
  修改已保存基线会更新关系;此视图表示直接基线匹配,不代表 Git 祖先关系或委派 Session 历史。
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeSurface.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAsB/D,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACxF,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,UAAU,EAAE,oBAAoB,sCAohB/D"}
1
+ {"version":3,"file":"WorktreeSurface.d.ts","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAsB/D,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACxF,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,UAAU,EAAE,oBAAoB,sCAuhB/D"}
@@ -8,6 +8,7 @@ import { NotificationProvider } from './surface/components/NotificationToasts.js
8
8
  import { SurfaceHeader } from './surface/components/SurfaceHeader.js';
9
9
  import { useDragActions } from './surface/actions/useDragActions.js';
10
10
  import { useLifecycleActions } from './surface/actions/useLifecycleActions.js';
11
+ import { useDashboardBatchManage } from './surface/actions/useDashboardBatchManage.js';
11
12
  import { useLifecycleState } from './surface/state/useLifecycleState.js';
12
13
  import { useNativeActions } from './surface/actions/useNativeActions.js';
13
14
  import { useRegistrationState } from './surface/state/useRegistrationState.js';
@@ -186,6 +187,7 @@ export function WorktreeSurface(inputProps) {
186
187
  session,
187
188
  });
188
189
  const lifecycle = useLifecycleActions({ read, lifecycleState, source, props, mutation });
190
+ const manageDashboardWorktree = useDashboardBatchManage({ props, read, mutation, expansion, session, lifecycleState, lifecycle, reader: props.viewReader });
189
191
  const dashboardWorkspace = source.workspaces.items.find((workspace) => workspace.workspaceId === dashboardRecord?.workspaceId);
190
192
  const dashboardView = dashboardRecord === undefined
191
193
  ? undefined
@@ -253,7 +255,7 @@ export function WorktreeSurface(inputProps) {
253
255
  ...(bounds.ready
254
256
  ? { top: `${bounds.top}px`, height: `${bounds.height}px` }
255
257
  : { height: '0px', visibility: 'hidden' }),
256
- }, children: [_jsxs("div", { className: styles.wideContent, children: [_jsx(SurfaceHeader, { expansion: expansion, props: props, source: source, read: read, mutation: mutation }), _jsx(SurfaceContent, { source: source, props: props, lifecycle: lifecycle, mutation: mutation, session: session, read: read, expansion: expansion, ordering: ordering, drag: drag, menus: menus, registration: registration, native: native, lifecycleState: lifecycleState })] }), _jsx(NativeDialogs, { props: props, native: native }), _jsx(RegistrationDialog, { props: props, registration: registration, registrationState: registrationState, mutation: mutation, read: read }), _jsx(LifecycleDialogs, { props: props, lifecycleState: lifecycleState, mutation: mutation, lifecycle: lifecycle, expansion: expansion, read: read, session: session }), _jsx(AccessConfirmation, { source: source, props: props })] }), dashboard !== undefined &&
258
+ }, children: [_jsxs("div", { className: styles.wideContent, children: [_jsx(SurfaceHeader, { onOpenSession: session.openWorkspaceSession, expansion: expansion, props: props, source: source, read: read, mutation: mutation }), _jsx(SurfaceContent, { source: source, props: props, lifecycle: lifecycle, mutation: mutation, session: session, read: read, expansion: expansion, ordering: ordering, drag: drag, menus: menus, registration: registration, native: native, lifecycleState: lifecycleState })] }), _jsx(NativeDialogs, { props: props, native: native }), _jsx(RegistrationDialog, { props: props, registration: registration, registrationState: registrationState, mutation: mutation, read: read }), _jsx(LifecycleDialogs, { props: props, lifecycleState: lifecycleState, mutation: mutation, lifecycle: lifecycle, expansion: expansion, read: read, session: session }), _jsx(AccessConfirmation, { source: source, props: props })] }), dashboard !== undefined &&
257
259
  dashboardRecord === undefined &&
258
260
  dashboard.sessionId === source.currentSessionId &&
259
261
  source.workspaceIds.includes(dashboard.workspaceId) &&
@@ -265,7 +267,7 @@ export function WorktreeSurface(inputProps) {
265
267
  scope: { kind: 'workspace', workspaceId: dashboard.workspaceId },
266
268
  preserveCurrent: true,
267
269
  });
268
- } })), dashboardRecord !== undefined && (_jsx(WorktreeDashboard, { manager: props.manager, record: dashboardRecord, worktrees: dashboardView?.worktrees ?? [], mainRecord: dashboardMainRecord, onOpenWorktree: openDashboard, onSaveInstructions: props.manager
270
+ } })), dashboardRecord !== undefined && (_jsx(WorktreeDashboard, { manager: props.manager, record: dashboardRecord, worktrees: dashboardView?.worktrees ?? [], mainRecord: dashboardMainRecord, onOpenWorktree: openDashboard, onManageWorktree: props.manager === undefined ? undefined : manageDashboardWorktree, onSaveInstructions: props.manager
269
271
  ? async (instructions, expectedInstructions) => {
270
272
  try {
271
273
  return await props.manager.updateWorktreeInstructions({
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeSurface.js","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeSurface.js","sourceRoot":"","sources":["../../src/client/WorktreeSurface.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { WorktreeRecord } from '../../contract/index.js';
2
+ import type { WorktreeTranslate } from '../surface/types.js';
3
+ import { type BatchWorktreeAction } from './batch-manage.js';
4
+ export interface BatchManageWorktreesProps {
5
+ readonly workspaceId: string;
6
+ readonly worktrees: readonly WorktreeRecord[];
7
+ readonly t: WorktreeTranslate;
8
+ readonly actionPending: boolean;
9
+ readonly onManage?: (action: BatchWorktreeAction, record: WorktreeRecord, isCurrent: () => boolean) => Promise<void>;
10
+ }
11
+ export declare function BatchManageWorktrees({ workspaceId, worktrees, t, actionPending, onManage }: BatchManageWorktreesProps): import("react").JSX.Element;
12
+ //# sourceMappingURL=BatchManageWorktrees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchManageWorktrees.d.ts","sourceRoot":"","sources":["../../../src/client/dashboard/BatchManageWorktrees.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAuC,KAAK,mBAAmB,EAA4B,MAAM,mBAAmB,CAAC;AAI5H,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtH;AAED,wBAAgB,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,yBAAyB,+BAmHrH"}
@@ -0,0 +1,77 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { Button, Modal } from '@deepseek-ai/dsh-client-ui-primitives';
4
+ import { formatWorktreeViewError } from '../view/worktree-error-copy.js';
5
+ import { NotificationToasts } from '../surface/components/NotificationToasts.js';
6
+ import { IconBranchOutline16 } from '../dsh-icons.js';
7
+ import { canManageWorktree, runWorktreeBatch } from './batch-manage.js';
8
+ import styles from './dashboard.css';
9
+ import { isMainWorktreeId } from './dashboard-selection.js';
10
+ export function BatchManageWorktrees({ workspaceId, worktrees, t, actionPending, onManage }) {
11
+ const rows = worktrees.filter((record) => record.workspaceId === workspaceId && !isMainWorktreeId(record.worktreeId));
12
+ const [selected, setSelected] = useState(new Set());
13
+ const [confirmation, setConfirmation] = useState();
14
+ const [results, setResults] = useState([]);
15
+ const [pending, setPending] = useState(false);
16
+ const [stopped, setStopped] = useState(false);
17
+ const busy = useRef(false);
18
+ const generation = useRef(0);
19
+ useEffect(() => {
20
+ generation.current++;
21
+ busy.current = false;
22
+ setPending(false);
23
+ setConfirmation(undefined);
24
+ setSelected(new Set());
25
+ setResults([]);
26
+ return () => { generation.current++; };
27
+ }, [workspaceId, onManage]);
28
+ const picked = rows.filter((record) => selected.has(record.worktreeId));
29
+ const disabled = pending || actionPending || onManage === undefined;
30
+ const allSelected = rows.length > 0 && picked.length === rows.length;
31
+ const close = () => { if (!busy.current)
32
+ setConfirmation(undefined); };
33
+ const submit = async () => {
34
+ if (busy.current || actionPending || !confirmation || !onManage ||
35
+ (confirmation.action === 'clean' && !stopped))
36
+ return;
37
+ busy.current = true;
38
+ setPending(true);
39
+ setResults([]);
40
+ const lifetime = generation.current;
41
+ const isCurrent = () => generation.current === lifetime;
42
+ try {
43
+ await runWorktreeBatch(confirmation.action, confirmation.records, onManage, isCurrent, (result) => {
44
+ setResults((current) => [...current, result]);
45
+ if (!result.error)
46
+ setSelected((current) => {
47
+ const next = new Set(current);
48
+ next.delete(result.record.worktreeId);
49
+ return next;
50
+ });
51
+ });
52
+ }
53
+ finally {
54
+ if (isCurrent()) {
55
+ busy.current = false;
56
+ setPending(false);
57
+ setConfirmation(undefined);
58
+ }
59
+ }
60
+ };
61
+ return _jsxs("section", { "data-dashboard-batch-manage": true, "aria-busy": pending, children: [_jsxs("div", { className: styles.dashboardCardHeading, children: [_jsx("h2", { children: t('dashboard.tab.manage') }), _jsx("span", { children: rows.length })] }), _jsx("p", { children: t('dashboard.manage.description') }), _jsxs("div", { className: styles.dashboardManageToolbar, children: [_jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: allSelected, disabled: disabled || rows.length === 0, "aria-label": t('dashboard.manage.selectAll'), onChange: () => setSelected(allSelected ? new Set() : new Set(rows.map((record) => record.worktreeId))) }), t('dashboard.manage.selectAll')] }), _jsx("span", { role: "status", children: t('dashboard.manage.selected', { count: picked.length }) }), ['archive', 'clean', 'forget'].map((action) => _jsxs(Button, { variant: "outline", "data-batch-action": action, disabled: disabled || !picked.some((record) => canManageWorktree(record, action)), onClick: () => { setStopped(false); setConfirmation({ action, records: picked.filter((record) => canManageWorktree(record, action)) }); }, children: [t(`dashboard.manage.${action}`), " (", picked.filter((record) => canManageWorktree(record, action)).length, ")"] }, action))] }), _jsx("p", { className: styles.dashboardManageHint, children: t('dashboard.manage.availability') }), rows.length === 0 ? _jsx("p", { children: t('dashboard.manage.empty') }) : _jsx("ul", { className: `${styles.dashboardSessions} ${styles.dashboardManageList}`, children: rows.map((record) => _jsx("li", { children: _jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: selected.has(record.worktreeId), disabled: disabled, "aria-label": record.branch + ' · ' + record.absolutePath, onChange: () => setSelected((current) => {
62
+ const next = new Set(current);
63
+ if (next.has(record.worktreeId))
64
+ next.delete(record.worktreeId);
65
+ else
66
+ next.add(record.worktreeId);
67
+ return next;
68
+ }) }), _jsx(IconBranchOutline16, {}), _jsxs("span", { className: styles.dashboardSessionLabel, children: [_jsx("strong", { children: record.currentHead?.name ?? record.currentBranch ?? record.branch }), _jsx("code", { className: styles.dashboardChildPath, children: record.absolutePath })] }), _jsxs("span", { className: styles.dashboardChildState, children: [record.status === 'removed' && _jsx("span", { className: styles.dashboardSoon, children: t('dashboard.archived') }), _jsx("span", { className: styles.dashboardHealth, "data-health": record.health ?? 'unknown', children: t(record.health === 'ready' ? 'worktree.ready' : record.health === 'repair' ? 'worktree.repair'
69
+ : record.health === 'recovery-needed' ? 'worktree.recovery' : record.health === 'branch-drift'
70
+ ? 'worktree.branchDrift' : record.health === 'cleaned' ? 'dashboard.cleaned' : 'dashboard.unknown') })] })] }) }, record.worktreeId)) }), _jsx("ul", { className: styles.dashboardManageResults, "aria-live": "polite", children: results.map(({ record, error }) => _jsxs("li", { "data-batch-result": error ? 'failed' : 'success', children: [_jsx("strong", { children: record.branch }), " \u00B7 ", record.absolutePath, " \u00B7 ", error
71
+ ? t('dashboard.manage.failed') + ' ' + formatWorktreeViewError(error, t)
72
+ : t('dashboard.manage.success')] }, record.worktreeId)) }), _jsx(NotificationToasts, { notices: results.flatMap(({ record, error }) => error ? [{
73
+ key: 'batch:' + record.worktreeId, error, context: record.branch + ' · ' + record.absolutePath,
74
+ text: formatWorktreeViewError(error, t), message: (translate) => formatWorktreeViewError(error, translate),
75
+ }] : []) }), _jsx(Modal, { open: confirmation !== undefined, onClose: close, closeLabel: t('dialog.cancel'), title: confirmation ? t(`dashboard.manage.${confirmation.action}`) : '', description: confirmation ? t(`dashboard.manage.confirm.${confirmation.action}`) : '', footer: _jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", disabled: pending, onClick: close, children: t('dialog.cancel') }), _jsx(Button, { variant: "primary", "data-batch-confirm": true, disabled: pending || actionPending || (confirmation?.action === 'clean' && !stopped), onClick: () => void submit(), children: t(pending ? 'dashboard.manage.running' : 'dashboard.manage.confirm') })] }), children: _jsxs("div", { "data-dashboard-batch-dialog": true, children: [_jsx("p", { children: t('dashboard.manage.selected', { count: confirmation?.records.length ?? 0 }) }), _jsx("ul", { className: styles.dashboardManageConfirmList, children: confirmation?.records.map((record) => _jsxs("li", { children: [_jsx("strong", { children: record.branch }), _jsx("code", { children: confirmation.action === 'clean' ? record.gitRootPath ?? record.absolutePath : record.absolutePath })] }, record.worktreeId)) }), confirmation?.action === 'clean' && _jsxs("label", { className: styles.dashboardManageStopped, children: [_jsx("input", { type: "checkbox", checked: stopped, disabled: pending, onChange: (event) => setStopped(event.currentTarget.checked) }), t('dashboard.manage.stopped')] })] }) })] });
76
+ }
77
+ //# sourceMappingURL=BatchManageWorktrees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchManageWorktrees.js","sourceRoot":"","sources":["../../../src/client/dashboard/BatchManageWorktrees.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { SessionListLike, SessionPresentation } from '../session/session-vi
4
4
  import type { BranchRecord, WorktreeManager, WorktreeRecord } from '../../contract/index.js';
5
5
  import type { WorktreeToolSettingsManager } from '../../contract/tool-settings.js';
6
6
  import type { WorktreeSyncStrategy, WorktreeSessionDispatchResult } from '../../contract/baseline-sync.js';
7
+ import { type BatchManageWorktreesProps } from './BatchManageWorktrees.js';
7
8
  export interface WorktreeDashboardProps {
8
9
  readonly manager?: WorktreeManager & Partial<WorktreeToolSettingsManager>;
9
10
  readonly onSaveInstructions?: (text: string, expected: string) => Promise<string>;
@@ -29,9 +30,10 @@ export interface WorktreeDashboardProps {
29
30
  readonly onCreateSession?: () => void;
30
31
  readonly onCreateWorktree?: () => void;
31
32
  readonly onArchiveWorktree?: () => void;
33
+ readonly onManageWorktree?: BatchManageWorktreesProps['onManage'];
32
34
  readonly onSyncBaseline?: (strategy: WorktreeSyncStrategy, baseBranch: string, requestId: string) => Promise<WorktreeSessionDispatchResult>;
33
35
  readonly onOpenFile?: (path: string) => void;
34
36
  }
35
37
  /** A managed Worktree or browser Main projection with explicit unavailable states for inapplicable facts. */
36
- export declare function WorktreeDashboard({ manager, record, worktrees, mainRecord, onOpenWorktree, workspaceTitle, t, onClose, onOpenSidebar, isRightSidebarExpanded, sessions, sessionPresentations, sessionIds, actionPending, onOpenSession, onCreateSession, onCreateWorktree, onArchiveWorktree, onSyncBaseline, onOpenFile, onSaveInstructions, onSaveBaseline, onFetchBranches, onLoadBranches, branches, branchesLoading, }: WorktreeDashboardProps): import("react").JSX.Element;
38
+ export declare function WorktreeDashboard({ manager, record, worktrees, mainRecord, onOpenWorktree, workspaceTitle, t, onClose, onOpenSidebar, isRightSidebarExpanded, sessions, sessionPresentations, sessionIds, actionPending, onOpenSession, onCreateSession, onCreateWorktree, onArchiveWorktree, onManageWorktree, onSyncBaseline, onOpenFile, onSaveInstructions, onSaveBaseline, onFetchBranches, onLoadBranches, branches, branchesLoading, }: WorktreeDashboardProps): import("react").JSX.Element;
37
39
  //# sourceMappingURL=WorktreeDashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeDashboard.d.ts","sourceRoot":"","sources":["../../../src/client/dashboard/WorktreeDashboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeDashboard.d.ts","sourceRoot":"","sources":["../../../src/client/dashboard/WorktreeDashboard.tsx"],"names":[],"mappings":"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"}
@@ -19,7 +19,8 @@ import { WorktreeGitPanel } from './git/WorktreeGitPanel.js';
19
19
  import { useWorktreeGitOverview, WorktreeGitOverviewValue } from './git/WorktreeGitOverview.js';
20
20
  import { GitBranchPicker } from '../branch/GitBranchSelector.js';
21
21
  import { ToolSettings } from '../settings/ToolSettings.js';
22
- const TABS = ['overview', 'git', 'sessions', 'children', 'settings'];
22
+ import { BatchManageWorktrees } from './BatchManageWorktrees.js';
23
+ const TABS = ['overview', 'git', 'sessions', 'children', 'settings', 'manage'];
23
24
  /** getRandomValues is also available on plain-HTTP LAN origins. */
24
25
  function createSyncRequestId() {
25
26
  return 'sync:' + Array.from(globalThis.crypto.getRandomValues(new Uint8Array(16)), (byte) => byte.toString(16).padStart(2, '0')).join('');
@@ -53,6 +54,7 @@ function DashboardIcon({ kind }) {
53
54
  sessions: 'M4 4h16v13H9l-5 4z M8 8h8 M8 12h5',
54
55
  children: 'M12 7v5 M5 17v-5h14v5 M9 3h6v4H9z M2 17h6v4H2z M16 17h6v4h-6z',
55
56
  settings: 'M4 6h16 M4 12h16 M4 18h16 M8 3v6 M16 9v6 M10 15v6',
57
+ manage: 'M9 5h12 M9 12h12 M9 19h12 M3 4h2v2H3z M3 11h2v2H3z M3 18h2v2H3z',
56
58
  instructions: 'M5 3h14v18H5z M8 7h8 M8 11h8 M8 15h5',
57
59
  actions: 'M13 2 4 14h7l-1 8 10-13h-8z',
58
60
  };
@@ -192,7 +194,7 @@ function WorktreeBaselineEditor({ value, renderValue, branches, loading, current
192
194
  ] })] }) })] }));
193
195
  }
194
196
  /** A managed Worktree or browser Main projection with explicit unavailable states for inapplicable facts. */
195
- export function WorktreeDashboard({ manager, record, worktrees = [], mainRecord, onOpenWorktree, workspaceTitle, t, onClose, onOpenSidebar, isRightSidebarExpanded, sessions, sessionPresentations, sessionIds, actionPending, onOpenSession, onCreateSession, onCreateWorktree, onArchiveWorktree, onSyncBaseline, onOpenFile, onSaveInstructions, onSaveBaseline, onFetchBranches, onLoadBranches, branches = [], branchesLoading = false, }) {
197
+ export function WorktreeDashboard({ manager, record, worktrees = [], mainRecord, onOpenWorktree, workspaceTitle, t, onClose, onOpenSidebar, isRightSidebarExpanded, sessions, sessionPresentations, sessionIds, actionPending, onOpenSession, onCreateSession, onCreateWorktree, onArchiveWorktree, onManageWorktree, onSyncBaseline, onOpenFile, onSaveInstructions, onSaveBaseline, onFetchBranches, onLoadBranches, branches = [], branchesLoading = false, }) {
196
198
  const surface = useRef(null);
197
199
  const heading = useRef(null);
198
200
  const [placement, setPlacement] = useState();
@@ -269,6 +271,7 @@ export function WorktreeDashboard({ manager, record, worktrees = [], mainRecord,
269
271
  }
270
272
  };
271
273
  const isMain = isMainWorktreeId(record.worktreeId);
274
+ const tabs = TABS.filter((value) => value !== 'manage' || isMain);
272
275
  const refName = record.currentHead?.name ?? record.currentBranch ?? record.branch;
273
276
  const branchAvailable = refName.length > 0;
274
277
  const displayBranch = branchAvailable ? refName : t('dashboard.branchUnavailable');
@@ -428,7 +431,8 @@ export function WorktreeDashboard({ manager, record, worktrees = [], mainRecord,
428
431
  if (event.key === 'Escape') {
429
432
  // Portal keys bubble through this React ancestor before the native
430
433
  // Modal's document listener. Let it closeSync (including its busy guard).
431
- if (syncOpen)
434
+ if (syncOpen || surface.current?.ownerDocument.querySelector('[data-dashboard-batch-dialog]') ||
435
+ event.target?.closest?.('[role="dialog"]'))
432
436
  return;
433
437
  if (event.target?.closest?.('[data-single-select-picker]'))
434
438
  return;
@@ -467,16 +471,16 @@ export function WorktreeDashboard({ manager, record, worktrees = [], mainRecord,
467
471
  ? t('dashboard.copied')
468
472
  : '\u00a0' })] }), _jsx("div", { className: styles.dashboardHeaderAside, children: _jsxs("dl", { className: `${styles.dashboardFacts} ${styles.dashboardHeaderFacts}`, children: [!isMain && _jsx(DashboardFactRow, { label: t(acquisitionLabel), children: acquisitionFacts.timestamp ? (_jsx("time", { dateTime: acquisitionFacts.timestamp, children: new Date(acquisitionFacts.timestamp).toLocaleString() })) : (_jsx("span", { className: styles.dashboardHistorical, children: t('dashboard.historicalUnavailable') })) }), !isMain && (persistBaseline !== undefined ? (_jsx(WorktreeBaselineEditor, { context: workspaceTitle + ' · ' + record.branch + ' · ' + record.absolutePath, value: baselineBranch, renderValue: renderBaseline, branches: branches, loading: branchesLoading, currentBranch: baselineCurrentBranch, onSave: persistBaseline, onFetch: onFetchBranches, onLoad: onLoadBranches, t: t, disabled: record.status !== 'active' || record.health === 'recovery-needed' })) : (_jsx(DashboardFactRow, { label: t('dashboard.base'), baseline: true, children: renderBaseline(displayedBaseline) }))), _jsx(DashboardFactRow, { label: t('dashboard.source'), children: isMainWorktreeId(record.worktreeId)
469
473
  ? t('worktree.main')
470
- : t(record.source === 'external' ? 'dashboard.external' : 'dashboard.plugin') })] }) })] }), _jsx("div", { className: styles.dashboardTabs, role: "tablist", "aria-label": t('dashboard.title'), children: TABS.map((value) => (_jsxs("button", { type: "button", id: `${id}-${value}`, role: "tab", "aria-selected": tab === value, "aria-controls": `${id}-panel`, tabIndex: tab === value ? 0 : -1, onClick: () => selectTab(value), onKeyDown: (event) => {
471
- const index = TABS.indexOf(value);
474
+ : t(record.source === 'external' ? 'dashboard.external' : 'dashboard.plugin') })] }) })] }), _jsx("div", { className: styles.dashboardTabs, role: "tablist", "aria-label": t('dashboard.title'), children: tabs.map((value) => (_jsxs("button", { type: "button", id: `${id}-${value}`, role: "tab", "aria-selected": tab === value, "aria-controls": `${id}-panel`, tabIndex: tab === value ? 0 : -1, onClick: () => selectTab(value), onKeyDown: (event) => {
475
+ const index = tabs.indexOf(value);
472
476
  const next = event.key === 'ArrowRight'
473
- ? TABS[(index + 1) % TABS.length]
477
+ ? tabs[(index + 1) % tabs.length]
474
478
  : event.key === 'ArrowLeft'
475
- ? TABS[(index + TABS.length - 1) % TABS.length]
479
+ ? tabs[(index + tabs.length - 1) % tabs.length]
476
480
  : event.key === 'Home'
477
- ? TABS[0]
481
+ ? tabs[0]
478
482
  : event.key === 'End'
479
- ? TABS[TABS.length - 1]
483
+ ? tabs[tabs.length - 1]
480
484
  : undefined;
481
485
  if (next) {
482
486
  event.preventDefault();
@@ -487,7 +491,7 @@ export function WorktreeDashboard({ manager, record, worktrees = [], mainRecord,
487
491
  }, children: t('dashboard.action.sync') }), _jsx("button", { type: "button", className: styles.dashboardButton, disabled: actionPending || !onArchiveWorktree, onClick: onArchiveWorktree, "data-dashboard-action": "archive-worktree", children: t('dashboard.action.archive') })] }) })] })] })) : tab === 'git' ? (_jsx(WorktreeGitPanel, { context: workspaceTitle + ' · ' + record.branch + ' · ' + record.absolutePath, manager: manager, workspaceId: record.workspaceId, worktreeId: record.worktreeId, defaultBaselineBranch: displayedBaseline, currentBranch: baselineCurrentBranch, capturedBaseline: record.baseCommit !== undefined, onOpenFile: onOpenFile === undefined ? undefined : (filePath) => {
488
492
  onOpenFile?.(filePath);
489
493
  setRightSidebarOpen(isRightSidebarExpanded?.() ?? false);
490
- }, t: t })) : tab === 'sessions' ? (_jsx(Card, { title: tabLabel('sessions'), icon: _jsx(DashboardIcon, { kind: "sessions" }), action: _jsx("button", { type: "button", className: styles.dashboardButton, disabled: actionPending || !onCreateSession, onClick: onCreateSession, children: t('dashboard.newSession') }), children: sessionList(sessionIds) })) : tab === 'settings' ? (_jsx(Card, { title: tabLabel('settings'), icon: _jsx(DashboardIcon, { kind: "settings" }), children: _jsx(ToolSettings, { manager: manager, scope: isMainWorktreeId(record.worktreeId)
494
+ }, t: t })) : tab === 'sessions' ? (_jsx(Card, { title: tabLabel('sessions'), icon: _jsx(DashboardIcon, { kind: "sessions" }), action: _jsx("button", { type: "button", className: styles.dashboardButton, disabled: actionPending || !onCreateSession, onClick: onCreateSession, children: t('dashboard.newSession') }), children: sessionList(sessionIds) })) : tab === 'manage' && isMain ? (_jsx("div", { className: styles.dashboardCard, children: _jsx(BatchManageWorktrees, { workspaceId: record.workspaceId, worktrees: worktrees, t: t, actionPending: actionPending, onManage: onManageWorktree }) })) : tab === 'settings' ? (_jsx(Card, { title: tabLabel('settings'), icon: _jsx(DashboardIcon, { kind: "settings" }), children: _jsx(ToolSettings, { manager: manager, scope: isMainWorktreeId(record.worktreeId)
491
495
  ? { kind: 'local', workspaceId: record.workspaceId }
492
496
  : { kind: 'worktree', workspaceId: record.workspaceId, worktreeId: record.worktreeId }, t: t }, JSON.stringify([record.workspaceId, record.worktreeId])) })) : (_jsxs(Card, { title: tabLabel('children'), icon: _jsx(DashboardIcon, { kind: "children" }), action: _jsx("span", { children: derivedWorktrees.length }), children: [_jsx("p", { children: t('dashboard.childrenHint') }), worktreeList(derivedWorktrees)] })) }), _jsx("p", { className: styles.dashboardFooter, children: t('dashboard.mvpHint') })] }), _jsx(Modal, { open: syncOpen, onClose: closeSync, closeLabel: t('dialog.close'), title: t('dashboard.action.sync'), description: t('dashboard.sync.description'), className: styles.dashboardBaselineModal, footer: _jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", disabled: syncPending, onClick: closeSync, children: t('dashboard.cancelBase') }), syncResult ? _jsx(Button, { variant: "primary", onClick: () => onOpenSession(syncResult.sessionId), children: t('dashboard.sync.openSession') }) : _jsx(Button, { variant: "primary", disabled: syncPending, onClick: () => void startSync(), children: t(syncPending ? 'dashboard.sync.creating' : 'dashboard.sync.create') })] }), children: _jsxs("div", { className: styles.dashboardSyncOptions, children: [_jsxs("p", { children: [_jsx("code", { children: displayedBaseline }), _jsx("span", { "aria-hidden": "true", children: " \u2192 " }), _jsx("code", { children: record.currentBranch ?? record.branch })] }), ['rebase', 'merge'].map((strategy) => _jsxs("label", { children: [_jsx("input", { type: "radio", name: `${id}-sync-strategy`, value: strategy, checked: syncStrategy === strategy, disabled: syncPending || syncResult !== undefined || syncError !== undefined, onChange: () => { syncRequest.current = undefined; setSyncStrategy(strategy); } }), _jsxs("span", { children: [_jsx("strong", { children: strategy === 'rebase' ? 'Rebase' : 'Merge baseline' }), _jsx("small", { children: t(`dashboard.sync.${strategy}`) })] })] }, strategy)), partialSync && _jsxs("p", { role: "status", children: [t(`dashboard.sync.${partialSync.status}`), _jsx("br", {}), t('dashboard.sync.partial'), _jsx("br", {}), _jsx("code", { children: partialSync.sessionId })] })] }) }), _jsx(NotificationToasts, { notices: partialSync !== undefined
493
497
  ? baselineSyncFailureNotices(record, syncRequest.current, partialSync, t, onOpenSession)