sync-worktrees 4.1.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +135 -55
  2. package/dist/components/App.d.ts.map +1 -1
  3. package/dist/components/BranchCreationWizard.d.ts.map +1 -1
  4. package/dist/components/OpenEditorWizard.d.ts.map +1 -1
  5. package/dist/components/StatusBar.d.ts +1 -0
  6. package/dist/components/StatusBar.d.ts.map +1 -1
  7. package/dist/components/WorktreeStatusView.d.ts.map +1 -1
  8. package/dist/constants.d.ts +22 -0
  9. package/dist/constants.d.ts.map +1 -1
  10. package/dist/errors/index.d.ts +7 -0
  11. package/dist/errors/index.d.ts.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2201 -510
  15. package/dist/index.js.map +4 -4
  16. package/dist/mcp/context.d.ts +1 -1
  17. package/dist/mcp/context.d.ts.map +1 -1
  18. package/dist/mcp/handlers.d.ts +0 -5
  19. package/dist/mcp/handlers.d.ts.map +1 -1
  20. package/dist/mcp/server.d.ts.map +1 -1
  21. package/dist/mcp/worktree-summary.d.ts.map +1 -1
  22. package/dist/mcp-server.js +2117 -519
  23. package/dist/mcp-server.js.map +4 -4
  24. package/dist/services/InteractiveUIService.d.ts.map +1 -1
  25. package/dist/services/clone-sync.service.d.ts +13 -2
  26. package/dist/services/clone-sync.service.d.ts.map +1 -1
  27. package/dist/services/config-loader.service.d.ts +2 -0
  28. package/dist/services/config-loader.service.d.ts.map +1 -1
  29. package/dist/services/git-maintenance.service.d.ts +44 -0
  30. package/dist/services/git-maintenance.service.d.ts.map +1 -0
  31. package/dist/services/git.service.d.ts +19 -1
  32. package/dist/services/git.service.d.ts.map +1 -1
  33. package/dist/services/removal-audit.service.d.ts +19 -0
  34. package/dist/services/removal-audit.service.d.ts.map +1 -0
  35. package/dist/services/sync-outcome.d.ts +1 -1
  36. package/dist/services/sync-outcome.d.ts.map +1 -1
  37. package/dist/services/trash-migration.service.d.ts +18 -0
  38. package/dist/services/trash-migration.service.d.ts.map +1 -0
  39. package/dist/services/trash-reaper.service.d.ts +18 -0
  40. package/dist/services/trash-reaper.service.d.ts.map +1 -0
  41. package/dist/services/trash.service.d.ts +91 -0
  42. package/dist/services/trash.service.d.ts.map +1 -0
  43. package/dist/services/worktree-metadata.service.d.ts +7 -0
  44. package/dist/services/worktree-metadata.service.d.ts.map +1 -1
  45. package/dist/services/worktree-mode-sync-runner.d.ts +11 -1
  46. package/dist/services/worktree-mode-sync-runner.d.ts.map +1 -1
  47. package/dist/services/worktree-status.service.d.ts +5 -2
  48. package/dist/services/worktree-status.service.d.ts.map +1 -1
  49. package/dist/services/worktree-sync.service.d.ts +21 -2
  50. package/dist/services/worktree-sync.service.d.ts.map +1 -1
  51. package/dist/types/index.d.ts +60 -2
  52. package/dist/types/index.d.ts.map +1 -1
  53. package/dist/types/sync-metadata.d.ts +6 -0
  54. package/dist/types/sync-metadata.d.ts.map +1 -1
  55. package/dist/utils/atomic-write.d.ts +2 -0
  56. package/dist/utils/atomic-write.d.ts.map +1 -0
  57. package/dist/utils/file-exists.d.ts +2 -0
  58. package/dist/utils/file-exists.d.ts.map +1 -1
  59. package/dist/utils/filename-timestamp.d.ts +2 -0
  60. package/dist/utils/filename-timestamp.d.ts.map +1 -0
  61. package/dist/utils/lock-path.d.ts +1 -0
  62. package/dist/utils/lock-path.d.ts.map +1 -1
  63. package/dist/utils/quarantine.d.ts +2 -0
  64. package/dist/utils/quarantine.d.ts.map +1 -0
  65. package/package.json +28 -27
