@cerbur/clutch-dsh-worktree 0.1.17 → 0.1.19
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 +207 -42
- package/README.zh.md +174 -38
- package/assets/screenshots/screenshots-agent-steer.jpg +0 -0
- package/assets/screenshots/screenshots-baseline-sync.png +0 -0
- package/lib/client/WorktreeSurface.d.ts.map +1 -1
- package/lib/client/WorktreeSurface.js +55 -12
- package/lib/client/WorktreeSurface.js.map +1 -1
- package/lib/client/branch/GitBranchSelector.d.ts +23 -0
- package/lib/client/branch/GitBranchSelector.d.ts.map +1 -0
- package/lib/client/branch/GitBranchSelector.js +142 -0
- package/lib/client/branch/GitBranchSelector.js.map +1 -0
- package/lib/client/context/worktree-context-store.d.ts +3 -1
- package/lib/client/context/worktree-context-store.d.ts.map +1 -1
- package/lib/client/context/worktree-context-store.js +4 -2
- package/lib/client/context/worktree-context-store.js.map +1 -1
- package/lib/client/context/worktree-context.d.ts +3 -2
- package/lib/client/context/worktree-context.d.ts.map +1 -1
- package/lib/client/context/worktree-context.js +5 -3
- package/lib/client/context/worktree-context.js.map +1 -1
- package/lib/client/dashboard/WorktreeDashboard.d.ts +11 -3
- package/lib/client/dashboard/WorktreeDashboard.d.ts.map +1 -1
- package/lib/client/dashboard/WorktreeDashboard.js +181 -75
- package/lib/client/dashboard/WorktreeDashboard.js.map +1 -1
- package/lib/client/dashboard/dashboard-selection.d.ts +8 -3
- package/lib/client/dashboard/dashboard-selection.d.ts.map +1 -1
- package/lib/client/dashboard/dashboard-selection.js +29 -4
- package/lib/client/dashboard/dashboard-selection.js.map +1 -1
- package/lib/client/dashboard/git/GitChangedFiles.d.ts +2 -1
- package/lib/client/dashboard/git/GitChangedFiles.d.ts.map +1 -1
- package/lib/client/dashboard/git/GitChangedFiles.js +8 -6
- package/lib/client/dashboard/git/GitChangedFiles.js.map +1 -1
- package/lib/client/dashboard/git/GitCommitList.d.ts +6 -1
- package/lib/client/dashboard/git/GitCommitList.d.ts.map +1 -1
- package/lib/client/dashboard/git/GitCommitList.js +34 -29
- package/lib/client/dashboard/git/GitCommitList.js.map +1 -1
- package/lib/client/dashboard/git/GitCommitStats.d.ts +8 -0
- package/lib/client/dashboard/git/GitCommitStats.d.ts.map +1 -0
- package/lib/client/dashboard/git/GitCommitStats.js +7 -0
- package/lib/client/dashboard/git/GitCommitStats.js.map +1 -0
- package/lib/client/dashboard/git/WorktreeGitOverview.d.ts.map +1 -1
- package/lib/client/dashboard/git/WorktreeGitOverview.js +2 -1
- package/lib/client/dashboard/git/WorktreeGitOverview.js.map +1 -1
- package/lib/client/dashboard/git/WorktreeGitPanel.d.ts +1 -1
- package/lib/client/dashboard/git/WorktreeGitPanel.d.ts.map +1 -1
- package/lib/client/dashboard/git/WorktreeGitPanel.js +28 -9
- package/lib/client/dashboard/git/WorktreeGitPanel.js.map +1 -1
- package/lib/client/dashboard/git/file-address.d.ts +5 -2
- package/lib/client/dashboard/git/file-address.d.ts.map +1 -1
- package/lib/client/dashboard/git/file-address.js +50 -7
- package/lib/client/dashboard/git/file-address.js.map +1 -1
- package/lib/client/dashboard/git/git-facts.js +1 -1
- package/lib/client/dashboard/git/git-facts.js.map +1 -1
- package/lib/client/dashboard/git/useWorktreeGitState.d.ts +7 -2
- package/lib/client/dashboard/git/useWorktreeGitState.d.ts.map +1 -1
- package/lib/client/dashboard/git/useWorktreeGitState.js +84 -21
- package/lib/client/dashboard/git/useWorktreeGitState.js.map +1 -1
- package/lib/client/dsh-icons.d.ts +2 -0
- package/lib/client/dsh-icons.d.ts.map +1 -1
- package/lib/client/dsh-icons.js +2 -0
- package/lib/client/dsh-icons.js.map +1 -1
- package/lib/client/dsh-slot-contract.d.ts +8 -1
- package/lib/client/dsh-slot-contract.d.ts.map +1 -1
- package/lib/client/entry.d.ts.map +1 -1
- package/lib/client/entry.js +22 -4
- package/lib/client/entry.js.map +1 -1
- package/lib/client/locales.d.ts +86 -2
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +100 -16
- package/lib/client/locales.js.map +1 -1
- package/lib/client/permission/worktree-permission.d.ts.map +1 -1
- package/lib/client/permission/worktree-permission.js +14 -6
- package/lib/client/permission/worktree-permission.js.map +1 -1
- package/lib/client/select/SearchableSingleSelect.d.ts +44 -0
- package/lib/client/select/SearchableSingleSelect.d.ts.map +1 -0
- package/lib/client/select/SearchableSingleSelect.js +180 -0
- package/lib/client/select/SearchableSingleSelect.js.map +1 -0
- package/lib/client/select/WorktreeSelector.d.ts +14 -0
- package/lib/client/select/WorktreeSelector.d.ts.map +1 -0
- package/lib/client/select/WorktreeSelector.js +11 -0
- package/lib/client/select/WorktreeSelector.js.map +1 -0
- package/lib/client/settings/diagnostics.d.ts +4 -0
- package/lib/client/settings/diagnostics.d.ts.map +1 -1
- package/lib/client/settings/diagnostics.js +12 -0
- package/lib/client/settings/diagnostics.js.map +1 -1
- package/lib/client/steer/SteerDock.d.ts +8 -0
- package/lib/client/steer/SteerDock.d.ts.map +1 -0
- package/lib/client/steer/SteerDock.js +12 -0
- package/lib/client/steer/SteerDock.js.map +1 -0
- package/lib/client/steer/steer-activity.d.ts +18 -0
- package/lib/client/steer/steer-activity.d.ts.map +1 -0
- package/lib/client/steer/steer-activity.js +37 -0
- package/lib/client/steer/steer-activity.js.map +1 -0
- package/lib/client/steer/steer-state.d.ts +24 -0
- package/lib/client/steer/steer-state.d.ts.map +1 -0
- package/lib/client/steer/steer-state.js +102 -0
- package/lib/client/steer/steer-state.js.map +1 -0
- package/lib/client/surface/actions/useLifecycleActions.js +1 -1
- package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
- package/lib/client/surface/actions/useWorktreeRegistration.d.ts +1 -1
- package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
- package/lib/client/surface/actions/useWorktreeRegistration.js +32 -11
- package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
- package/lib/client/surface/components/RegistrationDialog.d.ts +3 -3
- package/lib/client/surface/components/RegistrationDialog.d.ts.map +1 -1
- package/lib/client/surface/components/RegistrationDialog.js +70 -5
- package/lib/client/surface/components/RegistrationDialog.js.map +1 -1
- package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -1
- package/lib/client/surface/components/WorkspaceTree.js +11 -8
- package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
- package/lib/client/surface/components/dialogs.d.ts +1 -1
- package/lib/client/surface/components/dialogs.d.ts.map +1 -1
- package/lib/client/surface/components/dialogs.js +24 -15
- package/lib/client/surface/components/dialogs.js.map +1 -1
- package/lib/client/surface/state/useRegistrationState.d.ts +6 -1
- package/lib/client/surface/state/useRegistrationState.d.ts.map +1 -1
- package/lib/client/surface/state/useRegistrationState.js +7 -0
- package/lib/client/surface/state/useRegistrationState.js.map +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.js +6 -3
- package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
- package/lib/client/surface/types.d.ts +10 -2
- package/lib/client/surface/types.d.ts.map +1 -1
- package/lib/client/view/worktree-error-copy.d.ts.map +1 -1
- package/lib/client/view/worktree-error-copy.js +4 -0
- package/lib/client/view/worktree-error-copy.js.map +1 -1
- package/lib/client/view/worktree-view-read.d.ts +7 -2
- package/lib/client/view/worktree-view-read.d.ts.map +1 -1
- package/lib/client/view/worktree-view-read.js +57 -18
- package/lib/client/view/worktree-view-read.js.map +1 -1
- package/lib/client/worktree-connection.d.ts +4 -0
- package/lib/client/worktree-connection.d.ts.map +1 -1
- package/lib/client/worktree-connection.js +20 -1
- package/lib/client/worktree-connection.js.map +1 -1
- package/lib/client.js +2361 -834
- package/lib/client.js.map +1 -1
- package/lib/contract/baseline-sync.d.ts +27 -0
- package/lib/contract/baseline-sync.d.ts.map +1 -0
- package/lib/contract/baseline-sync.js +2 -0
- package/lib/contract/baseline-sync.js.map +1 -0
- package/lib/contract/index.contract.js +16 -0
- package/lib/contract/index.contract.js.map +1 -1
- package/lib/contract/index.d.ts +73 -12
- package/lib/contract/index.d.ts.map +1 -1
- package/lib/contract/index.js +4 -0
- package/lib/contract/index.js.map +1 -1
- package/lib/contract/worktree-permission.d.ts +2 -0
- package/lib/contract/worktree-permission.d.ts.map +1 -1
- package/lib/contract/worktree-permission.js +1 -1
- package/lib/contract/worktree-permission.js.map +1 -1
- package/lib/contract/worktree-tool-changes.d.ts +2 -0
- package/lib/contract/worktree-tool-changes.d.ts.map +1 -1
- package/lib/host/baseline-sync.d.ts +15 -0
- package/lib/host/baseline-sync.d.ts.map +1 -0
- package/lib/host/baseline-sync.js +93 -0
- package/lib/host/baseline-sync.js.map +1 -0
- package/lib/host/remote.d.ts +2 -1
- package/lib/host/remote.d.ts.map +1 -1
- package/lib/host/remote.js +8 -1
- package/lib/host/remote.js.map +1 -1
- package/lib/host/service.d.ts +18 -6
- package/lib/host/service.d.ts.map +1 -1
- package/lib/host/service.js +45 -2
- package/lib/host/service.js.map +1 -1
- package/lib/host/worktree-permission.d.ts +12 -0
- package/lib/host/worktree-permission.d.ts.map +1 -1
- package/lib/host/worktree-permission.js +87 -16
- package/lib/host/worktree-permission.js.map +1 -1
- package/lib/host/worktree-tool-changes.d.ts +1 -1
- package/lib/host/worktree-tool-changes.d.ts.map +1 -1
- package/lib/host/worktree-tool-changes.js +5 -2
- package/lib/host/worktree-tool-changes.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/manage/manager-git-history.d.ts +5 -7
- package/lib/manage/manager-git-history.d.ts.map +1 -1
- package/lib/manage/manager-git-history.js +158 -65
- package/lib/manage/manager-git-history.js.map +1 -1
- package/lib/manage/manager-git-paths.d.ts +7 -0
- package/lib/manage/manager-git-paths.d.ts.map +1 -0
- package/lib/manage/manager-git-paths.js +62 -0
- package/lib/manage/manager-git-paths.js.map +1 -0
- package/lib/manage/manager-worktrees.d.ts +9 -1
- package/lib/manage/manager-worktrees.d.ts.map +1 -1
- package/lib/manage/manager-worktrees.js +69 -14
- package/lib/manage/manager-worktrees.js.map +1 -1
- package/lib/manage/manager.d.ts +17 -5
- package/lib/manage/manager.d.ts.map +1 -1
- package/lib/manage/manager.js +81 -4
- package/lib/manage/manager.js.map +1 -1
- package/lib/manage/types.d.ts +5 -0
- package/lib/manage/types.d.ts.map +1 -1
- package/lib/provider/git/adapter.d.ts +13 -12
- package/lib/provider/git/adapter.d.ts.map +1 -1
- package/lib/provider/git/adapter.js +152 -29
- package/lib/provider/git/adapter.js.map +1 -1
- package/lib/provider/git/branch-name.d.ts +5 -0
- package/lib/provider/git/branch-name.d.ts.map +1 -0
- package/lib/provider/git/branch-name.js +16 -0
- package/lib/provider/git/branch-name.js.map +1 -0
- package/lib/provider/git/branches.d.ts +11 -0
- package/lib/provider/git/branches.d.ts.map +1 -0
- package/lib/provider/git/branches.js +37 -0
- package/lib/provider/git/branches.js.map +1 -0
- package/lib/provider/sidecar/repository.d.ts.map +1 -1
- package/lib/provider/sidecar/repository.js +2 -1
- package/lib/provider/sidecar/repository.js.map +1 -1
- package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -1
- package/lib/provider/sidecar/sidecar-schema.js +2 -0
- package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
- package/lib/provider/transaction/operations/create.d.ts.map +1 -1
- package/lib/provider/transaction/operations/create.js +18 -6
- package/lib/provider/transaction/operations/create.js.map +1 -1
- package/lib/provider/transaction/recovery/failure-recovery.d.ts.map +1 -1
- package/lib/provider/transaction/recovery/failure-recovery.js +3 -2
- package/lib/provider/transaction/recovery/failure-recovery.js.map +1 -1
- package/lib/provider/transaction/recovery/recover.d.ts.map +1 -1
- package/lib/provider/transaction/recovery/recover.js +8 -5
- package/lib/provider/transaction/recovery/recover.js.map +1 -1
- package/lib/provider/transaction/support/journal.d.ts.map +1 -1
- package/lib/provider/transaction/support/journal.js +1 -0
- package/lib/provider/transaction/support/journal.js.map +1 -1
- package/lib/provider/types.d.ts +24 -4
- package/lib/provider/types.d.ts.map +1 -1
- package/lib/provider/types.js.map +1 -1
- package/lib/tool/agent-relay.d.ts +55 -0
- package/lib/tool/agent-relay.d.ts.map +1 -0
- package/lib/tool/agent-relay.js +159 -0
- package/lib/tool/agent-relay.js.map +1 -0
- package/lib/tool/delegation.d.ts +1 -0
- package/lib/tool/delegation.d.ts.map +1 -1
- package/lib/tool/delegation.js +32 -6
- package/lib/tool/delegation.js.map +1 -1
- package/lib/tool/dispatch-session.d.ts +18 -0
- package/lib/tool/dispatch-session.d.ts.map +1 -0
- package/lib/tool/dispatch-session.js +41 -0
- package/lib/tool/dispatch-session.js.map +1 -0
- package/lib/tool/errors.d.ts +6 -0
- package/lib/tool/errors.d.ts.map +1 -1
- package/lib/tool/errors.js +16 -2
- package/lib/tool/errors.js.map +1 -1
- package/lib/tool/guidance.d.ts +1 -0
- package/lib/tool/guidance.d.ts.map +1 -1
- package/lib/tool/guidance.js +2 -0
- package/lib/tool/guidance.js.map +1 -1
- package/lib/tool/index.d.ts.map +1 -1
- package/lib/tool/index.js +38 -4
- package/lib/tool/index.js.map +1 -1
- package/lib/tool/inputs.d.ts.map +1 -1
- package/lib/tool/inputs.js +6 -6
- package/lib/tool/inputs.js.map +1 -1
- package/lib/tool/list-models.js +2 -2
- package/lib/tool/list-models.js.map +1 -1
- package/lib/tool/list-sessions.js +2 -2
- package/lib/tool/list-sessions.js.map +1 -1
- package/lib/tool/list-worktrees.d.ts.map +1 -1
- package/lib/tool/list-worktrees.js +9 -2
- package/lib/tool/list-worktrees.js.map +1 -1
- package/lib/tool/native-session.d.ts +4 -0
- package/lib/tool/native-session.d.ts.map +1 -1
- package/lib/tool/native-session.js +17 -0
- package/lib/tool/native-session.js.map +1 -1
- package/lib/tool/new-worktree.js +4 -4
- package/lib/tool/new-worktree.js.map +1 -1
- package/lib/tool/report-result.d.ts.map +1 -1
- package/lib/tool/report-result.js +9 -7
- package/lib/tool/report-result.js.map +1 -1
- package/lib/tool/schema.d.ts +8 -0
- package/lib/tool/schema.d.ts.map +1 -1
- package/lib/tool/schema.js +31 -2
- package/lib/tool/schema.js.map +1 -1
- package/lib/tool/send-message.d.ts.map +1 -1
- package/lib/tool/send-message.js +8 -7
- package/lib/tool/send-message.js.map +1 -1
- package/lib/tool/span-worktree.d.ts.map +1 -1
- package/lib/tool/span-worktree.js +33 -59
- package/lib/tool/span-worktree.js.map +1 -1
- package/lib/tool/types.d.ts +2 -0
- package/lib/tool/types.d.ts.map +1 -1
- package/lib/tool/wire-schema.d.ts +4 -0
- package/lib/tool/wire-schema.d.ts.map +1 -0
- package/lib/tool/wire-schema.js +24 -0
- package/lib/tool/wire-schema.js.map +1 -0
- package/lib/typert.host.js +283 -52
- package/lib/typert.remote-client.d.ts +13 -5
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +283 -52
- package/package.json +7 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorktreeGitPanel.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorktreeGitPanel.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAIV,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAmBhE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CACrB,eAAe,EACf,cAAc,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,2BAA2B,CACjG,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAgED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,CAAC,GACF,EAAE,qBAAqB,+BA+XvB"}
|
|
@@ -3,10 +3,12 @@ import { NotificationToasts } from '../../surface/components/NotificationToasts.
|
|
|
3
3
|
import { toWorktreeViewError } from '../../view/worktree-view.js';
|
|
4
4
|
import { formatWorktreeViewError } from '../../view/worktree-error-copy.js';
|
|
5
5
|
import { failureToastKey } from '../../surface/notification-queue.js';
|
|
6
|
-
import { useRef } from 'react';
|
|
6
|
+
import { useMemo, useRef } from 'react';
|
|
7
|
+
import { GitBranchSelector } from '../../branch/GitBranchSelector.js';
|
|
7
8
|
import { isMainWorktreeId, normalizeBaselineBranch, sumLineTotals } from './git-facts.js';
|
|
8
9
|
import { GitChangedFiles } from './GitChangedFiles.js';
|
|
9
10
|
import { GitLineStats } from './GitLineStats.js';
|
|
11
|
+
import { GitCommitStats } from './GitCommitStats.js';
|
|
10
12
|
import { GitCommitList } from './GitCommitList.js';
|
|
11
13
|
import { GitDiffView } from './GitDiffView.js';
|
|
12
14
|
import { GIT_SPLIT_DEFAULT_COLUMN_PERCENT, GIT_SPLIT_DEFAULT_ROW_PERCENT, GIT_SPLIT_MIN_COLUMN_PX, GIT_SPLIT_MIN_ROW_PX, } from './git-column-split.js';
|
|
@@ -20,7 +22,7 @@ function selectedCommit(history, sha) {
|
|
|
20
22
|
return history?.commits.find((commit) => commit.sha === sha);
|
|
21
23
|
}
|
|
22
24
|
function commitCountLabel(history, t) {
|
|
23
|
-
const committedCount = history.commits.filter((commit) => commit.kind !== 'working-tree').length;
|
|
25
|
+
const committedCount = history.ahead ?? history.commits.filter((commit) => commit.kind !== 'working-tree').length;
|
|
24
26
|
return history.commits.some((commit) => commit.kind === 'working-tree')
|
|
25
27
|
? t('dashboard.git.commitCountWithWorkingTree', { commits: committedCount })
|
|
26
28
|
: t('dashboard.git.commitCount', { n: committedCount });
|
|
@@ -79,13 +81,15 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
|
|
|
79
81
|
fallback: GIT_SPLIT_DEFAULT_COLUMN_PERCENT,
|
|
80
82
|
});
|
|
81
83
|
const historyValue = state.history.status === 'ready' ? state.history.value : undefined;
|
|
84
|
+
const comparison = !isMain || historyValue?.baseline !== undefined;
|
|
82
85
|
const commit = selectedCommit(historyValue, state.selectedCommit);
|
|
83
86
|
const files = state.files.status === 'ready' ? readyFiles(state.files.value) : [];
|
|
84
87
|
const diff = state.diff.status === 'ready' ? state.diff.value : undefined;
|
|
85
88
|
const refreshing = state.history.status === 'ready' && state.history.refreshing === true;
|
|
86
89
|
const unavailable = historyValue?.unavailableReason;
|
|
87
|
-
const
|
|
88
|
-
|
|
90
|
+
const branchRoster = state.branches.status === 'ready' ? state.branches.value : undefined;
|
|
91
|
+
const branchOptions = useMemo(() => (branchRoster ?? [])
|
|
92
|
+
.filter((branch) => branch.kind === 'remote' || branch.name !== currentBranch), [branchRoster, currentBranch]);
|
|
89
93
|
const branchError = state.branches.status === 'error'
|
|
90
94
|
? state.branches.error
|
|
91
95
|
: state.branches.status === 'ready'
|
|
@@ -102,8 +106,11 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
|
|
|
102
106
|
: commitLabel(commit, t);
|
|
103
107
|
const hasTarget = state.view === 'summary' || commit !== undefined;
|
|
104
108
|
const lineTotals = state.files.status === 'ready' && hasTarget ? sumLineTotals(files) : undefined;
|
|
109
|
+
const refreshRequired = state.loadMoreError !== undefined &&
|
|
110
|
+
toWorktreeViewError(state.loadMoreError).code === 'WORKTREE_STATE_CONFLICT';
|
|
105
111
|
return (_jsxs("section", { className: styles.gitPanel, "data-dashboard-git-panel": true, children: [_jsx(NotificationToasts, { notices: [
|
|
106
112
|
['branches', branchError],
|
|
113
|
+
['pagination', state.loadMoreError],
|
|
107
114
|
[
|
|
108
115
|
'history',
|
|
109
116
|
state.history.status === 'error' || state.history.status === 'ready'
|
|
@@ -140,6 +147,8 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
|
|
|
140
147
|
onClick: () => {
|
|
141
148
|
if (scope === 'branches')
|
|
142
149
|
void state.loadBranches();
|
|
150
|
+
else if (scope === 'pagination' && diagnostic.code !== 'WORKTREE_STATE_CONFLICT')
|
|
151
|
+
void state.loadMore();
|
|
143
152
|
else
|
|
144
153
|
void state.refresh();
|
|
145
154
|
},
|
|
@@ -147,10 +156,20 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
|
|
|
147
156
|
],
|
|
148
157
|
},
|
|
149
158
|
];
|
|
150
|
-
}) }), _jsxs("header", { className: styles.gitPanelHeader, children: [_jsxs("div", { className: styles.gitPanelHeading, children: [_jsx("h2", { children: t('dashboard.git.title') }),
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
159
|
+
}) }), _jsxs("header", { className: styles.gitPanelHeader, children: [_jsxs("div", { className: styles.gitPanelHeading, children: [_jsx("h2", { children: t('dashboard.git.title') }), _jsxs("div", { className: styles.gitBaselineSelector, children: [_jsx("span", { children: t('dashboard.git.baselineSelector') }), _jsx(GitBranchSelector, { t: t, size: "compact", label: t('dashboard.git.baselineSelector'), placeholder: t(isMain ? 'dashboard.git.noBaseline' : 'dashboard.git.selectBaseline'), emptyLabel: t(isMain ? 'dashboard.git.noBaseline' : 'dashboard.git.selectBaseline'), branches: branchOptions, value: state.baselineBranch ?? '', loading: state.branches.status === 'loading'
|
|
160
|
+
|| (state.branches.status === 'ready' && state.branches.refreshing === true), onFetch: manager?.fetchRemoteBranches === undefined ? undefined : async () => {
|
|
161
|
+
try {
|
|
162
|
+
const branches = await manager.fetchRemoteBranches({ workspaceId });
|
|
163
|
+
state.acceptBranches(branches);
|
|
164
|
+
return branches.filter((branch) => branch.kind === 'remote' || branch.name !== currentBranch);
|
|
165
|
+
}
|
|
166
|
+
finally {
|
|
167
|
+
await state.refresh();
|
|
168
|
+
}
|
|
169
|
+
}, onChange: (value) => state.selectBaselineBranch(value || undefined), onLoad: manager?.listBranches === undefined ? undefined
|
|
170
|
+
: async () => (await state.readFreshBranches())
|
|
171
|
+
.filter((branch) => branch.kind === 'remote' || branch.name !== currentBranch) })] }), baselineCommit !== undefined && (_jsxs("dl", { className: styles.gitBaselineFacts, children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.base') }), _jsxs("dd", { children: [baselineRef !== undefined ? (_jsxs(_Fragment, { children: [baselineRef.replace(/^refs\/(heads|remotes)\//u, ''), _jsxs("code", { children: ["@ ", shortCommit(baselineCommit)] })] })) : (_jsx("code", { children: shortCommit(baselineCommit) })), historyValue?.baseline?.source === 'derived' && (_jsx("span", { className: styles.gitDerived, children: t('dashboard.git.derived') }))] })] }), historyValue !== undefined && (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }), _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.commits') }), _jsx("dd", { children: commitCountLabel(historyValue, t) })] }), historyValue.ahead !== undefined && historyValue.behind !== undefined && (_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.aheadBehind') }), _jsx("dd", { children: _jsx(GitCommitStats, { ahead: historyValue.ahead, behind: historyValue.behind, t: t }) })] }))] }))] })), isMain && historyValue !== undefined && baselineCommit === undefined && (_jsx("dl", { className: styles.gitBaselineFacts, children: _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }) }))] }), _jsx("button", { type: "button", className: styles.gitRefresh, "data-dashboard-git-refresh": true, disabled: refreshing || state.history.status === 'loading', "aria-busy": refreshing || state.history.status === 'loading', onClick: () => void state.refresh(), children: refreshing ? t('dashboard.git.refreshing') : t('dashboard.git.refresh') })] }), !isMain && unavailable === 'baseline-unselected' && (_jsxs("div", { className: styles.gitBaselinePrompt, "data-dashboard-git-baseline-prompt": true, children: [_jsx("strong", { children: t('dashboard.git.selectBaselineTitle') }), _jsx("p", { children: t('dashboard.git.selectBaselineDescription') })] })), state.history.status === 'loading' && (_jsx("div", { className: styles.gitLoading, role: "status", children: t('dashboard.git.loading') })), state.history.status === 'ready' && historyValue !== undefined && unavailable !== undefined && (_jsx(UnavailableNotice, { reason: unavailable, t: t })), state.history.status === 'ready' && historyValue !== undefined && unavailable === undefined && (_jsxs("div", { className: styles.gitColumns, ref: gridRef, children: [_jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "commits", "aria-label": t('dashboard.git.commits'), children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.commits') }), _jsxs("div", { className: styles.gitColumnHeaderControls, children: [state.loadingMore && _jsx("span", { role: "status", children: t('dashboard.git.loadingMore') }), _jsxs("label", { className: styles.gitCommitMultiSelect, title: t('dashboard.git.multiSelectCommitsDescription'), children: [_jsx("input", { type: "checkbox", role: "switch", "data-dashboard-git-multi-select": true, "aria-describedby": "dashboard-git-commit-selection-hint", checked: state.commitMultiSelect, onChange: (event) => state.setCommitMultiSelect(event.currentTarget.checked) }), _jsx("span", { className: styles.gitCommitMultiSelectTrack, "aria-hidden": "true", children: _jsx("span", { className: styles.gitCommitMultiSelectThumb }) }), _jsx("span", { className: styles.gitCommitMultiSelectLabel, children: t('dashboard.git.multiSelectCommits') })] })] })] }), comparison && (_jsxs("button", { type: "button", className: styles.gitSummaryButton, "data-dashboard-git-summary": true, "aria-pressed": state.view === 'summary', onClick: state.selectSummary, children: [_jsx("span", { children: t('dashboard.git.baselineSummary') }), _jsx("small", { children: t('dashboard.git.baselineSummaryDescription') })] })), comparison && state.view === 'summary' && (_jsxs("label", { className: styles.gitSummaryToggle, "data-dashboard-git-include-working-tree": true, children: [_jsx("input", { type: "checkbox", checked: state.includeWorkingTree, disabled: state.files.status === 'loading', onChange: (event) => state.setIncludeWorkingTree(event.currentTarget.checked) }), _jsxs("span", { children: [_jsx("strong", { children: t('dashboard.git.includeWorkingTree') }), _jsx("small", { children: t('dashboard.git.includeWorkingTreeDescription') })] })] })), _jsx("span", { id: "dashboard-git-commit-selection-hint", className: styles.gitSrOnly, children: t('dashboard.git.commitSelectionHint') }), historyValue.commits.length === 0 && _jsx("div", { className: styles.gitEmpty, children: t('dashboard.git.noCommits') }), _jsx(GitCommitList, { commits: historyValue.commits, selectedCommit: state.selectedCommit, selectedCommits: state.selectedCommits, multiSelect: state.commitMultiSelect, onSelect: state.selectCommit, onToggle: state.toggleCommit, hasMore: historyValue.nextOffset !== undefined, loadingMore: state.loadingMore, loadMoreError: state.loadMoreError !== undefined, onLoadMore: () => void (refreshRequired
|
|
172
|
+
? state.refresh() : state.loadMore()), refreshRequired: refreshRequired, t: t }, JSON.stringify([state.baselineBranch, historyValue.headCommit, baselineCommit]))] }), _jsx(GitSplitter, { split: rows, orientation: "horizontal", axis: "rows", label: t('dashboard.git.resizeRows') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "changed-files", "aria-label": t('dashboard.git.changedFiles'), "aria-busy": state.files.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.changedFiles') }), _jsxs("div", { className: styles.gitColumnHeaderMeta, children: [targetLabel !== undefined && (state.selectedCommits.length > 1 || state.view === 'summary'
|
|
154
173
|
? _jsx("span", { children: targetLabel })
|
|
155
174
|
: _jsx("code", { children: targetLabel })), state.files.status === 'ready' && hasTarget && (lineTotals === undefined ? (_jsx("span", { className: styles.gitColumnHeaderUnknown, children: t('dashboard.unknown') })) : (_jsx(GitLineStats, { additions: lineTotals.additions, deletions: lineTotals.deletions, ariaLabel: t('dashboard.git.lineStats', {
|
|
156
175
|
additions: lineTotals.additions,
|
|
@@ -159,7 +178,7 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
|
|
|
159
178
|
? state.includeWorkingTree
|
|
160
179
|
? t('dashboard.git.noLiveBaselineChanges')
|
|
161
180
|
: t('dashboard.git.noBaselineChanges')
|
|
162
|
-
: t('dashboard.git.noFiles') })) : (_jsx(GitChangedFiles, { files: files, selectedPath: state.selectedPath, onSelect: state.selectPath, t: t }))] }))] }), _jsx(GitSplitter, { split: columns, orientation: "vertical", axis: "columns", label: t('dashboard.git.resizeColumns') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "diff", "aria-label": t('dashboard.git.diff'), "aria-busy": state.diff.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: state.view === 'summary' ? t('dashboard.git.summaryDiff') : t('dashboard.git.diff') }), state.selectedPath !== undefined && _jsx("code", { title: state.selectedPath, children: state.selectedPath })] }), state.diff.status === 'loading' ? (_jsx("div", { className: styles.gitLoading, role: "status", children: state.view === 'summary' ? t('dashboard.git.loadingSummaryDiff') : t('dashboard.git.loadingDiff') })) : state.diff.status === 'error' ? (null) : (_jsx(GitDiffView, { diff: diff, onOpenFile: onOpenFile, t: t }))] })] }))] }));
|
|
181
|
+
: t('dashboard.git.noFiles') })) : (_jsx(GitChangedFiles, { files: files, selectedPath: state.selectedPath, onSelect: state.selectPath, onOpenFile: onOpenFile, t: t }))] }))] }), _jsx(GitSplitter, { split: columns, orientation: "vertical", axis: "columns", label: t('dashboard.git.resizeColumns') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "diff", "aria-label": t('dashboard.git.diff'), "aria-busy": state.diff.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: state.view === 'summary' ? t('dashboard.git.summaryDiff') : t('dashboard.git.diff') }), state.selectedPath !== undefined && _jsx("code", { title: state.selectedPath, children: state.selectedPath })] }), state.diff.status === 'loading' ? (_jsx("div", { className: styles.gitLoading, role: "status", children: state.view === 'summary' ? t('dashboard.git.loadingSummaryDiff') : t('dashboard.git.loadingDiff') })) : state.diff.status === 'error' ? (null) : (_jsx(GitDiffView, { diff: diff, onOpenFile: onOpenFile, t: t }))] })] }))] }));
|
|
163
182
|
}
|
|
164
183
|
/**
|
|
165
184
|
* Draggable divider that resizes one axis of the Git grid. The wide layout puts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorktreeGitPanel.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorktreeGitPanel.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export declare class GitFileAddressError extends Error {
|
|
2
|
+
readonly code = "GIT_FILE_OUTSIDE_SESSION";
|
|
3
|
+
}
|
|
4
|
+
/** Resolve Workspace-relative Git paths against the actual Session cwd. */
|
|
5
|
+
export declare function buildSessionFileAddress(sessionId: string, path: string, workspacePath?: string, cwd?: string, gitRootPath?: string | undefined): string;
|
|
3
6
|
//# sourceMappingURL=file-address.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-address.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-address.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"AAGA,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,8BAA8B;CAC5C;AAcD,2EAA2E;AAC3E,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,EACZ,WAAW,qBAAgB,GAC1B,MAAM,CA+BR"}
|
|
@@ -1,11 +1,54 @@
|
|
|
1
1
|
import { fileAddressFor } from '@deepseek-ai/dsh-util-workspace-path';
|
|
2
|
-
|
|
3
|
-
export
|
|
2
|
+
import { isWindowsPath, stripExtendedWindowsPrefix } from '../../../contract/windows-path.js';
|
|
3
|
+
export class GitFileAddressError extends Error {
|
|
4
|
+
code = 'GIT_FILE_OUTSIDE_SESSION';
|
|
5
|
+
}
|
|
6
|
+
function absoluteDirectory(value) {
|
|
7
|
+
const absolute = stripExtendedWindowsPrefix(value).replace(/\\/g, '/');
|
|
8
|
+
if (!absolute.startsWith('/') && !/^[A-Za-z]:\//u.test(absolute)) {
|
|
9
|
+
throw new GitFileAddressError('Workspace directory, Git root and Session cwd must be absolute');
|
|
10
|
+
}
|
|
11
|
+
const normalized = absolute.replace(/\/+$/u, '');
|
|
12
|
+
if (normalized.split('/').some((segment) => segment === '.' || segment === '..')) {
|
|
13
|
+
throw new GitFileAddressError('Ambiguous directory path');
|
|
14
|
+
}
|
|
15
|
+
return normalized;
|
|
16
|
+
}
|
|
17
|
+
/** Resolve Workspace-relative Git paths against the actual Session cwd. */
|
|
18
|
+
export function buildSessionFileAddress(sessionId, path, workspacePath, cwd, gitRootPath = workspacePath) {
|
|
4
19
|
const normalized = path.replace(/\\/g, '/').replace(/^(?:\.\/)+/, '');
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
20
|
+
if (!normalized || normalized.startsWith('/') || /^[A-Za-z]:/u.test(normalized) ||
|
|
21
|
+
normalized.includes('\0') || normalized.split('/').some((segment) => segment === '.' || segment === '')) {
|
|
22
|
+
throw new GitFileAddressError('Expected a Workspace-relative Git file path');
|
|
23
|
+
}
|
|
24
|
+
if (workspacePath === undefined) {
|
|
25
|
+
if (normalized.split('/').includes('..'))
|
|
26
|
+
throw new GitFileAddressError('Workspace directory is required');
|
|
27
|
+
return fileAddressFor(sessionId, cwd, normalized);
|
|
28
|
+
}
|
|
29
|
+
const root = absoluteDirectory(workspacePath);
|
|
30
|
+
const sessionRoot = absoluteDirectory(cwd ?? workspacePath);
|
|
31
|
+
const checkoutRoot = absoluteDirectory(gitRootPath ?? workspacePath);
|
|
32
|
+
const parts = root.split('/');
|
|
33
|
+
const rootSegments = root.startsWith('//') ? 4 : 1;
|
|
34
|
+
for (const segment of normalized.split('/')) {
|
|
35
|
+
if (segment === '..') {
|
|
36
|
+
if (parts.length <= rootSegments)
|
|
37
|
+
throw new GitFileAddressError('Path escapes the filesystem root');
|
|
38
|
+
parts.pop();
|
|
39
|
+
}
|
|
40
|
+
else
|
|
41
|
+
parts.push(segment);
|
|
42
|
+
}
|
|
43
|
+
const target = parts.join('/');
|
|
44
|
+
const windows = isWindowsPath(workspacePath) || isWindowsPath(cwd ?? workspacePath) || root.startsWith('//');
|
|
45
|
+
const identity = (value) => windows ? value.toLowerCase() : value;
|
|
46
|
+
if (!identity(target).startsWith(identity(checkoutRoot) + '/') ||
|
|
47
|
+
!identity(target).startsWith(identity(sessionRoot) + '/')) {
|
|
48
|
+
throw new GitFileAddressError('The changed file is outside the Session working directory');
|
|
49
|
+
}
|
|
50
|
+
// Compute the relative path explicitly so Windows casing and extended prefixes
|
|
51
|
+
// cannot make the native lexical helper emit an accidental absolute address.
|
|
52
|
+
return fileAddressFor(sessionId, cwd, target.slice(sessionRoot.length + 1));
|
|
10
53
|
}
|
|
11
54
|
//# sourceMappingURL=file-address.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-address.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"file-address.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export function normalizeBranch(branch) {
|
|
|
14
14
|
/** A baseline equal to the current Worktree branch is not a usable default. */
|
|
15
15
|
export function normalizeBaselineBranch(value, currentBranch) {
|
|
16
16
|
const baseline = normalizeBranch(value);
|
|
17
|
-
return baseline === undefined || baseline === currentBranch ? undefined : baseline;
|
|
17
|
+
return baseline === undefined || baseline === currentBranch || baseline === 'refs/heads/' + currentBranch ? undefined : baseline;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Sum the known text-file additions/deletions. Binary files have no line
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-facts.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/git-facts.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,OAAO,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAClC,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AACtF,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,aAAiC;IAEjC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"git-facts.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/git-facts.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,OAAO,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAClC,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AACtF,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,aAAiC;IAEjC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnI,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAwC;IACpE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS;QAC3E,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAC5B,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAC5B,UAAU,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACrF,CAAC"}
|
|
@@ -4,9 +4,11 @@ export type { GitLoadable } from './git-state-cache.js';
|
|
|
4
4
|
export type WorktreeGitView = 'commits' | 'summary';
|
|
5
5
|
export interface WorktreeGitState {
|
|
6
6
|
readonly branches: GitLoadable<readonly BranchRecord[]>;
|
|
7
|
-
/**
|
|
7
|
+
/** Selected comparison branch; Main uses direct history when undefined. */
|
|
8
8
|
readonly baselineBranch?: string;
|
|
9
9
|
readonly history: GitLoadable<WorktreeGitHistory>;
|
|
10
|
+
readonly loadingMore: boolean;
|
|
11
|
+
readonly loadMoreError?: Error;
|
|
10
12
|
readonly view: WorktreeGitView;
|
|
11
13
|
/** Whether the summary target includes the live working tree. */
|
|
12
14
|
readonly includeWorkingTree: boolean;
|
|
@@ -23,8 +25,11 @@ export interface WorktreeGitState {
|
|
|
23
25
|
export interface WorktreeGitStateController {
|
|
24
26
|
readonly getSnapshot: () => WorktreeGitState;
|
|
25
27
|
readonly subscribe: (listener: () => void) => () => void;
|
|
26
|
-
readonly loadBranches: () => Promise<void>;
|
|
28
|
+
readonly loadBranches: (refresh?: boolean) => Promise<void>;
|
|
29
|
+
readonly readFreshBranches: () => Promise<readonly BranchRecord[]>;
|
|
30
|
+
readonly acceptBranches: (branches: readonly BranchRecord[]) => void;
|
|
27
31
|
readonly loadHistory: () => Promise<void>;
|
|
32
|
+
readonly loadMore: () => Promise<void>;
|
|
28
33
|
readonly refresh: () => Promise<void>;
|
|
29
34
|
readonly selectBaselineBranch: (branch: string | undefined) => void;
|
|
30
35
|
readonly selectView: (view: WorktreeGitView) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWorktreeGitState.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/useWorktreeGitState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAepC,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,sBAAsB,CAAC;AAEnE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;IACxD,
|
|
1
|
+
{"version":3,"file":"useWorktreeGitState.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/useWorktreeGitState.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ function emptyState(defaultBaselineBranch, main) {
|
|
|
17
17
|
branches: { status: 'idle' },
|
|
18
18
|
baselineBranch: normalizeBranch(defaultBaselineBranch),
|
|
19
19
|
history: { status: 'idle' },
|
|
20
|
+
loadingMore: false,
|
|
20
21
|
view: main ? 'commits' : 'summary',
|
|
21
22
|
includeWorkingTree: false,
|
|
22
23
|
selectedCommits: [],
|
|
@@ -35,7 +36,7 @@ export function createWorktreeGitStateController(input) {
|
|
|
35
36
|
const main = isMainWorktreeId(input.worktreeId);
|
|
36
37
|
const capturedBaseline = input.capturedBaseline === true;
|
|
37
38
|
const canRead = (baselineBranch) => main || capturedBaseline || baselineBranch !== undefined;
|
|
38
|
-
let state = emptyState(input.defaultBaselineBranch, main);
|
|
39
|
+
let state = emptyState(main ? undefined : input.defaultBaselineBranch, main);
|
|
39
40
|
let disposed = false;
|
|
40
41
|
let branchesLoaded = false;
|
|
41
42
|
let branchesRequest = 0;
|
|
@@ -45,6 +46,7 @@ export function createWorktreeGitStateController(input) {
|
|
|
45
46
|
let diffRequest = 0;
|
|
46
47
|
let branchesInFlight;
|
|
47
48
|
let historyInFlight;
|
|
49
|
+
let moreInFlight;
|
|
48
50
|
const filesInFlight = new Map();
|
|
49
51
|
const diffInFlight = new Map();
|
|
50
52
|
const listeners = new Set();
|
|
@@ -269,7 +271,7 @@ export function createWorktreeGitStateController(input) {
|
|
|
269
271
|
});
|
|
270
272
|
};
|
|
271
273
|
const selectBaselineBranch = (branch) => {
|
|
272
|
-
if (disposed
|
|
274
|
+
if (disposed)
|
|
273
275
|
return;
|
|
274
276
|
const nextBranch = normalizeBranch(branch);
|
|
275
277
|
if (state.baselineBranch === nextBranch)
|
|
@@ -278,6 +280,7 @@ export function createWorktreeGitStateController(input) {
|
|
|
278
280
|
++filesRequest;
|
|
279
281
|
++diffRequest;
|
|
280
282
|
historyInFlight = undefined;
|
|
283
|
+
moreInFlight = undefined;
|
|
281
284
|
historyLoaded = false;
|
|
282
285
|
filesInFlight.clear();
|
|
283
286
|
diffInFlight.clear();
|
|
@@ -286,28 +289,31 @@ export function createWorktreeGitStateController(input) {
|
|
|
286
289
|
update({
|
|
287
290
|
...state,
|
|
288
291
|
baselineBranch: nextBranch,
|
|
289
|
-
|
|
290
|
-
|
|
292
|
+
...(!canRead(nextBranch) ? {
|
|
293
|
+
history: { status: 'ready', value: {
|
|
294
|
+
commits: [], truncated: false, unavailableReason: 'baseline-unselected',
|
|
295
|
+
} },
|
|
296
|
+
files: { status: 'idle' }, selectedPath: undefined, diff: { status: 'idle' },
|
|
297
|
+
} : {}),
|
|
298
|
+
loadingMore: false,
|
|
299
|
+
loadMoreError: undefined,
|
|
300
|
+
view: main && nextBranch === undefined ? 'commits' : 'summary',
|
|
291
301
|
selectedCommit: undefined,
|
|
292
302
|
selectedCommits: [],
|
|
293
|
-
files: { status: 'idle' },
|
|
294
|
-
selectedPath: undefined,
|
|
295
|
-
diff: { status: 'idle' },
|
|
296
303
|
});
|
|
297
|
-
// Clearing
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
void loadHistory();
|
|
304
|
+
// Clearing a selection reads Main history or the captured Worktree baseline.
|
|
305
|
+
if (canRead(nextBranch))
|
|
306
|
+
void loadHistory(true);
|
|
301
307
|
};
|
|
302
308
|
const selectSummary = () => {
|
|
303
|
-
if (disposed || main || !canRead(state.baselineBranch))
|
|
309
|
+
if (disposed || (main && state.baselineBranch === undefined) || !canRead(state.baselineBranch))
|
|
304
310
|
return;
|
|
305
311
|
const target = { kind: 'selection', selection: summarySelection(state.includeWorkingTree) };
|
|
306
312
|
resetTarget({ view: 'summary', selectedCommit: undefined, selectedCommits: [] });
|
|
307
313
|
void loadFiles(target);
|
|
308
314
|
};
|
|
309
315
|
const setIncludeWorkingTree = (includeWorkingTree) => {
|
|
310
|
-
if (disposed || main || state.includeWorkingTree === includeWorkingTree)
|
|
316
|
+
if (disposed || (main && state.baselineBranch === undefined) || state.includeWorkingTree === includeWorkingTree)
|
|
311
317
|
return;
|
|
312
318
|
if (state.view !== 'summary' || !canRead(state.baselineBranch)) {
|
|
313
319
|
update({ ...state, includeWorkingTree });
|
|
@@ -415,7 +421,7 @@ export function createWorktreeGitStateController(input) {
|
|
|
415
421
|
void loadDiff(target, selectedPath, changedFile.path);
|
|
416
422
|
};
|
|
417
423
|
const loadBranches = (refresh = false) => {
|
|
418
|
-
if (disposed
|
|
424
|
+
if (disposed)
|
|
419
425
|
return Promise.resolve();
|
|
420
426
|
if (branchesInFlight !== undefined)
|
|
421
427
|
return branchesInFlight;
|
|
@@ -479,6 +485,8 @@ export function createWorktreeGitStateController(input) {
|
|
|
479
485
|
return Promise.resolve();
|
|
480
486
|
const baselineBranch = state.baselineBranch;
|
|
481
487
|
const request = ++historyRequest;
|
|
488
|
+
moreInFlight = undefined;
|
|
489
|
+
update({ ...state, loadingMore: false, loadMoreError: undefined });
|
|
482
490
|
const previous = state.history;
|
|
483
491
|
const refreshesWorkingTree = refresh && state.selectedCommit === WORKTREE_GIT_WORKING_TREE;
|
|
484
492
|
if (refresh) {
|
|
@@ -557,7 +565,7 @@ export function createWorktreeGitStateController(input) {
|
|
|
557
565
|
const target = nextSelectedCommit !== WORKTREE_GIT_WORKING_TREE && selectedCommits.length > 1
|
|
558
566
|
? { kind: 'selection', selection: { kind: 'commits', commits: selectedCommits } }
|
|
559
567
|
: { kind: 'commit', commit: nextSelectedCommit };
|
|
560
|
-
void loadFiles(target,
|
|
568
|
+
void loadFiles(target, refresh);
|
|
561
569
|
}
|
|
562
570
|
}
|
|
563
571
|
catch (error) {
|
|
@@ -583,19 +591,72 @@ export function createWorktreeGitStateController(input) {
|
|
|
583
591
|
historyInFlight = promise;
|
|
584
592
|
return promise;
|
|
585
593
|
};
|
|
594
|
+
const loadMore = () => {
|
|
595
|
+
if (moreInFlight !== undefined)
|
|
596
|
+
return moreInFlight;
|
|
597
|
+
if (disposed || historyInFlight !== undefined || state.history.status !== 'ready' ||
|
|
598
|
+
state.history.refreshing || state.history.value.nextOffset === undefined)
|
|
599
|
+
return Promise.resolve();
|
|
600
|
+
const previous = state.history.value;
|
|
601
|
+
const baselineBranch = state.baselineBranch;
|
|
602
|
+
const request = historyRequest;
|
|
603
|
+
update({ ...state, loadingMore: true, loadMoreError: undefined });
|
|
604
|
+
const run = async () => {
|
|
605
|
+
try {
|
|
606
|
+
const page = await input.manager.listWorktreeCommits({
|
|
607
|
+
workspaceId: input.workspaceId, worktreeId: input.worktreeId,
|
|
608
|
+
baseBranch: baselineBranch, offset: previous.nextOffset,
|
|
609
|
+
expectedHeadCommit: previous.headCommit,
|
|
610
|
+
expectedBaselineCommit: previous.baseline?.commit,
|
|
611
|
+
});
|
|
612
|
+
if (disposed || request !== historyRequest || baselineBranch !== state.baselineBranch)
|
|
613
|
+
return;
|
|
614
|
+
if (page.headCommit !== previous.headCommit || page.baseline?.commit !== previous.baseline?.commit ||
|
|
615
|
+
page.unavailableReason !== undefined)
|
|
616
|
+
throw Object.assign(new Error('Git history changed; refresh before loading more'), { code: 'WORKTREE_STATE_CONFLICT' });
|
|
617
|
+
const existing = new Set(previous.commits.map((commit) => commit.sha));
|
|
618
|
+
update({ ...state, loadingMore: false, history: { status: 'ready', value: {
|
|
619
|
+
...page, commits: [...previous.commits, ...page.commits.filter((commit) => !existing.has(commit.sha))],
|
|
620
|
+
} } });
|
|
621
|
+
}
|
|
622
|
+
catch (error) {
|
|
623
|
+
if (disposed || request !== historyRequest || baselineBranch !== state.baselineBranch)
|
|
624
|
+
return;
|
|
625
|
+
update({ ...state, loadingMore: false, loadMoreError: asError(error) });
|
|
626
|
+
}
|
|
627
|
+
};
|
|
628
|
+
const promise = run().finally(() => {
|
|
629
|
+
if (moreInFlight === promise)
|
|
630
|
+
moreInFlight = undefined;
|
|
631
|
+
});
|
|
632
|
+
moreInFlight = promise;
|
|
633
|
+
return promise;
|
|
634
|
+
};
|
|
586
635
|
const controller = {
|
|
587
636
|
getSnapshot: () => state,
|
|
588
637
|
subscribe: (listener) => {
|
|
589
638
|
listeners.add(listener);
|
|
590
639
|
return () => listeners.delete(listener);
|
|
591
640
|
},
|
|
592
|
-
loadBranches
|
|
641
|
+
loadBranches,
|
|
642
|
+
readFreshBranches: async () => {
|
|
643
|
+
await loadBranches(true);
|
|
644
|
+
const branches = state.branches;
|
|
645
|
+
if (branches.status === 'error' || (branches.status === 'ready' && branches.error))
|
|
646
|
+
throw branches.error;
|
|
647
|
+
return branches.status === 'ready' ? branches.value : [];
|
|
648
|
+
},
|
|
593
649
|
loadHistory: () => loadHistory(false),
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
650
|
+
loadMore,
|
|
651
|
+
acceptBranches: (branches) => {
|
|
652
|
+
if (disposed)
|
|
653
|
+
return;
|
|
654
|
+
++branchesRequest;
|
|
655
|
+
branchesLoaded = true;
|
|
656
|
+
branchesInFlight = undefined;
|
|
657
|
+
update({ ...state, branches: { status: 'ready', value: branches } });
|
|
598
658
|
},
|
|
659
|
+
refresh: () => loadHistory(true),
|
|
599
660
|
selectBaselineBranch,
|
|
600
661
|
selectView,
|
|
601
662
|
selectSummary,
|
|
@@ -629,14 +690,16 @@ export function useWorktreeGitState(input) {
|
|
|
629
690
|
]);
|
|
630
691
|
const snapshot = useSyncExternalStore(controller.subscribe, controller.getSnapshot, controller.getSnapshot);
|
|
631
692
|
useEffect(() => {
|
|
632
|
-
void controller.loadBranches();
|
|
633
693
|
void controller.loadHistory();
|
|
634
694
|
return controller.dispose;
|
|
635
695
|
}, [controller]);
|
|
636
696
|
return {
|
|
637
697
|
...snapshot,
|
|
638
698
|
loadBranches: controller.loadBranches,
|
|
699
|
+
readFreshBranches: controller.readFreshBranches,
|
|
700
|
+
acceptBranches: controller.acceptBranches,
|
|
639
701
|
loadHistory: controller.loadHistory,
|
|
702
|
+
loadMore: controller.loadMore,
|
|
640
703
|
refresh: controller.refresh,
|
|
641
704
|
selectBaselineBranch: controller.selectBaselineBranch,
|
|
642
705
|
selectView: controller.selectView,
|