@cerbur/clutch-dsh-worktree 0.1.16 → 0.1.17
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 +214 -15
- package/README.zh.md +175 -12
- package/assets/screenshots/screenshots-dashboard.png +0 -0
- package/assets/screenshots/screenshots-en.png +0 -0
- package/assets/screenshots/screenshots-git-reviewer.png +0 -0
- package/assets/screenshots/screenshots-import.png +0 -0
- package/assets/screenshots/screenshots-worktree-tool.png +0 -0
- package/assets/screenshots/screenshots-zh.png +0 -0
- package/cordis.patch.yml +6 -19
- package/lib/client/WorktreeSurface.d.ts.map +1 -1
- package/lib/client/WorktreeSurface.js +5 -4
- package/lib/client/WorktreeSurface.js.map +1 -1
- package/lib/client/command-activity.d.ts +11 -0
- package/lib/client/command-activity.d.ts.map +1 -0
- package/lib/client/command-activity.js +71 -0
- package/lib/client/command-activity.js.map +1 -0
- package/lib/client/dashboard/DashboardRequest.d.ts +2 -1
- package/lib/client/dashboard/DashboardRequest.d.ts.map +1 -1
- package/lib/client/dashboard/DashboardRequest.js +3 -3
- package/lib/client/dashboard/DashboardRequest.js.map +1 -1
- package/lib/client/dashboard/WorktreeDashboard.d.ts +2 -1
- package/lib/client/dashboard/WorktreeDashboard.d.ts.map +1 -1
- package/lib/client/dashboard/WorktreeDashboard.js +48 -24
- package/lib/client/dashboard/WorktreeDashboard.js.map +1 -1
- package/lib/client/dashboard/WorktreeInstructions.d.ts +2 -1
- package/lib/client/dashboard/WorktreeInstructions.d.ts.map +1 -1
- package/lib/client/dashboard/WorktreeInstructions.js +27 -8
- package/lib/client/dashboard/WorktreeInstructions.js.map +1 -1
- package/lib/client/dashboard/dashboard-overlay.d.ts.map +1 -1
- package/lib/client/dashboard/dashboard-overlay.js +38 -52
- package/lib/client/dashboard/dashboard-overlay.js.map +1 -1
- package/lib/client/dashboard/dashboard-selection.d.ts +1 -0
- package/lib/client/dashboard/dashboard-selection.d.ts.map +1 -1
- package/lib/client/dashboard/dashboard-selection.js.map +1 -1
- package/lib/client/dashboard/git/WorktreeGitPanel.d.ts +2 -1
- package/lib/client/dashboard/git/WorktreeGitPanel.d.ts.map +1 -1
- package/lib/client/dashboard/git/WorktreeGitPanel.js +54 -8
- package/lib/client/dashboard/git/WorktreeGitPanel.js.map +1 -1
- package/lib/client/dashboard/git/file-address.d.ts +2 -1
- package/lib/client/dashboard/git/file-address.d.ts.map +1 -1
- package/lib/client/dashboard/git/file-address.js +8 -13
- package/lib/client/dashboard/git/file-address.js.map +1 -1
- package/lib/client/dashboard/git/useWorktreeGitState.d.ts.map +1 -1
- package/lib/client/dashboard/git/useWorktreeGitState.js +4 -1
- 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 +3 -1
- package/lib/client/dsh-icons.js.map +1 -1
- package/lib/client/dsh-slot-contract.d.ts +9 -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 +39 -2
- package/lib/client/entry.js.map +1 -1
- package/lib/client/layout/app-frame.d.ts +12 -0
- package/lib/client/layout/app-frame.d.ts.map +1 -0
- package/lib/client/layout/app-frame.js +82 -0
- package/lib/client/layout/app-frame.js.map +1 -0
- package/lib/client/locales.d.ts +144 -0
- package/lib/client/locales.d.ts.map +1 -1
- package/lib/client/locales.js +204 -60
- package/lib/client/locales.js.map +1 -1
- package/lib/client/overlay/overlay-bounds.d.ts.map +1 -1
- package/lib/client/overlay/overlay-bounds.js +8 -3
- package/lib/client/overlay/overlay-bounds.js.map +1 -1
- package/lib/client/overlay/sidebar-overlay-geometry.d.ts +3 -1
- package/lib/client/overlay/sidebar-overlay-geometry.d.ts.map +1 -1
- package/lib/client/overlay/sidebar-overlay-geometry.js +94 -34
- package/lib/client/overlay/sidebar-overlay-geometry.js.map +1 -1
- package/lib/client/restart-notice.d.ts +10 -3
- package/lib/client/restart-notice.d.ts.map +1 -1
- package/lib/client/restart-notice.js +44 -11
- package/lib/client/restart-notice.js.map +1 -1
- package/lib/client/session/session-view.d.ts +16 -2
- package/lib/client/session/session-view.d.ts.map +1 -1
- package/lib/client/session/session-view.js +24 -10
- package/lib/client/session/session-view.js.map +1 -1
- package/lib/client/session/worktree-session.d.ts +1 -0
- package/lib/client/session/worktree-session.d.ts.map +1 -1
- package/lib/client/session/worktree-session.js +3 -1
- package/lib/client/session/worktree-session.js.map +1 -1
- package/lib/client/settings/ToolSettings.d.ts +9 -0
- package/lib/client/settings/ToolSettings.d.ts.map +1 -0
- package/lib/client/settings/ToolSettings.js +77 -0
- package/lib/client/settings/ToolSettings.js.map +1 -0
- package/lib/client/settings/WorktreeSettings.d.ts +8 -0
- package/lib/client/settings/WorktreeSettings.d.ts.map +1 -0
- package/lib/client/settings/WorktreeSettings.js +46 -0
- package/lib/client/settings/WorktreeSettings.js.map +1 -0
- package/lib/client/settings/WorktreeSettingsNavIcon.d.ts +6 -0
- package/lib/client/settings/WorktreeSettingsNavIcon.d.ts.map +1 -0
- package/lib/client/settings/WorktreeSettingsNavIcon.js +51 -0
- package/lib/client/settings/WorktreeSettingsNavIcon.js.map +1 -0
- package/lib/client/settings/diagnostics.d.ts +24 -0
- package/lib/client/settings/diagnostics.d.ts.map +1 -0
- package/lib/client/settings/diagnostics.js +63 -0
- package/lib/client/settings/diagnostics.js.map +1 -0
- package/lib/client/settings/settings-navigation.d.ts +7 -0
- package/lib/client/settings/settings-navigation.d.ts.map +1 -0
- package/lib/client/settings/settings-navigation.js +12 -0
- package/lib/client/settings/settings-navigation.js.map +1 -0
- package/lib/client/surface/actions/useLifecycleActions.d.ts +2 -1
- package/lib/client/surface/actions/useLifecycleActions.d.ts.map +1 -1
- package/lib/client/surface/actions/useLifecycleActions.js +14 -5
- package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
- package/lib/client/surface/actions/useSessionActions.d.ts.map +1 -1
- package/lib/client/surface/actions/useSessionActions.js +6 -6
- package/lib/client/surface/actions/useSessionActions.js.map +1 -1
- package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
- package/lib/client/surface/actions/useWorktreeRegistration.js +4 -2
- package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
- package/lib/client/surface/components/NotificationToasts.d.ts +19 -3
- package/lib/client/surface/components/NotificationToasts.d.ts.map +1 -1
- package/lib/client/surface/components/NotificationToasts.js +73 -7
- package/lib/client/surface/components/NotificationToasts.js.map +1 -1
- package/lib/client/surface/components/OverlayScrollbar.d.ts +6 -0
- package/lib/client/surface/components/OverlayScrollbar.d.ts.map +1 -0
- package/lib/client/surface/components/OverlayScrollbar.js +84 -0
- package/lib/client/surface/components/OverlayScrollbar.js.map +1 -0
- package/lib/client/surface/components/RestartToast.d.ts.map +1 -1
- package/lib/client/surface/components/RestartToast.js +4 -3
- package/lib/client/surface/components/RestartToast.js.map +1 -1
- package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
- package/lib/client/surface/components/SurfaceContent.js +110 -39
- package/lib/client/surface/components/SurfaceContent.js.map +1 -1
- package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -1
- package/lib/client/surface/components/WorkspaceTree.js +2 -1
- package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
- package/lib/client/surface/components/dialogs.d.ts.map +1 -1
- package/lib/client/surface/components/dialogs.js +14 -10
- package/lib/client/surface/components/dialogs.js.map +1 -1
- package/lib/client/surface/components/rows.d.ts +1 -1
- package/lib/client/surface/components/rows.d.ts.map +1 -1
- package/lib/client/surface/components/rows.js +15 -97
- package/lib/client/surface/components/rows.js.map +1 -1
- package/lib/client/surface/notification-queue.d.ts +15 -0
- package/lib/client/surface/notification-queue.d.ts.map +1 -1
- package/lib/client/surface/notification-queue.js +13 -2
- package/lib/client/surface/notification-queue.js.map +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.d.ts +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceRefresh.js +13 -1
- package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.d.ts +1 -1
- package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.js +4 -2
- package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
- package/lib/client/surface/state/useTitleMarquee.d.ts +7 -0
- package/lib/client/surface/state/useTitleMarquee.d.ts.map +1 -0
- package/lib/client/surface/state/useTitleMarquee.js +60 -0
- package/lib/client/surface/state/useTitleMarquee.js.map +1 -0
- package/lib/client/surface/types.d.ts +8 -1
- 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 +69 -14
- package/lib/client/view/worktree-error-copy.js.map +1 -1
- package/lib/client/view/worktree-view-errors.d.ts.map +1 -1
- package/lib/client/view/worktree-view-errors.js +13 -5
- package/lib/client/view/worktree-view-errors.js.map +1 -1
- package/lib/client/worktree-connection.d.ts +6 -2
- package/lib/client/worktree-connection.d.ts.map +1 -1
- package/lib/client/worktree-connection.js +6 -0
- package/lib/client/worktree-connection.js.map +1 -1
- package/lib/client/worktree-tool-changes.d.ts +13 -0
- package/lib/client/worktree-tool-changes.d.ts.map +1 -0
- package/lib/client/worktree-tool-changes.js +64 -0
- package/lib/client/worktree-tool-changes.js.map +1 -0
- package/lib/client.js +2188 -947
- package/lib/client.js.map +1 -1
- package/lib/contract/index.d.ts +11 -1
- package/lib/contract/index.d.ts.map +1 -1
- package/lib/contract/index.js +9 -0
- package/lib/contract/index.js.map +1 -1
- package/lib/contract/tool-settings.d.ts +28 -0
- package/lib/contract/tool-settings.d.ts.map +1 -0
- package/lib/contract/tool-settings.js +10 -0
- package/lib/contract/tool-settings.js.map +1 -0
- package/lib/contract/worktree-tool-changes.d.ts +10 -0
- package/lib/contract/worktree-tool-changes.d.ts.map +1 -0
- package/lib/contract/worktree-tool-changes.js +2 -0
- package/lib/contract/worktree-tool-changes.js.map +1 -0
- package/lib/host/permission-preset-append.d.ts +15 -0
- package/lib/host/permission-preset-append.d.ts.map +1 -0
- package/lib/host/permission-preset-append.js +63 -0
- package/lib/host/permission-preset-append.js.map +1 -0
- package/lib/host/service.d.ts +17 -0
- package/lib/host/service.d.ts.map +1 -1
- package/lib/host/service.js +67 -11
- package/lib/host/service.js.map +1 -1
- package/lib/host/tool-settings.d.ts +14 -0
- package/lib/host/tool-settings.d.ts.map +1 -0
- package/lib/host/tool-settings.js +98 -0
- package/lib/host/tool-settings.js.map +1 -0
- package/lib/host/worktree-permission-manager.d.ts.map +1 -1
- package/lib/host/worktree-permission-manager.js +2 -4
- package/lib/host/worktree-permission-manager.js.map +1 -1
- package/lib/host/worktree-tool-changes.d.ts +12 -0
- package/lib/host/worktree-tool-changes.d.ts.map +1 -0
- package/lib/host/worktree-tool-changes.js +60 -0
- package/lib/host/worktree-tool-changes.js.map +1 -0
- package/lib/manage/manager-git-history.d.ts.map +1 -1
- package/lib/manage/manager-git-history.js +29 -28
- package/lib/manage/manager-git-history.js.map +1 -1
- package/lib/manage/manager-sessions.d.ts +5 -0
- package/lib/manage/manager-sessions.d.ts.map +1 -1
- package/lib/manage/manager-sessions.js +34 -11
- package/lib/manage/manager-sessions.js.map +1 -1
- package/lib/manage/manager-support.d.ts +3 -1
- package/lib/manage/manager-support.d.ts.map +1 -1
- package/lib/manage/manager-support.js +17 -0
- package/lib/manage/manager-support.js.map +1 -1
- package/lib/manage/manager-worktree-lifecycle.d.ts.map +1 -1
- package/lib/manage/manager-worktree-lifecycle.js +5 -4
- package/lib/manage/manager-worktree-lifecycle.js.map +1 -1
- package/lib/manage/manager-worktrees.d.ts +1 -0
- package/lib/manage/manager-worktrees.d.ts.map +1 -1
- package/lib/manage/manager-worktrees.js +74 -22
- package/lib/manage/manager-worktrees.js.map +1 -1
- package/lib/manage/manager.d.ts +10 -0
- package/lib/manage/manager.d.ts.map +1 -1
- package/lib/manage/manager.js +12 -1
- package/lib/manage/manager.js.map +1 -1
- package/lib/manage/types.d.ts +10 -1
- package/lib/manage/types.d.ts.map +1 -1
- package/lib/provider/generated-name.d.ts.map +1 -1
- package/lib/provider/generated-name.js +5 -4
- package/lib/provider/generated-name.js.map +1 -1
- package/lib/provider/git/adapter.d.ts.map +1 -1
- package/lib/provider/git/adapter.js +5 -2
- package/lib/provider/git/adapter.js.map +1 -1
- package/lib/provider/mutation-token.d.ts +1 -1
- package/lib/provider/mutation-token.d.ts.map +1 -1
- package/lib/provider/mutation-token.js +1 -0
- package/lib/provider/mutation-token.js.map +1 -1
- package/lib/provider/sidecar/repository.d.ts.map +1 -1
- package/lib/provider/sidecar/repository.js +1 -0
- 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 +24 -4
- package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
- package/lib/provider/transaction/operations/adopt-branch.d.ts.map +1 -1
- package/lib/provider/transaction/operations/adopt-branch.js +6 -5
- package/lib/provider/transaction/operations/adopt-branch.js.map +1 -1
- package/lib/provider/transaction/operations/clean.d.ts.map +1 -1
- package/lib/provider/transaction/operations/clean.js +20 -19
- package/lib/provider/transaction/operations/clean.js.map +1 -1
- package/lib/provider/transaction/operations/create.d.ts +1 -1
- package/lib/provider/transaction/operations/create.d.ts.map +1 -1
- package/lib/provider/transaction/operations/create.js +23 -13
- package/lib/provider/transaction/operations/create.js.map +1 -1
- package/lib/provider/transaction/operations/import.d.ts.map +1 -1
- package/lib/provider/transaction/operations/import.js +7 -1
- package/lib/provider/transaction/operations/import.js.map +1 -1
- package/lib/provider/transaction/operations/remove.d.ts.map +1 -1
- package/lib/provider/transaction/operations/remove.js +20 -19
- package/lib/provider/transaction/operations/remove.js.map +1 -1
- package/lib/provider/transaction/recovery/failure-recovery.d.ts.map +1 -1
- package/lib/provider/transaction/recovery/failure-recovery.js +19 -18
- 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 +6 -2
- package/lib/provider/transaction/recovery/recover.js.map +1 -1
- package/lib/provider/transaction/support/inspection.d.ts.map +1 -1
- package/lib/provider/transaction/support/inspection.js +3 -2
- package/lib/provider/transaction/support/inspection.js.map +1 -1
- package/lib/provider/transaction/support/journal.d.ts.map +1 -1
- package/lib/provider/transaction/support/journal.js +8 -5
- package/lib/provider/transaction/support/journal.js.map +1 -1
- package/lib/provider/transaction/support/path-safety.d.ts.map +1 -1
- package/lib/provider/transaction/support/path-safety.js +4 -3
- package/lib/provider/transaction/support/path-safety.js.map +1 -1
- package/lib/provider/transaction/types.d.ts +2 -1
- package/lib/provider/transaction/types.d.ts.map +1 -1
- package/lib/provider/types.d.ts +3 -1
- package/lib/provider/types.d.ts.map +1 -1
- package/lib/provider/types.js +1 -1
- package/lib/provider/types.js.map +1 -1
- package/lib/provider/worktree-path.d.ts +10 -0
- package/lib/provider/worktree-path.d.ts.map +1 -0
- package/lib/provider/worktree-path.js +47 -0
- package/lib/provider/worktree-path.js.map +1 -0
- package/lib/tool/context.d.ts +14 -0
- package/lib/tool/context.d.ts.map +1 -0
- package/lib/tool/context.js +95 -0
- package/lib/tool/context.js.map +1 -0
- package/lib/tool/delegation.d.ts +41 -0
- package/lib/tool/delegation.d.ts.map +1 -0
- package/lib/tool/delegation.js +196 -0
- package/lib/tool/delegation.js.map +1 -0
- package/lib/tool/errors.d.ts +3 -0
- package/lib/tool/errors.d.ts.map +1 -0
- package/lib/tool/errors.js +63 -0
- package/lib/tool/errors.js.map +1 -0
- package/lib/tool/guidance.d.ts +5 -0
- package/lib/tool/guidance.d.ts.map +1 -0
- package/lib/tool/guidance.js +48 -0
- package/lib/tool/guidance.js.map +1 -0
- package/lib/tool/history.d.ts +27 -0
- package/lib/tool/history.d.ts.map +1 -0
- package/lib/tool/history.js +157 -0
- package/lib/tool/history.js.map +1 -0
- package/lib/tool/index.d.ts +8 -0
- package/lib/tool/index.d.ts.map +1 -0
- package/lib/tool/index.js +296 -0
- package/lib/tool/index.js.map +1 -0
- package/lib/tool/inputs.d.ts +12 -0
- package/lib/tool/inputs.d.ts.map +1 -0
- package/lib/tool/inputs.js +24 -0
- package/lib/tool/inputs.js.map +1 -0
- package/lib/tool/list-models.d.ts +3 -0
- package/lib/tool/list-models.d.ts.map +1 -0
- package/lib/tool/list-models.js +38 -0
- package/lib/tool/list-models.js.map +1 -0
- package/lib/tool/list-sessions.d.ts +3 -0
- package/lib/tool/list-sessions.d.ts.map +1 -0
- package/lib/tool/list-sessions.js +70 -0
- package/lib/tool/list-sessions.js.map +1 -0
- package/lib/tool/list-worktrees.d.ts +3 -0
- package/lib/tool/list-worktrees.d.ts.map +1 -0
- package/lib/tool/list-worktrees.js +39 -0
- package/lib/tool/list-worktrees.js.map +1 -0
- package/lib/tool/native-session.d.ts +74 -0
- package/lib/tool/native-session.d.ts.map +1 -0
- package/lib/tool/native-session.js +248 -0
- package/lib/tool/native-session.js.map +1 -0
- package/lib/tool/new-worktree.d.ts +3 -0
- package/lib/tool/new-worktree.d.ts.map +1 -0
- package/lib/tool/new-worktree.js +81 -0
- package/lib/tool/new-worktree.js.map +1 -0
- package/lib/tool/outputs.d.ts +50 -0
- package/lib/tool/outputs.d.ts.map +1 -0
- package/lib/tool/outputs.js +65 -0
- package/lib/tool/outputs.js.map +1 -0
- package/lib/tool/report-result.d.ts +3 -0
- package/lib/tool/report-result.d.ts.map +1 -0
- package/lib/tool/report-result.js +83 -0
- package/lib/tool/report-result.js.map +1 -0
- package/lib/tool/schema.d.ts +7 -0
- package/lib/tool/schema.d.ts.map +1 -0
- package/lib/tool/schema.js +92 -0
- package/lib/tool/schema.js.map +1 -0
- package/lib/tool/send-message.d.ts +3 -0
- package/lib/tool/send-message.d.ts.map +1 -0
- package/lib/tool/send-message.js +64 -0
- package/lib/tool/send-message.js.map +1 -0
- package/lib/tool/span-worktree.d.ts +3 -0
- package/lib/tool/span-worktree.d.ts.map +1 -0
- package/lib/tool/span-worktree.js +114 -0
- package/lib/tool/span-worktree.js.map +1 -0
- package/lib/tool/types.d.ts +54 -0
- package/lib/tool/types.d.ts.map +1 -0
- package/lib/tool/types.js +2 -0
- package/lib/tool/types.js.map +1 -0
- package/lib/typert.host.js +215 -44
- package/lib/typert.remote-client.d.ts +7 -1
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +215 -44
- package/package.json +14 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { gitWorktreeRoot } from '../../../contract/index.js';
|
|
1
2
|
import path from 'node:path';
|
|
2
3
|
import { createRepositoryFingerprint } from '../../git/repository-fingerprint.js';
|
|
3
4
|
import { completeWorktreeCleanup } from '../../worktree-lifecycle.js';
|
|
@@ -38,23 +39,23 @@ export async function cleanWorktreeTransaction(dependencies, input) {
|
|
|
38
39
|
if (record.diskCleanup === 'completed') {
|
|
39
40
|
return;
|
|
40
41
|
}
|
|
41
|
-
if (await samePhysicalPath(record
|
|
42
|
+
if (await samePhysicalPath(gitWorktreeRoot(record), gitRoot)) {
|
|
42
43
|
throw providerError('WORKTREE_STATE_CONFLICT', 'The main Worktree cannot be cleaned', {
|
|
43
44
|
workspaceId: input.workspaceId,
|
|
44
45
|
worktreeId: input.worktreeId,
|
|
45
|
-
targetPath: record
|
|
46
|
+
targetPath: gitWorktreeRoot(record),
|
|
46
47
|
});
|
|
47
48
|
}
|
|
48
49
|
const liveBefore = await dependencies.git.listWorktrees(gitRoot);
|
|
49
|
-
const exactBefore = await findExactWorktree(liveBefore, record
|
|
50
|
+
const exactBefore = await findExactWorktree(liveBefore, gitWorktreeRoot(record), record.branch);
|
|
50
51
|
await assertSafeRemovalPath(dependencies, record, input.workspaceRoot);
|
|
51
|
-
if (await pathEntryMissing(path.join(record
|
|
52
|
-
const pathRegistration = await findWorktreeByPhysicalPath(liveBefore, record
|
|
52
|
+
if (await pathEntryMissing(path.join(gitWorktreeRoot(record), '.git'))) {
|
|
53
|
+
const pathRegistration = await findWorktreeByPhysicalPath(liveBefore, gitWorktreeRoot(record));
|
|
53
54
|
if (pathRegistration && !exactBefore) {
|
|
54
55
|
throw providerError('WORKTREE_IDENTITY_CHANGED', 'Missing Worktree path has a different Git registration', {
|
|
55
56
|
workspaceId: input.workspaceId,
|
|
56
57
|
worktreeId: input.worktreeId,
|
|
57
|
-
targetPath: record
|
|
58
|
+
targetPath: gitWorktreeRoot(record),
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
// An absent directory or .git entry is already removed as a Worktree.
|
|
@@ -74,10 +75,10 @@ export async function cleanWorktreeTransaction(dependencies, input) {
|
|
|
74
75
|
return;
|
|
75
76
|
}
|
|
76
77
|
if (!exactBefore) {
|
|
77
|
-
throw providerError('WORKTREE_IDENTITY_CHANGED', `Worktree is not registered in Git: ${record
|
|
78
|
+
throw providerError('WORKTREE_IDENTITY_CHANGED', `Worktree is not registered in Git: ${gitWorktreeRoot(record)}`, {
|
|
78
79
|
workspaceId: input.workspaceId,
|
|
79
80
|
worktreeId: input.worktreeId,
|
|
80
|
-
targetPath: record
|
|
81
|
+
targetPath: gitWorktreeRoot(record),
|
|
81
82
|
});
|
|
82
83
|
}
|
|
83
84
|
const pending = pendingClean(input, record, repository.identity);
|
|
@@ -94,7 +95,7 @@ export async function cleanWorktreeTransaction(dependencies, input) {
|
|
|
94
95
|
};
|
|
95
96
|
});
|
|
96
97
|
try {
|
|
97
|
-
await dependencies.git.removeWorktree(input.workspaceRoot, record
|
|
98
|
+
await dependencies.git.removeWorktree(input.workspaceRoot, gitWorktreeRoot(record));
|
|
98
99
|
}
|
|
99
100
|
catch (error) {
|
|
100
101
|
return reconcileCleanFailure(dependencies, {
|
|
@@ -114,40 +115,40 @@ export async function cleanWorktreeTransaction(dependencies, input) {
|
|
|
114
115
|
}
|
|
115
116
|
catch (inspectionError) {
|
|
116
117
|
await markRecovery(locked, pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
117
|
-
throw recoveryError(`Unable to verify Git after clean: ${record
|
|
118
|
+
throw recoveryError(`Unable to verify Git after clean: ${gitWorktreeRoot(record)}`, {
|
|
118
119
|
workspaceId: input.workspaceId,
|
|
119
120
|
operationId: pending.id,
|
|
120
|
-
targetPath: record
|
|
121
|
+
targetPath: gitWorktreeRoot(record),
|
|
121
122
|
cause: String(inspectionError),
|
|
122
123
|
});
|
|
123
124
|
}
|
|
124
|
-
if (await findExactWorktree(liveAfter, record
|
|
125
|
+
if (await findExactWorktree(liveAfter, gitWorktreeRoot(record), record.branch)) {
|
|
125
126
|
await markRecovery(locked, pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
126
|
-
throw recoveryError(`Git remove did not remove the registered Worktree: ${record
|
|
127
|
+
throw recoveryError(`Git remove did not remove the registered Worktree: ${gitWorktreeRoot(record)}`, {
|
|
127
128
|
workspaceId: input.workspaceId,
|
|
128
129
|
worktreeId: input.worktreeId,
|
|
129
|
-
targetPath: record
|
|
130
|
+
targetPath: gitWorktreeRoot(record),
|
|
130
131
|
});
|
|
131
132
|
}
|
|
132
133
|
let targetExists;
|
|
133
134
|
try {
|
|
134
|
-
targetExists = await pathExists(record
|
|
135
|
+
targetExists = await pathExists(gitWorktreeRoot(record));
|
|
135
136
|
}
|
|
136
137
|
catch (inspectionError) {
|
|
137
138
|
await markRecovery(locked, pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
138
|
-
throw recoveryError(`Unable to verify the cleaned Worktree path: ${record
|
|
139
|
+
throw recoveryError(`Unable to verify the cleaned Worktree path: ${gitWorktreeRoot(record)}`, {
|
|
139
140
|
workspaceId: input.workspaceId,
|
|
140
141
|
operationId: pending.id,
|
|
141
|
-
targetPath: record
|
|
142
|
+
targetPath: gitWorktreeRoot(record),
|
|
142
143
|
cause: String(inspectionError),
|
|
143
144
|
});
|
|
144
145
|
}
|
|
145
146
|
if (targetExists) {
|
|
146
147
|
await markRecovery(locked, pending, 'WORKTREE_IDENTITY_CHANGED');
|
|
147
|
-
throw providerError('WORKTREE_IDENTITY_CHANGED', `Worktree path remains after Git removal: ${record
|
|
148
|
+
throw providerError('WORKTREE_IDENTITY_CHANGED', `Worktree path remains after Git removal: ${gitWorktreeRoot(record)}`, {
|
|
148
149
|
workspaceId: input.workspaceId,
|
|
149
150
|
worktreeId: input.worktreeId,
|
|
150
|
-
targetPath: record
|
|
151
|
+
targetPath: gitWorktreeRoot(record),
|
|
151
152
|
});
|
|
152
153
|
}
|
|
153
154
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/clean.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,YAA6F,EAC7F,KAAoC;IAEpC,OAAO,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACrE,MAAM,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9E,OAAO,YAAY,CAAC,cAAc,CAAC,GAAG,CACpC,cAAc,2BAA2B,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAChE,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7C,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACnD,0BAA0B,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CACnC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CACzD,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,aAAa,CAAC,oBAAoB,EAAE,uBAAuB,KAAK,CAAC,UAAU,EAAE,EAAE;oBACnF,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,aAAa,CACjB,yBAAyB,EACzB,gDAAgD,EAChD;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CACF,CAAC;YACJ,CAAC;YACD,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;YACD,IAAI,MAAM,gBAAgB,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,YAA6F,EAC7F,KAAoC;IAEpC,OAAO,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACrE,MAAM,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9E,OAAO,YAAY,CAAC,cAAc,CAAC,GAAG,CACpC,cAAc,2BAA2B,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAChE,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7C,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACnD,0BAA0B,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CACnC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CACzD,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,aAAa,CAAC,oBAAoB,EAAE,uBAAuB,KAAK,CAAC,UAAU,EAAE,EAAE;oBACnF,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,aAAa,CACjB,yBAAyB,EACzB,gDAAgD,EAChD;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CACF,CAAC;YACJ,CAAC;YACD,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;YACD,IAAI,MAAM,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC7D,MAAM,aAAa,CAAC,yBAAyB,EAAE,qCAAqC,EAAE;oBACpF,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC;iBACpC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAChG,MAAM,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;YACvE,IAAI,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,gBAAgB,GAAG,MAAM,0BAA0B,CACvD,UAAU,EACV,eAAe,CAAC,MAAM,CAAC,CACxB,CAAC;gBACF,IAAI,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrC,MAAM,aAAa,CACjB,2BAA2B,EAC3B,wDAAwD,EACxD;wBACE,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC;qBACpC,CACF,CAAC;gBACJ,CAAC;gBACD,sEAAsE;gBACtE,wEAAwE;gBACxE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC/B,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC;oBAC9D,KAAK,WAAW,CAAC;oBACjB,OAAO;wBACL,MAAM,EAAE,SAAS;wBACjB,QAAQ,EAAE,uBAAuB,CAC/B;4BACE,GAAG,YAAY;4BACf,qBAAqB,EAAE,2BAA2B,CAAC,UAAU,CAAC,QAAQ,CAAC;yBACxE,EACD,MAAM,CAAC,UAAU,CAClB;qBACF,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,aAAa,CACjB,2BAA2B,EAC3B,sCAAsC,eAAe,CAAC,MAAM,CAAC,EAAE,EAC/D;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC;iBACpC,CACF,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC/B,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,GAAG,QAAQ,CAAC;gBACnE,KAAK,WAAW,CAAC;gBACjB,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE;wBACR,GAAG,iBAAiB;wBACpB,qBAAqB,EAAE,2BAA2B,CAAC,UAAU,CAAC,QAAQ,CAAC;wBACvE,gBAAgB,EAAE,OAAO;qBAC1B;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YACtF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,qBAAqB,CAAC,YAAY,EAAE;oBACzC,MAAM;oBACN,KAAK;oBACL,MAAM;oBACN,OAAO;oBACP,UAAU,EAAE,UAAU,CAAC,QAAQ;oBAC/B,OAAO;oBACP,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,SAAqC,CAAC;YAC1C,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,eAAe,EAAE,CAAC;gBACzB,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;gBAClE,MAAM,aAAa,CAAC,qCAAqC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE;oBAClF,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,WAAW,EAAE,OAAO,CAAC,EAAE;oBACvB,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC;oBACnC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,iBAAiB,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/E,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;gBAClE,MAAM,aAAa,CACjB,sDAAsD,eAAe,CAAC,MAAM,CAAC,EAAE,EAC/E;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC;iBACpC,CACF,CAAC;YACJ,CAAC;YACD,IAAI,YAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,eAAe,EAAE,CAAC;gBACzB,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;gBAClE,MAAM,aAAa,CACjB,+CAA+C,eAAe,CAAC,MAAM,CAAC,EAAE,EACxE;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,WAAW,EAAE,OAAO,CAAC,EAAE;oBACvB,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC;oBACnC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC;iBAC/B,CACF,CAAC;YACJ,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,2BAA2B,CAAC,CAAC;gBACjE,MAAM,aAAa,CACjB,2BAA2B,EAC3B,4CAA4C,eAAe,CAAC,MAAM,CAAC,EAAE,EACrE;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC;iBACpC,CACF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC/E,MAAM,aAAa,CACjB,uBAAuB,EACvB,wBAAwB,KAAK,CAAC,UAAU,sCAAsC,EAC9E;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,YAAY,EAAE,YAAY,CAAC,OAAO;iBACnC,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type WorktreeRecord } from '../../../contract/index.js';
|
|
2
2
|
import type { CreateWorktreeTransactionInput } from '../types.js';
|
|
3
3
|
import type { TransactionDependencies } from '../dependencies.js';
|
|
4
4
|
export declare function createWorktreeTransaction(dependencies: Pick<TransactionDependencies, 'dshHome' | 'git' | 'repositoryLock' | 'sidecar'>, input: CreateWorktreeTransactionInput): Promise<WorktreeRecord>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGtF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAiBlE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAIlE,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,KAAK,GAAG,gBAAgB,GAAG,SAAS,CAAC,EAC7F,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,cAAc,CAAC,CAsNzB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isWorktreeGitCommit } from '../../../contract/index.js';
|
|
1
2
|
import { createRepositoryFingerprint } from '../../git/repository-fingerprint.js';
|
|
2
3
|
import { assertGeneratedNameAvailable } from '../../generated-name.js';
|
|
3
4
|
import { recoveryError, recordForCreate, pendingCreate } from '../support/journal.js';
|
|
@@ -8,7 +9,12 @@ import { cleanLegacyObservations, assertMutationAdmitted, assertRepositoryCompat
|
|
|
8
9
|
import { assertGeneratedTarget } from '../support/path-safety.js';
|
|
9
10
|
import { publishCreated, markRecovery } from '../support/publication.js';
|
|
10
11
|
import { providerError } from '../../types.js';
|
|
12
|
+
import { workspacePathInWorktree } from '../../worktree-path.js';
|
|
11
13
|
export async function createWorktreeTransaction(dependencies, input) {
|
|
14
|
+
if (input.baseBranch === undefined && (!isWorktreeGitCommit(input.baseCommit) || input.newBranch === undefined)) {
|
|
15
|
+
throw providerError('GIT_OPERATION_FAILED', 'Commit-based creation requires a full Git hash and a new branch', {});
|
|
16
|
+
}
|
|
17
|
+
const baseRef = input.baseCommit ?? input.baseBranch;
|
|
12
18
|
return withShardLock(dependencies, input.workspaceId, async (locked) => {
|
|
13
19
|
await dependencies.git.validateRepository(input.workspaceRoot);
|
|
14
20
|
const repository = await resolveRepository(dependencies, input.workspaceRoot);
|
|
@@ -24,7 +30,7 @@ export async function createWorktreeTransaction(dependencies, input) {
|
|
|
24
30
|
if (dependencies.git.listBranchesWithWorktreePaths) {
|
|
25
31
|
const branches = await dependencies.git.listBranchesWithWorktreePaths(gitRoot);
|
|
26
32
|
const baseBranch = branches.find((branch) => branch.name === input.baseBranch);
|
|
27
|
-
if (!baseBranch) {
|
|
33
|
+
if (input.baseBranch !== undefined && !baseBranch) {
|
|
28
34
|
throw providerError('GIT_OPERATION_FAILED', `Local branch does not exist: ${input.baseBranch}`, {
|
|
29
35
|
workspaceRoot: input.workspaceRoot,
|
|
30
36
|
branch: input.baseBranch,
|
|
@@ -35,20 +41,20 @@ export async function createWorktreeTransaction(dependencies, input) {
|
|
|
35
41
|
throw providerError('WORKTREE_BRANCH_CONFLICT', `New branch already exists: ${input.newBranch}`, {
|
|
36
42
|
workspaceRoot: input.workspaceRoot,
|
|
37
43
|
branch: input.newBranch,
|
|
38
|
-
baseBranch: input.baseBranch,
|
|
44
|
+
baseBranch: input.baseBranch ?? baseRef,
|
|
39
45
|
});
|
|
40
46
|
}
|
|
41
47
|
if (branches.some((branch) => branch.name === input.targetBranch && branch.worktreePath !== undefined)) {
|
|
42
48
|
throw providerError('WORKTREE_BRANCH_CONFLICT', `Branch is already checked out: ${input.targetBranch}`, {
|
|
43
49
|
workspaceRoot: input.workspaceRoot,
|
|
44
50
|
branch: input.targetBranch,
|
|
45
|
-
baseBranch: input.baseBranch,
|
|
51
|
+
baseBranch: input.baseBranch ?? baseRef,
|
|
46
52
|
});
|
|
47
53
|
}
|
|
48
54
|
}
|
|
49
55
|
else {
|
|
50
56
|
const branches = await dependencies.git.listBranches(gitRoot);
|
|
51
|
-
if (!branches.includes(input.baseBranch)) {
|
|
57
|
+
if (input.baseBranch !== undefined && !branches.includes(input.baseBranch)) {
|
|
52
58
|
throw providerError('GIT_OPERATION_FAILED', `Local branch does not exist: ${input.baseBranch}`, {
|
|
53
59
|
workspaceRoot: input.workspaceRoot,
|
|
54
60
|
branch: input.baseBranch,
|
|
@@ -58,7 +64,7 @@ export async function createWorktreeTransaction(dependencies, input) {
|
|
|
58
64
|
throw providerError('WORKTREE_BRANCH_CONFLICT', `New branch already exists: ${input.newBranch}`, {
|
|
59
65
|
workspaceRoot: input.workspaceRoot,
|
|
60
66
|
branch: input.newBranch,
|
|
61
|
-
baseBranch: input.baseBranch,
|
|
67
|
+
baseBranch: input.baseBranch ?? baseRef,
|
|
62
68
|
});
|
|
63
69
|
}
|
|
64
70
|
existingGitWorktrees = await dependencies.git.listWorktrees(gitRoot);
|
|
@@ -66,11 +72,11 @@ export async function createWorktreeTransaction(dependencies, input) {
|
|
|
66
72
|
throw providerError('WORKTREE_BRANCH_CONFLICT', `Branch is already checked out: ${input.targetBranch}`, {
|
|
67
73
|
workspaceRoot: input.workspaceRoot,
|
|
68
74
|
branch: input.targetBranch,
|
|
69
|
-
baseBranch: input.baseBranch,
|
|
75
|
+
baseBranch: input.baseBranch ?? baseRef,
|
|
70
76
|
});
|
|
71
77
|
}
|
|
72
78
|
}
|
|
73
|
-
await assertGeneratedNameAvailable(input.worktreeId, input.targetPath, current, existingGitWorktrees ?? await dependencies.git.listWorktrees(gitRoot));
|
|
79
|
+
await assertGeneratedNameAvailable(input.worktreeId, input.targetPath, current, existingGitWorktrees ?? (await dependencies.git.listWorktrees(gitRoot)));
|
|
74
80
|
const sidecarConflict = await findActiveBranchConflict(dependencies, current, input.targetBranch, gitRoot);
|
|
75
81
|
if (sidecarConflict) {
|
|
76
82
|
throw providerError('WORKTREE_BRANCH_CONFLICT', `Branch is already recorded as active: ${input.targetBranch}`, {
|
|
@@ -84,11 +90,13 @@ export async function createWorktreeTransaction(dependencies, input) {
|
|
|
84
90
|
// so a Worktree that already advanced past its creation point is never
|
|
85
91
|
// recorded as its own baseline.
|
|
86
92
|
const capturedBaseCommit = dependencies.git.resolveCommit
|
|
87
|
-
? await dependencies.git.resolveCommit(gitRoot,
|
|
88
|
-
:
|
|
89
|
-
const transactionInput =
|
|
90
|
-
|
|
91
|
-
:
|
|
93
|
+
? await dependencies.git.resolveCommit(gitRoot, baseRef)
|
|
94
|
+
: input.baseCommit;
|
|
95
|
+
const transactionInput = {
|
|
96
|
+
...input,
|
|
97
|
+
workspacePath: await workspacePathInWorktree(input.workspaceRoot, gitRoot, input.targetPath),
|
|
98
|
+
...(capturedBaseCommit === undefined ? {} : { baseCommit: capturedBaseCommit }),
|
|
99
|
+
};
|
|
92
100
|
const record = recordForCreate(transactionInput);
|
|
93
101
|
const pending = pendingCreate(transactionInput, repository.identity);
|
|
94
102
|
await locked.mutate((snapshot) => {
|
|
@@ -104,7 +112,9 @@ export async function createWorktreeTransaction(dependencies, input) {
|
|
|
104
112
|
};
|
|
105
113
|
});
|
|
106
114
|
try {
|
|
107
|
-
await dependencies.git.createWorktree(input.workspaceRoot, input.targetPath, input.
|
|
115
|
+
await dependencies.git.createWorktree(input.workspaceRoot, input.targetPath, input.newBranch === undefined
|
|
116
|
+
? input.baseBranch
|
|
117
|
+
: (capturedBaseCommit ?? baseRef), input.newBranch);
|
|
108
118
|
}
|
|
109
119
|
catch (error) {
|
|
110
120
|
return reconcileCreateFailure(dependencies, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/import.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAalE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/import.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAalE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAIlE,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAAE,KAAK,GAAG,gBAAgB,GAAG,SAAS,CAAC,EACjF,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,cAAc,CAAC,CA0HzB"}
|
|
@@ -6,6 +6,7 @@ import { withShardLock } from '../support/locking.js';
|
|
|
6
6
|
import { resolveRepository, findWorktreeByPhysicalPath, findSidecarWorktreeByPhysicalPath, } from '../support/inspection.js';
|
|
7
7
|
import { cleanLegacyObservations, assertMutationAdmitted, assertRepositoryCompatible, } from '../support/admission.js';
|
|
8
8
|
import { providerError } from '../../types.js';
|
|
9
|
+
import { workspacePathInWorktree, worktreeWorkspaceAvailable } from '../../worktree-path.js';
|
|
9
10
|
export async function importWorktreeTransaction(dependencies, input) {
|
|
10
11
|
if (!path.isAbsolute(input.absolutePath)) {
|
|
11
12
|
throw providerError('WORKTREE_IMPORT_INVALID', 'An absolute Worktree path is required', {
|
|
@@ -43,6 +44,10 @@ export async function importWorktreeTransaction(dependencies, input) {
|
|
|
43
44
|
});
|
|
44
45
|
}
|
|
45
46
|
const normalizedPath = await canonicalPath(liveWorktree.absolutePath);
|
|
47
|
+
const absolutePath = await workspacePathInWorktree(input.workspaceRoot, gitRoot, normalizedPath);
|
|
48
|
+
if (!(await worktreeWorkspaceAvailable({ absolutePath, gitRootPath: normalizedPath }))) {
|
|
49
|
+
throw providerError('WORKTREE_IMPORT_INVALID', 'Workspace directory is unavailable in this Worktree', { absolutePath });
|
|
50
|
+
}
|
|
46
51
|
const existing = await findSidecarWorktreeByPhysicalPath(snapshot.worktrees, normalizedPath);
|
|
47
52
|
if (existing) {
|
|
48
53
|
if (existing.status === 'active' &&
|
|
@@ -72,7 +77,8 @@ export async function importWorktreeTransaction(dependencies, input) {
|
|
|
72
77
|
const record = {
|
|
73
78
|
worktreeId: input.worktreeId,
|
|
74
79
|
workspaceId: input.workspaceId,
|
|
75
|
-
absolutePath
|
|
80
|
+
absolutePath,
|
|
81
|
+
...(absolutePath === normalizedPath ? {} : { gitRootPath: normalizedPath }),
|
|
76
82
|
branch: liveWorktree.branch,
|
|
77
83
|
source: 'external',
|
|
78
84
|
importedAt: new Date().toISOString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/import.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAElF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/remove.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/remove.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAclE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGlE,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,KAAK,GAAG,gBAAgB,GAAG,SAAS,CAAC,EAC7F,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,IAAI,CAAC,CAyLf"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { gitWorktreeRoot } from '../../../contract/index.js';
|
|
1
2
|
import { randomUUID } from 'node:crypto';
|
|
2
3
|
import { createRepositoryFingerprint } from '../../git/repository-fingerprint.js';
|
|
3
4
|
import { pathExists, samePhysicalPath } from '../support/paths.js';
|
|
@@ -34,21 +35,21 @@ export async function removeWorktreeTransaction(dependencies, input) {
|
|
|
34
35
|
});
|
|
35
36
|
}
|
|
36
37
|
assertMutationToken(current, record, input.mutationToken);
|
|
37
|
-
if (await samePhysicalPath(record
|
|
38
|
+
if (await samePhysicalPath(gitWorktreeRoot(record), gitRoot)) {
|
|
38
39
|
throw providerError('WORKTREE_STATE_CONFLICT', 'The main Worktree cannot be removed', {
|
|
39
40
|
workspaceId: input.workspaceId,
|
|
40
41
|
worktreeId: input.worktreeId,
|
|
41
|
-
targetPath: record
|
|
42
|
+
targetPath: gitWorktreeRoot(record),
|
|
42
43
|
});
|
|
43
44
|
}
|
|
44
45
|
const liveBefore = await dependencies.git.listWorktrees(gitRoot);
|
|
45
|
-
const exactBefore = await findExactWorktree(liveBefore, record
|
|
46
|
+
const exactBefore = await findExactWorktree(liveBefore, gitWorktreeRoot(record), record.branch);
|
|
46
47
|
if (!exactBefore) {
|
|
47
|
-
const pathRegistration = await findWorktreeByPhysicalPath(liveBefore, record
|
|
48
|
+
const pathRegistration = await findWorktreeByPhysicalPath(liveBefore, gitWorktreeRoot(record));
|
|
48
49
|
const branchRegistration = liveBefore.find((worktree) => worktree.branch === record.branch);
|
|
49
50
|
if (!pathRegistration &&
|
|
50
51
|
!branchRegistration &&
|
|
51
|
-
!(await pathExists(record
|
|
52
|
+
!(await pathExists(gitWorktreeRoot(record)))) {
|
|
52
53
|
// A legacy caller may have completed Git removal before the v3
|
|
53
54
|
// journal was introduced. With no path or matching registration
|
|
54
55
|
// left to delete, finalizing the relation is safe and idempotent.
|
|
@@ -74,16 +75,16 @@ export async function removeWorktreeTransaction(dependencies, input) {
|
|
|
74
75
|
phase: 'recovery-needed',
|
|
75
76
|
workspaceId: input.workspaceId,
|
|
76
77
|
worktreeId: input.worktreeId,
|
|
77
|
-
targetPath: record
|
|
78
|
+
targetPath: gitWorktreeRoot(record),
|
|
78
79
|
branch: record.branch,
|
|
79
80
|
source: record.source,
|
|
80
81
|
repositoryFingerprint: createRepositoryFingerprint(repository.identity),
|
|
81
82
|
startedAt: new Date().toISOString(),
|
|
82
83
|
}, 'WORKTREE_IDENTITY_CHANGED');
|
|
83
|
-
throw providerError('WORKTREE_IDENTITY_CHANGED', `Worktree identity changed: ${record
|
|
84
|
+
throw providerError('WORKTREE_IDENTITY_CHANGED', `Worktree identity changed: ${gitWorktreeRoot(record)}`, {
|
|
84
85
|
workspaceId: input.workspaceId,
|
|
85
86
|
worktreeId: input.worktreeId,
|
|
86
|
-
targetPath: record
|
|
87
|
+
targetPath: gitWorktreeRoot(record),
|
|
87
88
|
});
|
|
88
89
|
}
|
|
89
90
|
await assertSafeRemovalPath(dependencies, record, input.workspaceRoot);
|
|
@@ -101,7 +102,7 @@ export async function removeWorktreeTransaction(dependencies, input) {
|
|
|
101
102
|
};
|
|
102
103
|
});
|
|
103
104
|
try {
|
|
104
|
-
await dependencies.git.removeWorktree(input.workspaceRoot, record
|
|
105
|
+
await dependencies.git.removeWorktree(input.workspaceRoot, gitWorktreeRoot(record));
|
|
105
106
|
}
|
|
106
107
|
catch (error) {
|
|
107
108
|
return reconcileRemoveFailure(dependencies, {
|
|
@@ -121,40 +122,40 @@ export async function removeWorktreeTransaction(dependencies, input) {
|
|
|
121
122
|
}
|
|
122
123
|
catch (inspectionError) {
|
|
123
124
|
await markRecovery(locked, pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
124
|
-
throw recoveryError(`Unable to verify Git after remove: ${record
|
|
125
|
+
throw recoveryError(`Unable to verify Git after remove: ${gitWorktreeRoot(record)}`, {
|
|
125
126
|
workspaceId: input.workspaceId,
|
|
126
127
|
operationId: pending.id,
|
|
127
|
-
targetPath: record
|
|
128
|
+
targetPath: gitWorktreeRoot(record),
|
|
128
129
|
cause: String(inspectionError),
|
|
129
130
|
});
|
|
130
131
|
}
|
|
131
|
-
if (await findExactWorktree(liveAfter, record
|
|
132
|
+
if (await findExactWorktree(liveAfter, gitWorktreeRoot(record), record.branch)) {
|
|
132
133
|
await markRecovery(locked, pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
133
|
-
throw recoveryError(`Git remove did not remove the registered Worktree: ${record
|
|
134
|
+
throw recoveryError(`Git remove did not remove the registered Worktree: ${gitWorktreeRoot(record)}`, {
|
|
134
135
|
workspaceId: input.workspaceId,
|
|
135
136
|
worktreeId: input.worktreeId,
|
|
136
|
-
targetPath: record
|
|
137
|
+
targetPath: gitWorktreeRoot(record),
|
|
137
138
|
});
|
|
138
139
|
}
|
|
139
140
|
let targetExists;
|
|
140
141
|
try {
|
|
141
|
-
targetExists = await pathExists(record
|
|
142
|
+
targetExists = await pathExists(gitWorktreeRoot(record));
|
|
142
143
|
}
|
|
143
144
|
catch (inspectionError) {
|
|
144
145
|
await markRecovery(locked, pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
145
|
-
throw recoveryError(`Unable to verify the removed Worktree path: ${record
|
|
146
|
+
throw recoveryError(`Unable to verify the removed Worktree path: ${gitWorktreeRoot(record)}`, {
|
|
146
147
|
workspaceId: input.workspaceId,
|
|
147
148
|
operationId: pending.id,
|
|
148
|
-
targetPath: record
|
|
149
|
+
targetPath: gitWorktreeRoot(record),
|
|
149
150
|
cause: String(inspectionError),
|
|
150
151
|
});
|
|
151
152
|
}
|
|
152
153
|
if (targetExists) {
|
|
153
154
|
await markRecovery(locked, pending, 'WORKTREE_IDENTITY_CHANGED');
|
|
154
|
-
throw providerError('WORKTREE_IDENTITY_CHANGED', `Worktree path remains after Git removal: ${record
|
|
155
|
+
throw providerError('WORKTREE_IDENTITY_CHANGED', `Worktree path remains after Git removal: ${gitWorktreeRoot(record)}`, {
|
|
155
156
|
workspaceId: input.workspaceId,
|
|
156
157
|
worktreeId: input.worktreeId,
|
|
157
|
-
targetPath: record
|
|
158
|
+
targetPath: gitWorktreeRoot(record),
|
|
158
159
|
});
|
|
159
160
|
}
|
|
160
161
|
await publishRemoved(locked, pending.id, input.worktreeId, repository.identity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAGlF,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,YAA6F,EAC7F,KAAqC;IAErC,OAAO,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACrE,MAAM,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9E,OAAO,YAAY,CAAC,cAAc,CAAC,GAAG,CACpC,cAAc,2BAA2B,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAChE,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7C,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACnD,0BAA0B,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CACnC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CACzD,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,aAAa,CAAC,oBAAoB,EAAE,uBAAuB,KAAK,CAAC,UAAU,EAAE,EAAE;oBACnF,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,aAAa,CACjB,kBAAkB,EAClB,sCAAsC,KAAK,CAAC,UAAU,EAAE,EACxD;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CACF,CAAC;YACJ,CAAC;YACD,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,MAAM,gBAAgB,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/provider/transaction/operations/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure-recovery.d.ts","sourceRoot":"","sources":["../../../../src/provider/transaction/recovery/failure-recovery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"failure-recovery.d.ts","sourceRoot":"","sources":["../../../../src/provider/transaction/recovery/failure-recovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,8BAA8B,EAC9B,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAWrB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,EAClD,OAAO,EAAE;IACP,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,8BAA8B,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,GACA,OAAO,CAAC,cAAc,CAAC,CAkFzB;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,EAClD,OAAO,EAAE;IACP,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,8BAA8B,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,GACA,OAAO,CAAC,IAAI,CAAC,CA0Df;AAED,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,EAClD,OAAO,EAAE;IACP,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,6BAA6B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,GACA,OAAO,CAAC,IAAI,CAAC,CA0Df"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { gitWorktreeRoot } from '../../../contract/index.js';
|
|
1
2
|
import { pathExists } from '../support/paths.js';
|
|
2
3
|
import { recoveryError, normalizeGitError } from '../support/journal.js';
|
|
3
4
|
import { findExactWorktree } from '../support/inspection.js';
|
|
@@ -74,27 +75,27 @@ export async function reconcileRemoveFailure(dependencies, options) {
|
|
|
74
75
|
}
|
|
75
76
|
catch (inspectionError) {
|
|
76
77
|
await markRecovery(options.locked, options.pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
77
|
-
throw recoveryError(`Unable to inspect Git after remove failure: ${options.record
|
|
78
|
+
throw recoveryError(`Unable to inspect Git after remove failure: ${gitWorktreeRoot(options.record)}`, {
|
|
78
79
|
workspaceId: options.input.workspaceId,
|
|
79
80
|
operationId: options.pending.id,
|
|
80
|
-
targetPath: options.record
|
|
81
|
+
targetPath: gitWorktreeRoot(options.record),
|
|
81
82
|
cause: String(inspectionError),
|
|
82
83
|
});
|
|
83
84
|
}
|
|
84
|
-
if (await findExactWorktree(live, options.record
|
|
85
|
+
if (await findExactWorktree(live, gitWorktreeRoot(options.record), options.record.branch)) {
|
|
85
86
|
await clearPending(options.locked, options.pending.id);
|
|
86
|
-
throw normalizeGitError('remove worktree', options.input.workspaceRoot, options.record
|
|
87
|
+
throw normalizeGitError('remove worktree', options.input.workspaceRoot, gitWorktreeRoot(options.record), options.error);
|
|
87
88
|
}
|
|
88
89
|
let targetExists;
|
|
89
90
|
try {
|
|
90
|
-
targetExists = await pathExists(options.record
|
|
91
|
+
targetExists = await pathExists(gitWorktreeRoot(options.record));
|
|
91
92
|
}
|
|
92
93
|
catch (inspectionError) {
|
|
93
94
|
await markRecovery(options.locked, options.pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
94
|
-
throw recoveryError(`Unable to inspect the Worktree path after remove failure: ${options.record
|
|
95
|
+
throw recoveryError(`Unable to inspect the Worktree path after remove failure: ${gitWorktreeRoot(options.record)}`, {
|
|
95
96
|
workspaceId: options.input.workspaceId,
|
|
96
97
|
operationId: options.pending.id,
|
|
97
|
-
targetPath: options.record
|
|
98
|
+
targetPath: gitWorktreeRoot(options.record),
|
|
98
99
|
cause: String(inspectionError),
|
|
99
100
|
});
|
|
100
101
|
}
|
|
@@ -103,10 +104,10 @@ export async function reconcileRemoveFailure(dependencies, options) {
|
|
|
103
104
|
return;
|
|
104
105
|
}
|
|
105
106
|
await markRecovery(options.locked, options.pending, 'WORKTREE_IDENTITY_CHANGED');
|
|
106
|
-
throw recoveryError(`Git remove failed with an unreconciled Worktree: ${options.record
|
|
107
|
+
throw recoveryError(`Git remove failed with an unreconciled Worktree: ${gitWorktreeRoot(options.record)}`, {
|
|
107
108
|
workspaceId: options.input.workspaceId,
|
|
108
109
|
operationId: options.pending.id,
|
|
109
|
-
targetPath: options.record
|
|
110
|
+
targetPath: gitWorktreeRoot(options.record),
|
|
110
111
|
});
|
|
111
112
|
}
|
|
112
113
|
export async function reconcileCleanFailure(dependencies, options) {
|
|
@@ -116,27 +117,27 @@ export async function reconcileCleanFailure(dependencies, options) {
|
|
|
116
117
|
}
|
|
117
118
|
catch (inspectionError) {
|
|
118
119
|
await markRecovery(options.locked, options.pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
119
|
-
throw recoveryError(`Unable to inspect Git after clean failure: ${options.record
|
|
120
|
+
throw recoveryError(`Unable to inspect Git after clean failure: ${gitWorktreeRoot(options.record)}`, {
|
|
120
121
|
workspaceId: options.input.workspaceId,
|
|
121
122
|
operationId: options.pending.id,
|
|
122
|
-
targetPath: options.record
|
|
123
|
+
targetPath: gitWorktreeRoot(options.record),
|
|
123
124
|
cause: String(inspectionError),
|
|
124
125
|
});
|
|
125
126
|
}
|
|
126
|
-
if (await findExactWorktree(live, options.record
|
|
127
|
+
if (await findExactWorktree(live, gitWorktreeRoot(options.record), options.record.branch)) {
|
|
127
128
|
await clearPending(options.locked, options.pending.id);
|
|
128
|
-
throw normalizeGitError('clean worktree', options.input.workspaceRoot, options.record
|
|
129
|
+
throw normalizeGitError('clean worktree', options.input.workspaceRoot, gitWorktreeRoot(options.record), options.error);
|
|
129
130
|
}
|
|
130
131
|
let targetExists;
|
|
131
132
|
try {
|
|
132
|
-
targetExists = await pathExists(options.record
|
|
133
|
+
targetExists = await pathExists(gitWorktreeRoot(options.record));
|
|
133
134
|
}
|
|
134
135
|
catch (inspectionError) {
|
|
135
136
|
await markRecovery(options.locked, options.pending, 'WORKTREE_RECOVERY_REQUIRED');
|
|
136
|
-
throw recoveryError(`Unable to inspect the Worktree path after clean failure: ${options.record
|
|
137
|
+
throw recoveryError(`Unable to inspect the Worktree path after clean failure: ${gitWorktreeRoot(options.record)}`, {
|
|
137
138
|
workspaceId: options.input.workspaceId,
|
|
138
139
|
operationId: options.pending.id,
|
|
139
|
-
targetPath: options.record
|
|
140
|
+
targetPath: gitWorktreeRoot(options.record),
|
|
140
141
|
cause: String(inspectionError),
|
|
141
142
|
});
|
|
142
143
|
}
|
|
@@ -145,10 +146,10 @@ export async function reconcileCleanFailure(dependencies, options) {
|
|
|
145
146
|
return;
|
|
146
147
|
}
|
|
147
148
|
await markRecovery(options.locked, options.pending, 'WORKTREE_IDENTITY_CHANGED');
|
|
148
|
-
throw recoveryError(`Git clean failed with an unreconciled Worktree: ${options.record
|
|
149
|
+
throw recoveryError(`Git clean failed with an unreconciled Worktree: ${gitWorktreeRoot(options.record)}`, {
|
|
149
150
|
workspaceId: options.input.workspaceId,
|
|
150
151
|
operationId: options.pending.id,
|
|
151
|
-
targetPath: options.record
|
|
152
|
+
targetPath: gitWorktreeRoot(options.record),
|
|
152
153
|
});
|
|
153
154
|
}
|
|
154
155
|
//# sourceMappingURL=failure-recovery.js.map
|