@@ -1 +1 @@
1
- {"version":3,"file":"InteractiveUIService.d.ts","sourceRoot":"","sources":["../../src/services/InteractiveUIService.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InteractiveUIService.d.ts","sourceRoot":"","sources":["../../src/services/InteractiveUIService.tsx"],"names":[],"mappings":"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"}
@@ -69,9 +69,9 @@ export declare class CloneSyncService {
69
69
  private clientFor;
70
70
  private buildGitEnv;
71
71
  private buildCloneArgs;
72
+ private getBranchRefspec;
72
73
  private buildFetchArgs;
73
- private ensureAllRemoteBranchesRefspec;
74
- private isOriginRemoteBranchTrackingRefspec;
74
+ private configureSingleBranchRemote;
75
75
  private recordMissingRemoteRefSkip;
76
76
  private fetchWithRecovery;
77
77
  private hasRemoteBranch;
@@ -80,6 +80,17 @@ export declare class CloneSyncService {
80
80
  private getDeepenTargets;
81
81
  private deepenShallowHistoryToDepth;
82
82
  resolveBranch(): Promise<string>;
83
+ private parseLsRemoteHeads;
84
+ getRemoteBranches(): Promise<string[]>;
85
+ private localBranchExists;
86
+ private localBranchCanFastForward;
87
+ private deleteRemoteTrackingRef;
88
+ private deleteStaleRemoteTrackingRefs;
89
+ private restoreBranchAfterCheckoutFailure;
90
+ checkoutBranch(branch: string, options?: {
91
+ allowConfigDrift?: boolean;
92
+ }): Promise<void>;
93
+ private warnConfigDriftAfterCheckout;
83
94
  initialize(outcome?: SyncOutcomeAccumulator): Promise<void>;
84
95
  private initializeInternal;
85
96
  private evaluateOriginMatch;
@@ -1 +1 @@
1
- {"version":3,"file":"clone-sync.service.d.ts","sourceRoot":"","sources":["../../src/services/clone-sync.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clone-sync.service.d.ts","sourceRoot":"","sources":["../../src/services/clone-sync.service.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ export declare class ConfigLoaderService {
4
4
  loadConfigFile(configPath: string): Promise<ConfigFile>;
5
5
  private validateConfigFile;
6
6
  private validateDepth;
7
+ private validateMaintenanceConfig;
8
+ private validateTrashConfig;
7
9
  private validateRetryConfig;
8
10
  private validateParallelismConfig;
9
11
  private validateFilesToCopyConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.service.d.ts","sourceRoot":"","sources":["../../src/services/config-loader.service.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAkB,MAAM,UAAU,CAAC;AAUrF,qBAAa,mBAAmB;IACxB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkB1D,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA4B7D,OAAO,CAAC,kBAAkB;IA0J1B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,yBAAyB;IA2CjC,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,4BAA4B;IAyCpC,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,sBAAsB;IAyD9B,OAAO,CAAC,mBAAmB;IAuB3B,uBAAuB,CACrB,IAAI,EAAE,gBAAgB,EACtB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAC1B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAC7B,eAAe,CAAC,EAAE,gBAAgB,EAAE,GACnC,gBAAgB;IA0FnB,OAAO,CAAC,kBAAkB;IAS1B,2BAA2B,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAiBnE,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;IAQnB,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAYnF,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC;QAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAgB5F"}
1
+ {"version":3,"file":"config-loader.service.d.ts","sourceRoot":"","sources":["../../src/services/config-loader.service.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAkB,MAAM,UAAU,CAAC;AAWrF,qBAAa,mBAAmB;IACxB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkB1D,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA4B7D,OAAO,CAAC,kBAAkB;IA0K1B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,yBAAyB;IA2CjC,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,4BAA4B;IAyCpC,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,sBAAsB;IAyD9B,OAAO,CAAC,mBAAmB;IAuB3B,uBAAuB,CACrB,IAAI,EAAE,gBAAgB,EACtB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAC1B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAC7B,eAAe,CAAC,EAAE,gBAAgB,EAAE,GACnC,gBAAgB;IAwGnB,OAAO,CAAC,kBAAkB;IAS1B,2BAA2B,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAiBnE,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;IAQnB,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAYnF,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC;QAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAgB5F"}
@@ -0,0 +1,44 @@
1
+ import { Logger } from "./logger.service";
2
+ import type { Config } from "../types";
3
+ import type { GitService } from "./git.service";
4
+ import type { SimpleGit } from "simple-git";
5
+ export interface MaintenanceState {
6
+ lastAttemptAt?: string;
7
+ lastSuccessAt?: string;
8
+ lastFailureAt?: string;
9
+ lastError?: string;
10
+ }
11
+ export type GitFactory = (cwd: string) => SimpleGit;
12
+ /**
13
+ * Periodic `git gc` for the repository object store. Reclaims unreachable
14
+ * objects (e.g. left by clone-mode single-branch ref narrowing and branch
15
+ * churn) and consolidates pack files. Throttled by a persisted timestamp so a
16
+ * daemon restart or repeated `runOnce` invocations don't re-run it every tick.
17
+ *
18
+ * Callers MUST already hold the repository operation lock — `runIfDueUnlocked`
19
+ * mirrors `WorktreeSyncService.initializeUnlocked` and never re-acquires it.
20
+ */
21
+ export declare class GitMaintenanceService {
22
+ private config;
23
+ private gitService;
24
+ private logger;
25
+ private gitFactory;
26
+ constructor(config: Config, gitService: GitService, logger?: Logger, gitFactory?: GitFactory);
27
+ updateLogger(logger: Logger): void;
28
+ isEnabled(): boolean;
29
+ private getIntervalMs;
30
+ private resolveTarget;
31
+ private getStatePath;
32
+ private readState;
33
+ private writeState;
34
+ isDue(state: MaintenanceState, now: number): boolean;
35
+ /**
36
+ * Run `git gc` if maintenance is enabled and due. MUST be called while the
37
+ * repository operation lock is already held. Never throws: a gc failure is
38
+ * recorded and warned so it cannot fail the surrounding sync. The attempt
39
+ * timestamp is persisted even on failure, so a perpetually-failing gc is
40
+ * throttled instead of retried every tick.
41
+ */
42
+ runIfDueUnlocked(now?: number): Promise<void>;
43
+ }
44
+ //# sourceMappingURL=git-maintenance.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-maintenance.service.d.ts","sourceRoot":"","sources":["../../src/services/git-maintenance.service.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;AAEpD;;;;;;;;GAQG;AACH,qBAAa,qBAAqB;IAK9B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAa;gBAGrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EAC9B,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,GAAE,UAAoC;IAMlD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC,SAAS,IAAI,OAAO;IAIpB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,YAAY;YAIN,SAAS;YAeT,UAAU;IAQxB,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAWpD;;;;;;OAMG;IACG,gBAAgB,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8ChE"}
@@ -51,13 +51,31 @@ export declare class GitService {
51
51
  private runWorktreeAddByMatrix;
52
52
  private runSparseStepWithRollback;
53
53
  private wrapUpstreamFailure;
54
- removeWorktree(worktreePath: string): Promise<void>;
54
+ removeWorktree(worktreePath: string, options?: {
55
+ force?: boolean;
56
+ }): Promise<void>;
55
57
  pruneWorktrees(): Promise<void>;
58
+ updateRef(refName: string, sha: string): Promise<void>;
59
+ deleteRef(refName: string): Promise<void>;
60
+ listRefs(prefix: string): Promise<string[]>;
61
+ localBranchExists(branchName: string): Promise<boolean>;
62
+ getLocalBranchCommit(branchName: string): Promise<string | null>;
63
+ createBranchAt(branchName: string, sha: string): Promise<void>;
64
+ deleteLocalBranch(branchName: string): Promise<void>;
65
+ createBundleFromRef(bundlePath: string, refName: string): Promise<boolean>;
66
+ addWorktreeNoCheckout(branchName: string, worktreePath: string): Promise<void>;
67
+ resetWorktreeIndex(worktreePath: string): Promise<void>;
68
+ private staleDirectoryTrasher;
69
+ setStaleDirectoryTrasher(trasher: (dirPath: string) => Promise<string>): void;
70
+ private clearStaleWorktreeDirectory;
56
71
  checkWorktreeStatus(worktreePath: string): Promise<boolean>;
57
72
  hasUnpushedCommits(worktreePath: string): Promise<boolean>;
58
73
  hasUpstreamGone(worktreePath: string): Promise<boolean>;
59
74
  hasStashedChanges(worktreePath: string): Promise<boolean>;
60
75
  getFullWorktreeStatus(worktreePath: string, includeDetails?: boolean): Promise<WorktreeStatusResult>;
76
+ /** Map of remote branch name (without "origin/") → tip oid, from the bare repo. */
77
+ getRemoteBranchTips(): Promise<Map<string, string>>;
78
+ recordRemoteTip(worktreePath: string, branchName: string, oid: string): Promise<void>;
61
79
  hasModifiedSubmodules(worktreePath: string): Promise<boolean>;
62
80
  hasOperationInProgress(worktreePath: string): Promise<boolean>;
63
81
  getCurrentBranch(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"git.service.d.ts","sourceRoot":"","sources":["../../src/services/git.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.service.d.ts","sourceRoot":"","sources":["../../src/services/git.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { WorktreeStatusResult } from "./worktree-status.service";
2
+ export type RemovalAuditAction = "prune_remove" | "orphan_delete" | "orphan_quarantine" | "diverged_replace" | "manual_remove" | "trash_create" | "trash_adopt" | "trash_restore" | "trash_reap";
3
+ export interface RemovalAuditEntry {
4
+ action: RemovalAuditAction;
5
+ result: "attempt" | "success" | "failure";
6
+ path: string;
7
+ branch?: string;
8
+ status?: WorktreeStatusResult;
9
+ quarantinePath?: string;
10
+ trashId?: string;
11
+ trashPath?: string;
12
+ error?: string;
13
+ }
14
+ export declare class RemovalAuditService {
15
+ private readonly logFilePath;
16
+ constructor(logFilePath: string);
17
+ record(entry: RemovalAuditEntry): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=removal-audit.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removal-audit.service.d.ts","sourceRoot":"","sources":["../../src/services/removal-audit.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,aAAa,GACb,eAAe,GACf,YAAY,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAE1C,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAatD"}
@@ -10,7 +10,7 @@ export declare class SyncOutcomeAccumulator {
10
10
  });
11
11
  add(action: SyncOutcomeAction): void;
12
12
  recordCreated(branch: string, path: string): void;
13
- recordRemoved(branch: string, path: string): void;
13
+ recordRemoved(branch: string, path: string, warning?: string): void;
14
14
  recordUpdated(branch: string, path: string, reason?: string): void;
15
15
  recordNoop(scope: SyncOutcomeScope, reason: string, details: {
16
16
  branch?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-outcome.d.ts","sourceRoot":"","sources":["../../src/services/sync-outcome.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA2CrH,qBAAa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,OAAO,CAA2B;gBAGvB,OAAO,EAAE;QACxB,IAAI,EAAE,eAAe,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAGH,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAKpC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlE,UAAU,CACR,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5D,IAAI;IAIP,aAAa,CACX,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5D,IAAI;IAIP,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAIlF,YAAY,CACV,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAChE,IAAI;IAIP,SAAS,IAAI,iBAAiB;IAI9B,QAAQ,IAAI;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAAE;IAOvE,OAAO,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAAE,GAAG,IAAI;IAKpF,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW;CAU5C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CASjH;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,iBAAiB,CAanB"}
1
+ {"version":3,"file":"sync-outcome.d.ts","sourceRoot":"","sources":["../../src/services/sync-outcome.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA2CrH,qBAAa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,OAAO,CAA2B;gBAGvB,OAAO,EAAE;QACxB,IAAI,EAAE,eAAe,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAGH,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAKpC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlE,UAAU,CACR,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5D,IAAI;IAIP,aAAa,CACX,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5D,IAAI;IAIP,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAIlF,YAAY,CACV,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAChE,IAAI;IAIP,SAAS,IAAI,iBAAiB;IAI9B,QAAQ,IAAI;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAAE;IAOvE,OAAO,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAAE,GAAG,IAAI;IAKpF,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW;CAU5C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CASjH;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,iBAAiB,CAanB"}
@@ -0,0 +1,18 @@
1
+ import type { Logger } from "./logger.service";
2
+ import type { TrashService } from "./trash.service";
3
+ import type { Config } from "../types";
4
+ export declare class TrashMigrationService {
5
+ private readonly config;
6
+ private readonly trashService;
7
+ private logger;
8
+ constructor(config: Config, trashService: TrashService, logger: Logger);
9
+ updateLogger(logger: Logger): void;
10
+ isEnabled(): boolean;
11
+ migrateLegacyUnlocked(): Promise<void>;
12
+ private migrateRemovedDir;
13
+ private migrateDivergedDir;
14
+ private listDirectories;
15
+ private readDivergedInfo;
16
+ private parseQuarantineTimestamp;
17
+ }
18
+ //# sourceMappingURL=trash-migration.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trash-migration.service.d.ts","sourceRoot":"","sources":["../../src/services/trash-migration.service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAgBvC,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,MAAM;gBAFG,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EACnC,MAAM,EAAE,MAAM;IAGxB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC,SAAS,IAAI,OAAO;IAId,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;YAM9B,iBAAiB;YAkCjB,kBAAkB;YAmDlB,eAAe;YAYf,gBAAgB;IAU9B,OAAO,CAAC,wBAAwB;CAMjC"}
@@ -0,0 +1,18 @@
1
+ import type { GitService } from "./git.service";
2
+ import type { Logger } from "./logger.service";
3
+ import type { RemovalAuditService } from "./removal-audit.service";
4
+ import type { TrashService } from "./trash.service";
5
+ import type { Config } from "../types";
6
+ export declare class TrashReaperService {
7
+ private readonly config;
8
+ private readonly trashService;
9
+ private logger;
10
+ private readonly removalAudit;
11
+ private readonly gitService;
12
+ constructor(config: Config, trashService: TrashService, logger: Logger, removalAudit: RemovalAuditService, gitService: GitService);
13
+ updateLogger(logger: Logger): void;
14
+ reapExpiredUnlocked(now?: Date): Promise<void>;
15
+ private reapOrphanedPinRefs;
16
+ private warnIfOverThreshold;
17
+ }
18
+ //# sourceMappingURL=trash-reaper.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trash-reaper.service.d.ts","sourceRoot":"","sources":["../../src/services/trash-reaper.service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMvC,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAJV,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EACnC,MAAM,EAAE,MAAM,EACL,YAAY,EAAE,mBAAmB,EACjC,UAAU,EAAE,UAAU;IAGzC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B,mBAAmB,CAAC,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAkJlD,mBAAmB;IA2BjC,OAAO,CAAC,mBAAmB;CAY5B"}
@@ -0,0 +1,91 @@
1
+ import type { GitService } from "./git.service";
2
+ import type { Logger } from "./logger.service";
3
+ import type { RemovalAuditService } from "./removal-audit.service";
4
+ import type { Config } from "../types";
5
+ export type TrashReason = "prune" | "orphan" | "diverged-replace" | "manual" | "legacy-adopt";
6
+ export interface TrashManifest {
7
+ schemaVersion: number;
8
+ id: string;
9
+ deletedAt: string;
10
+ expiresAt: string;
11
+ originalPath: string;
12
+ branch: string | null;
13
+ reason: TrashReason;
14
+ sizeBytes: number | null;
15
+ headOid: string | null;
16
+ pinRef: string | null;
17
+ /** Bundle of the pinned commits not on any remote, relative to the container; null when nothing to bundle. */
18
+ bundleFile?: string | null;
19
+ source: "worktree" | ".removed" | ".diverged";
20
+ legacyOriginalName: string | null;
21
+ /** When the legacy quarantine flow originally preserved this entry; retention still counts from adoption. */
22
+ legacyQuarantinedAt?: string | null;
23
+ keepPinOnReap?: boolean;
24
+ }
25
+ export interface TrashEntry {
26
+ manifest: TrashManifest;
27
+ containerPath: string;
28
+ payloadPath: string;
29
+ }
30
+ export interface TrashSummary {
31
+ itemCount: number;
32
+ totalSizeBytes: number;
33
+ unknownSizeCount: number;
34
+ soonestExpiresAt: string | null;
35
+ }
36
+ export declare function isWorktreeRestorable(manifest: Pick<TrashManifest, "branch" | "headOid" | "pinRef">): boolean;
37
+ export declare function summarizeTrashEntries(entries: TrashEntry[]): TrashSummary;
38
+ export interface TrashDirectoryOptions {
39
+ dirPath: string;
40
+ reason: TrashReason;
41
+ branch?: string | null;
42
+ source?: TrashManifest["source"];
43
+ legacyOriginalName?: string | null;
44
+ /** When the legacy flow originally quarantined the directory. Forensic only —
45
+ * retention always counts from adoption time so a just-adopted entry can
46
+ * never be reaped in the same tick. */
47
+ legacyQuarantinedAt?: Date;
48
+ /** Explicit HEAD oid (legacy adoption); `undefined` resolves from dirPath when branch is set. */
49
+ headOid?: string | null;
50
+ /** Where restore should put the payload back; defaults to dirPath. */
51
+ originalPath?: string;
52
+ auditAction?: "trash_create" | "trash_adopt";
53
+ keepPinOnReap?: boolean;
54
+ }
55
+ export declare class TrashService {
56
+ private readonly config;
57
+ private readonly gitService;
58
+ private logger;
59
+ private readonly removalAudit;
60
+ constructor(config: Config, gitService: GitService, logger: Logger, removalAudit: RemovalAuditService);
61
+ updateLogger(logger: Logger): void;
62
+ isEnabled(): boolean;
63
+ getTrashRoot(): string;
64
+ getRetentionDays(): number;
65
+ trashDirectory(options: TrashDirectoryOptions): Promise<TrashEntry>;
66
+ listEntries(): Promise<{
67
+ entries: TrashEntry[];
68
+ invalid: string[];
69
+ }>;
70
+ trashAndUnregisterWorktree(options: {
71
+ dirPath: string;
72
+ branch: string | null;
73
+ reason: TrashReason;
74
+ keepPinOnReap?: boolean;
75
+ }): Promise<{
76
+ entry: TrashEntry;
77
+ branchRefError?: string;
78
+ }>;
79
+ restore(id: string): Promise<TrashManifest>;
80
+ deleteTrashedBranchRef(manifest: Pick<TrashManifest, "branch" | "id" | "pinRef">): Promise<void>;
81
+ private restoreAsWorktree;
82
+ private copyPayloadOver;
83
+ private resolveHeadOid;
84
+ private createPinRef;
85
+ private writeManifest;
86
+ private readManifest;
87
+ private undoPartialTrash;
88
+ private createContainer;
89
+ private generateId;
90
+ }
91
+ //# sourceMappingURL=trash.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trash.service.d.ts","sourceRoot":"","sources":["../../src/services/trash.service.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,13 @@ export declare class WorktreeMetadataService {
18
18
  deleteMetadataFromPath(bareRepoPath: string, worktreePath: string): Promise<void>;
19
19
  updateLastSync(bareRepoPath: string, worktreeName: string, commit: string, action?: "created" | "updated" | "fetched"): Promise<void>;
20
20
  updateLastSyncFromPath(bareRepoPath: string, worktreePath: string, commit: string, action?: "created" | "updated" | "fetched", defaultBranch?: string): Promise<void>;
21
+ /**
22
+ * Records the upstream tip observed during this sync. This is what later
23
+ * proves "HEAD was fully pushed" after the remote branch is deleted, so it
24
+ * must only ever be overwritten with a live observation — callers must not
25
+ * invoke this once the upstream ref is gone.
26
+ */
27
+ recordRemoteTip(bareRepoPath: string, worktreePath: string, ref: string, oid: string): Promise<void>;
21
28
  createInitialMetadata(bareRepoPath: string, worktreeName: string, commit: string, upstreamBranch: string, parentBranch: string, parentCommit: string): Promise<void>;
22
29
  createInitialMetadataFromPath(bareRepoPath: string, worktreePath: string, commit: string, upstreamBranch: string, parentBranch: string, parentCommit: string): Promise<void>;
23
30
  validateMetadata(metadata: SyncMetadata): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-metadata.service.d.ts","sourceRoot":"","sources":["../../src/services/worktree-metadata.service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM;IAI3B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAI1B,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc5E,+BAA+B,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5F,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B/F,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAYtF,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAkB9F,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAazE,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajF,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,SAAS,GAAG,SAAS,GAAG,SAAqB,GACpD,OAAO,CAAC,IAAI,CAAC;IA0BV,sBAAsB,CAC1B,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,SAAS,GAAG,SAAS,GAAG,SAAqB,EACrD,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;IAqEV,qBAAqB,CACzB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAqBV,6BAA6B,CACjC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAsBV,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAejE"}
1
+ {"version":3,"file":"worktree-metadata.service.d.ts","sourceRoot":"","sources":["../../src/services/worktree-metadata.service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM;IAI3B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAI1B,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc5E,+BAA+B,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5F,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/F,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAYtF,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAkB9F,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAazE,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajF,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,SAAS,GAAG,SAAS,GAAG,SAAqB,GACpD,OAAO,CAAC,IAAI,CAAC;IA0BV,sBAAsB,CAC1B,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,SAAS,GAAG,SAAS,GAAG,SAAqB,EACrD,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;IAqEhB;;;;;OAKG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBpG,qBAAqB,CACzB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAqBV,6BAA6B,CACjC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAsBV,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAejE"}
@@ -1,3 +1,5 @@
1
+ import { RemovalAuditService } from "./removal-audit.service";
2
+ import { TrashService } from "./trash.service";
1
3
  import type { GitService } from "./git.service";
2
4
  import type { Logger } from "./logger.service";
3
5
  import type { ProgressEmitter } from "./progress-emitter";
@@ -11,7 +13,12 @@ export declare class WorktreeModeSyncRunner {
11
13
  private logger;
12
14
  private progressEmitter;
13
15
  private pathResolution;
14
- constructor(config: Config, gitService: GitService, logger: Logger, progressEmitter: ProgressEmitter);
16
+ private removalAudit;
17
+ private trashService;
18
+ constructor(config: Config, gitService: GitService, logger: Logger, progressEmitter: ProgressEmitter, services?: {
19
+ trashService: TrashService;
20
+ removalAudit: RemovalAuditService;
21
+ });
15
22
  updateLogger(logger: Logger): void;
16
23
  runSyncAttempt(phaseTimer: PhaseTimer, syncContext: SyncRetryContext, outcome: SyncOutcomeAccumulator): Promise<void>;
17
24
  private reapplySparseCheckout;
@@ -22,6 +29,8 @@ export declare class WorktreeModeSyncRunner {
22
29
  private finalizeSyncAttempt;
23
30
  private createNewWorktreesWithTiming;
24
31
  private createNewWorktrees;
32
+ private recordRemoteBranchTips;
33
+ private blockedByDisabledTrash;
25
34
  private pruneOldWorktreesWithTiming;
26
35
  private pruneOldWorktrees;
27
36
  private logDebugDetails;
@@ -32,5 +41,6 @@ export declare class WorktreeModeSyncRunner {
32
41
  private handleDivergedBranch;
33
42
  private hasLocalChangesSinceLastSync;
34
43
  private divergeWorktree;
44
+ private writeDivergedInfoFile;
35
45
  }
36
46
  //# sourceMappingURL=worktree-mode-sync-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-mode-sync-runner.d.ts","sourceRoot":"","sources":["../../src/services/worktree-mode-sync-runner.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,eAAe;IANzB,OAAO,CAAC,cAAc,CAA+B;gBAG3C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe;IAG1C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,cAAc,CAClB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC;YAwCF,qBAAqB;YA2DrB,qBAAqB;YAwBrB,mBAAmB;YAcnB,mCAAmC;YAiCnC,+BAA+B;YAa/B,mBAAmB;YAQnB,4BAA4B;YAgB5B,kBAAkB;YAyDlB,2BAA2B;YAe3B,iBAAiB;IAsH/B,OAAO,CAAC,eAAe;YA4CT,mBAAmB;YAwCnB,iCAAiC;YAgBjC,uBAAuB;YAkMvB,0BAA0B;YAwC1B,oBAAoB;YA0CpB,4BAA4B;YAc5B,eAAe;CA4C9B"}
1
+ {"version":3,"file":"worktree-mode-sync-runner.d.ts","sourceRoot":"","sources":["../../src/services/worktree-mode-sync-runner.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,sBAAsB;IAM/B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,eAAe;IARzB,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,YAAY,CAAe;gBAGzB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EACxC,QAAQ,CAAC,EAAE;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,YAAY,EAAE,mBAAmB,CAAA;KAAE;IAM9E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,cAAc,CAClB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC;YAyCF,qBAAqB;YA2DrB,qBAAqB;YAwBrB,mBAAmB;YAcnB,mCAAmC;YAiCnC,+BAA+B;YAa/B,mBAAmB;YAQnB,4BAA4B;YAgB5B,kBAAkB;YA8DlB,sBAAsB;IA4BpC,OAAO,CAAC,sBAAsB;YAIhB,2BAA2B;YAe3B,iBAAiB;IAmN/B,OAAO,CAAC,eAAe;YA4CT,mBAAmB;YAwCnB,iCAAiC;YAgBjC,uBAAuB;YAkMvB,0BAA0B;YAkF1B,oBAAoB;YA8EpB,4BAA4B;YAc5B,eAAe;YA2Cf,qBAAqB;CA0BpC"}
@@ -1,4 +1,5 @@
1
1
  import { Logger } from "./logger.service";
2
+ import type { LastKnownRemoteTip } from "../types/sync-metadata";
2
3
  export interface WorktreeStatusDetails {
3
4
  modifiedFiles: number;
4
5
  deletedFiles: number;
@@ -27,6 +28,7 @@ export interface WorktreeStatusResult {
27
28
  hasOperationInProgress: boolean;
28
29
  hasModifiedSubmodules: boolean;
29
30
  upstreamGone: boolean;
31
+ fullyPushedUpstreamDeleted: boolean;
30
32
  canRemove: boolean;
31
33
  reasons: string[];
32
34
  details?: WorktreeStatusDetails;
@@ -39,8 +41,9 @@ export declare class WorktreeStatusService {
39
41
  skipLfs?: boolean;
40
42
  }, logger?: Logger);
41
43
  checkWorktreeStatus(worktreePath: string): Promise<boolean>;
42
- getFullWorktreeStatus(worktreePath: string, includeDetails?: boolean, lastSyncCommit?: string): Promise<WorktreeStatusResult>;
44
+ getFullWorktreeStatus(worktreePath: string, includeDetails?: boolean, lastSyncCommit?: string, lastKnownRemoteTip?: LastKnownRemoteTip): Promise<WorktreeStatusResult>;
43
45
  private collectSnapshot;
46
+ private parseCount;
44
47
  private deriveIsClean;
45
48
  private deriveModifiedSubmodules;
46
49
  private buildStatusDetails;
@@ -51,7 +54,7 @@ export declare class WorktreeStatusService {
51
54
  hasStashedChanges(worktreePath: string): Promise<boolean>;
52
55
  hasModifiedSubmodules(worktreePath: string): Promise<boolean>;
53
56
  hasOperationInProgress(worktreePath: string): Promise<boolean>;
54
- validateWorktreeForRemoval(worktreePath: string, lastSyncCommit?: string): Promise<void>;
57
+ validateWorktreeForRemoval(worktreePath: string, lastSyncCommit?: string, lastKnownRemoteTip?: LastKnownRemoteTip): Promise<void>;
55
58
  private filterUntrackedFiles;
56
59
  private isDetachedHead;
57
60
  private resolveGitDir;
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-status.service.d.ts","sourceRoot":"","sources":["../../src/services/worktree-status.service.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,OAAO,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC;AA0BD,qBAAa,qBAAqB;IAK9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,MAAM,CAAS;gBAGJ,MAAM,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,EACnD,MAAM,CAAC,EAAE,MAAM;IAKX,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB3D,qBAAqB,CACzB,YAAY,EAAE,MAAM,EACpB,cAAc,UAAQ,EACtB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC;YAoDlB,eAAe;IA6F7B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,qBAAqB;YAKf,mBAAmB;IAa3B,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BnF,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgCvD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYzD,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB7D,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU9D,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQhF,oBAAoB;YA0BpB,cAAc;YASd,aAAa;IAyB3B,OAAO,CAAC,iBAAiB;CAW1B"}
1
+ {"version":3,"file":"worktree-status.service.d.ts","sourceRoot":"","sources":["../../src/services/worktree-status.service.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { GitService } from "./git.service";
3
3
  import { Logger } from "./logger.service";
4
4
  import { SyncOutcomeAccumulator } from "./sync-outcome";
5
5
  import type { ProgressListener } from "./progress-emitter";
6
+ import type { TrashEntry, TrashManifest } from "./trash.service";
6
7
  import type { Config, SyncOutcome, SyncResult } from "../types";
7
8
  export type { ProgressEvent, ProgressListener } from "./progress-emitter";
8
9
  export type { SyncOutcome, SyncOutcomeAction, SyncOutcomeCounts, SyncResult } from "../types";
@@ -18,11 +19,15 @@ export declare class WorktreeSyncService {
18
19
  private gitService;
19
20
  private cloneSyncService;
20
21
  private logger;
21
- private syncInProgress;
22
+ private repoMutex;
22
23
  private progressEmitter;
23
24
  private repoOperationLock;
25
+ private maintenanceService;
24
26
  private retryPolicy;
25
27
  private worktreeModeSyncRunner;
28
+ private trashService;
29
+ private trashReaper;
30
+ private trashMigration;
26
31
  private skipsAccumulator;
27
32
  private lastOutcome;
28
33
  constructor(config: Config);
@@ -35,14 +40,28 @@ export declare class WorktreeSyncService {
35
40
  path: string;
36
41
  branch: string;
37
42
  }>>;
43
+ getRemoteBranches(): Promise<string[]>;
44
+ checkoutBranch(branchName: string, options?: {
45
+ allowConfigDrift?: boolean;
46
+ }): Promise<void>;
38
47
  initialize(): Promise<void>;
39
48
  initializeUnlocked(outcome?: SyncOutcomeAccumulator): Promise<void>;
40
49
  isInitialized(): boolean;
41
50
  isSyncInProgress(): boolean;
42
51
  getGitService(): GitService;
52
+ restoreFromTrash(id: string): Promise<TrashManifest>;
53
+ listTrashEntries(): Promise<{
54
+ entries: TrashEntry[];
55
+ invalid: string[];
56
+ }>;
43
57
  updateLogger(logger: Logger): void;
58
+ private runMaintenanceIfDueUnlocked;
59
+ private runTrashMaintenanceUnlocked;
44
60
  onProgress(listener: ProgressListener): () => void;
45
- runExclusiveRepoOperation<T>(operation: () => Promise<T>): Promise<ExclusiveRepoOperationResult<T>>;
61
+ runExclusiveRepoOperation<T>(operation: () => Promise<T>, options?: {
62
+ wait?: boolean;
63
+ }): Promise<ExclusiveRepoOperationResult<T>>;
64
+ runQueuedRepoOperation<T>(operation: () => Promise<T>): Promise<ExclusiveRepoOperationResult<T>>;
46
65
  private emitProgress;
47
66
  sync(): Promise<SyncResult>;
48
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-sync.service.d.ts","sourceRoot":"","sources":["../../src/services/worktree-sync.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGhE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9F,MAAM,MAAM,4BAA4B,CAAC,CAAC,IACtC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC3B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,GAAG,QAAQ,CAAA;CAAE,CAAC;AAEzD,qBAAa,mBAAmB;aAYF,MAAM,EAAE,MAAM;IAX1C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,WAAW,CAA4B;gBAEnB,MAAM,EAAE,MAAM;IAqBnC,gBAAgB,IAAI,SAAS,eAAe,EAAE;IAI9C,kBAAkB,IAAI,IAAI;IAI1B,oBAAoB,IAAI,IAAI;IAI5B,cAAc,IAAI,WAAW,GAAG,IAAI;IAI3C,WAAW,IAAI,OAAO;IAIhB,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAOhE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,kBAAkB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzE,aAAa,IAAI,OAAO;IAOxB,gBAAgB,IAAI,OAAO;IAI3B,aAAa,IAAI,UAAU;IAI3B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASlC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAI5C,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAsCzG,OAAO,CAAC,YAAY;IAId,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;CA6DlC"}
1
+ {"version":3,"file":"worktree-sync.service.d.ts","sourceRoot":"","sources":["../../src/services/worktree-sync.service.ts"],"names":[],"mappings":"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"}