crewly 1.20.297 → 1.20.298

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 (30) hide show
  1. package/config/roles/developer/prompt.md +1 -1
  2. package/dist/backend/backend/src/constants.d.ts +21 -0
  3. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  4. package/dist/backend/backend/src/constants.js +21 -0
  5. package/dist/backend/backend/src/constants.js.map +1 -1
  6. package/dist/backend/backend/src/index.d.ts.map +1 -1
  7. package/dist/backend/backend/src/index.js +6 -0
  8. package/dist/backend/backend/src/index.js.map +1 -1
  9. package/dist/backend/backend/src/services/worktree/worktree-dirty.d.ts +61 -0
  10. package/dist/backend/backend/src/services/worktree/worktree-dirty.d.ts.map +1 -0
  11. package/dist/backend/backend/src/services/worktree/worktree-dirty.js +121 -0
  12. package/dist/backend/backend/src/services/worktree/worktree-dirty.js.map +1 -0
  13. package/dist/backend/backend/src/services/worktree/worktree-janitor.git.d.ts +2 -0
  14. package/dist/backend/backend/src/services/worktree/worktree-janitor.git.d.ts.map +1 -1
  15. package/dist/backend/backend/src/services/worktree/worktree-janitor.git.js +6 -1
  16. package/dist/backend/backend/src/services/worktree/worktree-janitor.git.js.map +1 -1
  17. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts +49 -5
  18. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts.map +1 -1
  19. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js +116 -15
  20. package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js.map +1 -1
  21. package/dist/backend/backend/src/services/worktree/worktree-landed.d.ts +76 -0
  22. package/dist/backend/backend/src/services/worktree/worktree-landed.d.ts.map +1 -0
  23. package/dist/backend/backend/src/services/worktree/worktree-landed.js +132 -0
  24. package/dist/backend/backend/src/services/worktree/worktree-landed.js.map +1 -0
  25. package/dist/backend/build-info.json +2 -2
  26. package/dist/cli/backend/src/constants.d.ts +21 -0
  27. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  28. package/dist/cli/backend/src/constants.js +21 -0
  29. package/dist/cli/backend/src/constants.js.map +1 -1
  30. package/package.json +1 -1
@@ -33,15 +33,23 @@
33
33
  * dir's index / HEAD / logs/HEAD) more than 2 hours ago in a known agent
34
34
  * location (`<main>/.claude/worktrees/`, `<tmp>/crewly-worktrees/`, or a
35
35
  * `worktree-agent-*` branch), more than 24 hours ago anywhere else.
36
- * 6. `git status --porcelain --untracked-files=all` is empty: no tracked
37
- * change and no untracked file. Ignored files (node_modules, dist) do not
38
- * count. A failing status keeps it.
36
+ * 6. Nothing but regenerable output is uncommitted: `git status --porcelain`
37
+ * shows no tracked change and no untracked file, ignoring untracked
38
+ * `node_modules` / `.next` / `dist` / `build` / `.turbo` / `coverage` /
39
+ * `.cache` / `logs` directories and `*.log` files (nested packages rarely
40
+ * ignore their own). A failing status keeps it.
39
41
  * 7. Its work has landed: HEAD is an ancestor of `origin/<default branch>`
40
42
  * after a quiet `git fetch` (fetch errors ignored), OR — when `gh` is
41
43
  * installed and authenticated — a MERGED PR has this branch as head AND
42
44
  * its head commit equals the worktree HEAD (squash merges; commits made
43
45
  * after the merge keep the worktree). A repo without an origin (not on
44
- * GitHub) only has the ancestor check, so its worktrees are kept.
46
+ * GitHub) only has the ancestor check, so its worktrees are kept — OR, for
47
+ * any git host (Bitbucket, GitLab, squash merges), its CONTENT is already in
48
+ * `origin/<default>`: merging HEAD into it changes nothing
49
+ * (`git merge-tree --write-tree`, falling back to `git cherry`), or the
50
+ * branch's combined diff is patch-equivalent to one commit the default
51
+ * branch gained since (a squash commit). See worktree-landed.ts. Work in
52
+ * none of these is never removed. `gh` is not asked about non-GitHub remotes.
45
53
  *
46
54
  * ## Removal
47
55
  * `git worktree remove <path>` without `--force`. If git refuses although
@@ -49,6 +57,17 @@
49
57
  * no submodules, it is retried once with `--force`. Then the local branch is
50
58
  * deleted (never a protected name), and `git worktree prune` runs per repo.
51
59
  *
60
+ * ## Low disk: kept worktrees
61
+ * Under low disk, a worktree kept as `dirty` or `not-merged` and idle for
62
+ * 24 h+ still loses its `node_modules` / `.next` directories (reversible:
63
+ * reinstall / rebuild); the verdict carries `reclaimed` and the summary
64
+ * `reclaimedBytes`.
65
+ *
66
+ * ## Work completion
67
+ * A WorkItem reaching done / verified calls `requestTidy()`: one debounced pass
68
+ * (2 min) with a 10 min idle threshold, so a finished worktree is removed as
69
+ * soon as its change has landed, not at the next 30-minute tick.
70
+ *
52
71
  * ## Scratch sweep
53
72
  * After the worktrees, stale Claude Code session dirs
54
73
  * (`<tmp>/claude-<uid>/<slug>/<uuid>/`) are deleted when idle for 3 days,
@@ -92,6 +111,8 @@ import { reclaimDocker } from './docker-reclaim.js';
92
111
  import { RunawayFileWatcher, runawayWatchRoots } from './runaway-file-watcher.js';
93
112
  import { getTraceStore } from '../trace/trace-store.js';
94
113
  import { canonicalPath, diskUsageBytes, discoverLinkedWorktreeRepos, formatBytes, isJanitorDisabled, isPathInside, latestWorktreeMtimeMs, listProcessCwds, parsePorcelainWorktrees, runCommand, } from './worktree-janitor.git.js';
114
+ import { contentLandedSignal, isNonGithubRemote } from './worktree-landed.js';
115
+ import { dirtyStatusLines, reclaimRegenerableDirs } from './worktree-dirty.js';
95
116
  /** Milliseconds per minute (for the `recent` detail text). */
96
117
  const MS_PER_MINUTE = 60 * 1000;
97
118
  /**
@@ -122,6 +143,7 @@ export class WorktreeJanitorService {
122
143
  notifier;
123
144
  agentNotifier = null;
124
145
  runawayTimer = null;
146
+ tidyTimer = null;
125
147
  runawayWatcher = null;
126
148
  runawayInFlight = false;
127
149
  /**
@@ -259,6 +281,9 @@ export class WorktreeJanitorService {
259
281
  clearInterval(this.diskTimer);
260
282
  if (this.runawayTimer)
261
283
  clearInterval(this.runawayTimer);
284
+ if (this.tidyTimer)
285
+ clearTimeout(this.tidyTimer);
286
+ this.tidyTimer = null;
262
287
  this.runawayTimer = null;
263
288
  this.firstRunTimer = null;
264
289
  this.intervalTimer = null;
@@ -307,6 +332,41 @@ export class WorktreeJanitorService {
307
332
  async plan() {
308
333
  return this.pass(true);
309
334
  }
335
+ /**
336
+ * Work just finished (a WorkItem / ticket reached done or verified): run one
337
+ * pass soon, so a finished worktree goes away when its PR is merged instead
338
+ * of waiting for the next 30-minute tick. Bursts are debounced into one pass
339
+ * after COMPLETION_TIDY_DELAY_MS; the idle threshold is COMPLETION_MIN_IDLE_MS.
340
+ * Only worktrees that pass every safety rule are removed (landed, clean, nobody
341
+ * inside) — unmerged work stays for the next pass. No-op when disabled. Never throws.
342
+ */
343
+ requestTidy() {
344
+ if (this.isDisabled() || this.tidyTimer)
345
+ return;
346
+ this.tidyTimer = setTimeout(() => {
347
+ this.tidyTimer = null;
348
+ void (async () => {
349
+ try {
350
+ if (this.inFlight)
351
+ await this.inFlight.catch(() => undefined);
352
+ if (this.isDisabled())
353
+ return;
354
+ this.inFlight = this.pass(false, WORKTREE_JANITOR_CONSTANTS.COMPLETION_MIN_IDLE_MS).finally(() => {
355
+ this.inFlight = null;
356
+ });
357
+ const summary = await this.inFlight;
358
+ if (!summary.disabled) {
359
+ this.lastSummary = summary;
360
+ this.lastPassAt = this.now();
361
+ }
362
+ }
363
+ catch (err) {
364
+ this.logger.warn('Completion tidy failed (non-fatal)', { error: err instanceof Error ? err.message : String(err) });
365
+ }
366
+ })();
367
+ }, this.opts.tidyDelayMs ?? WORKTREE_JANITOR_CONSTANTS.COMPLETION_TIDY_DELAY_MS);
368
+ this.tidyTimer.unref?.();
369
+ }
310
370
  /**
311
371
  * One real pass. Concurrent calls share the pass in flight. Never throws.
312
372
  * Honours the kill switch.
@@ -461,7 +521,7 @@ export class WorktreeJanitorService {
461
521
  git(args, options = {}) {
462
522
  return runCommand(this.opts.gitBin ?? 'git', args, options);
463
523
  }
464
- async pass(dryRun) {
524
+ async pass(dryRun, idleOverrideMs) {
465
525
  const started = Date.now();
466
526
  const summary = {
467
527
  startedAt: new Date(started).toISOString(),
@@ -472,6 +532,7 @@ export class WorktreeJanitorService {
472
532
  removed: 0,
473
533
  wouldRemove: 0,
474
534
  kept: 0,
535
+ reclaimedBytes: 0,
475
536
  keptReasons: {},
476
537
  worktrees: [],
477
538
  lowDisk: false,
@@ -493,7 +554,14 @@ export class WorktreeJanitorService {
493
554
  for (const repo of repos) {
494
555
  let removedHere = 0;
495
556
  for (const entry of repo.entries) {
496
- const verdict = await this.evaluate(repo, entry, busy, summary.lowDisk);
557
+ const verdict = await this.evaluate(repo, entry, busy, summary.lowDisk, idleOverrideMs);
558
+ if (summary.lowDisk && verdict.decision === 'keep' && (verdict.reason === 'dirty' || verdict.reason === 'not-merged')) {
559
+ const rec = await this.reclaimKept(entry.path, verdict.idleMs, dryRun);
560
+ if (rec) {
561
+ verdict.reclaimed = rec;
562
+ summary.reclaimedBytes += rec.freedBytes;
563
+ }
564
+ }
497
565
  const outcome = { ...verdict, removed: false, forced: false, branchDeleted: false };
498
566
  if (verdict.decision === 'remove' && !dryRun) {
499
567
  await this.remove(repo, outcome);
@@ -538,7 +606,7 @@ export class WorktreeJanitorService {
538
606
  .sort((a, b) => b[1] - a[1])
539
607
  .map(([k, v]) => `${k}: ${v}`)
540
608
  .join(', ');
541
- this.logger.info(`Worktree janitor: removed ${summary.removed}, kept ${summary.kept}${reasons ? ` (${reasons})` : ''} across ${summary.repos.length} repo(s) in ${summary.durationMs}ms`, { removed: summary.worktrees.filter((w) => w.removed).map((w) => w.path), lowDisk: summary.lowDisk });
609
+ this.logger.info(`Worktree janitor: removed ${summary.removed}, kept ${summary.kept}${reasons ? ` (${reasons})` : ''}${summary.reclaimedBytes > 0 ? `, reclaimed ${formatBytes(summary.reclaimedBytes)} of node_modules/.next from kept worktrees` : ''} across ${summary.repos.length} repo(s) in ${summary.durationMs}ms`, { removed: summary.worktrees.filter((w) => w.removed).map((w) => w.path), lowDisk: summary.lowDisk });
542
610
  const sc = summary.scratch;
543
611
  if (sc) {
544
612
  const scReasons = Object.entries(sc.keptReasons)
@@ -578,7 +646,7 @@ export class WorktreeJanitorService {
578
646
  const key = canonicalPath(main.path);
579
647
  if (seen.has(key))
580
648
  continue;
581
- seen.set(key, { main: main.path, entries, fetched: false, defaultRef: undefined });
649
+ seen.set(key, { main: main.path, entries, fetched: false, defaultRef: undefined, landed: {} });
582
650
  }
583
651
  return [...seen.values()];
584
652
  }
@@ -604,7 +672,7 @@ export class WorktreeJanitorService {
604
672
  /**
605
673
  * Apply the removal rules to one worktree (read-only apart from fetch).
606
674
  */
607
- async evaluate(repo, entry, busy, lowDisk) {
675
+ async evaluate(repo, entry, busy, lowDisk, idleOverrideMs) {
608
676
  const base = { repo: repo.main, path: entry.path, branch: entry.branch, head: entry.head };
609
677
  const keep = (reason, detail, idleMs) => ({
610
678
  ...base,
@@ -637,14 +705,16 @@ export class WorktreeJanitorService {
637
705
  const normalIdle = agentLocation
638
706
  ? (this.opts.minIdleMs ?? WORKTREE_JANITOR_CONSTANTS.MIN_IDLE_MS)
639
707
  : (this.opts.minIdleOtherMs ?? WORKTREE_JANITOR_CONSTANTS.MIN_IDLE_OTHER_MS);
640
- const minIdle = idleThreshold(normalIdle, lowDisk);
708
+ const minIdle = idleOverrideMs !== undefined ? Math.min(idleOverrideMs, idleThreshold(normalIdle, lowDisk)) : idleThreshold(normalIdle, lowDisk);
641
709
  if (idleMs === undefined || idleMs < minIdle) {
642
710
  return keep('recent', `needs ${Math.round(minIdle / MS_PER_MINUTE)} min idle (${agentLocation ? 'agent location' : 'other location'})`, idleMs);
643
711
  }
644
- const status = await this.git(['-C', entry.path, 'status', '--porcelain', '--untracked-files=all']);
712
+ // `normal` keeps untracked directories collapsed (one line per
713
+ // `node_modules/`), so a huge dependency tree cannot flood the output.
714
+ const status = await this.git(['-C', entry.path, 'status', '--porcelain', '--untracked-files=normal']);
645
715
  if (status.code !== 0)
646
716
  return keep('status-failed', status.stderr.trim().slice(0, 200), idleMs);
647
- const dirtyLines = status.stdout.split('\n').filter((l) => l.trim() !== '');
717
+ const dirtyLines = dirtyStatusLines(status.stdout);
648
718
  if (dirtyLines.length > 0)
649
719
  return keep('dirty', `${dirtyLines.length} changed/untracked path(s)`, idleMs);
650
720
  if (!entry.head)
@@ -660,7 +730,31 @@ export class WorktreeJanitorService {
660
730
  if (pr !== null)
661
731
  return { ...base, decision: 'remove', reason: 'pr-merged', detail: `PR #${pr} merged`, idleMs };
662
732
  }
663
- return keep('not-merged', defaultRef ? `not in ${defaultRef}, no merged PR` : 'no origin default branch, no merged PR', idleMs);
733
+ if (defaultRef) {
734
+ // Host-agnostic: squash merges on Bitbucket / GitLab / anywhere leave no
735
+ // ancestry and no GitHub PR, but the CONTENT is in the default branch.
736
+ const signal = await contentLandedSignal((a, o) => this.git(a, o), repo.main, defaultRef, entry.head, repo.landed);
737
+ if (signal)
738
+ return { ...base, decision: 'remove', reason: 'content-landed', detail: `${signal} in ${defaultRef}`, idleMs };
739
+ }
740
+ return keep('not-merged', defaultRef ? `not in ${defaultRef} (history or content), no merged PR` : 'no origin default branch, no merged PR', idleMs);
741
+ }
742
+ /**
743
+ * Low disk: delete the regenerable dirs (node_modules, .next) of a kept
744
+ * worktree that has been idle for a day. Reversible; never touches
745
+ * tracked or source files. Never throws.
746
+ */
747
+ async reclaimKept(worktreePath, idleMs, dryRun) {
748
+ if (idleMs === undefined || idleMs < WORKTREE_JANITOR_CONSTANTS.RECLAIM_MIN_IDLE_MS)
749
+ return null;
750
+ try {
751
+ const r = await reclaimRegenerableDirs(worktreePath, this.opts.sizeOf ?? diskUsageBytes, dryRun);
752
+ return r.dirs.length > 0 ? r : null;
753
+ }
754
+ catch (err) {
755
+ this.logger.warn('Reclaiming regenerable dirs failed (non-fatal)', { path: worktreePath, error: err instanceof Error ? err.message : String(err) });
756
+ return null;
757
+ }
664
758
  }
665
759
  /** `origin/<default>` after one quiet fetch per repo per pass; null when there is no origin. */
666
760
  async defaultRef(repo) {
@@ -710,6 +804,13 @@ export class WorktreeJanitorService {
710
804
  const gh = this.opts.ghBin === undefined ? 'gh' : this.opts.ghBin;
711
805
  if (!gh)
712
806
  return null;
807
+ if (repo.nonGithub === undefined) {
808
+ const url = await this.git(['-C', repo.main, 'config', '--get', 'remote.origin.url']);
809
+ repo.nonGithub = url.code === 0 && isNonGithubRemote(url.stdout);
810
+ }
811
+ // Bitbucket / GitLab remotes: gh cannot see their PRs, and asking costs a call per worktree.
812
+ if (repo.nonGithub)
813
+ return null;
713
814
  if (this.ghUsable === undefined) {
714
815
  const auth = await runCommand(gh, ['auth', 'status'], { cwd: repo.main, timeoutMs: WORKTREE_JANITOR_CONSTANTS.GH_TIMEOUT_MS });
715
816
  this.ghUsable = auth.code === 0;
@@ -736,8 +837,8 @@ export class WorktreeJanitorService {
736
837
  if (r.code !== 0) {
737
838
  // Force only when git's refusal can only be ignored output: status is
738
839
  // still clean (untracked included) and there are no submodules.
739
- const status = await this.git(['-C', outcome.path, 'status', '--porcelain', '--untracked-files=all', '--ignore-submodules=none']);
740
- const clean = status.code === 0 && status.stdout.trim() === '';
840
+ const status = await this.git(['-C', outcome.path, 'status', '--porcelain', '--untracked-files=normal', '--ignore-submodules=none']);
841
+ const clean = status.code === 0 && dirtyStatusLines(status.stdout).length === 0;
741
842
  const hasSubmodules = fs.existsSync(path.join(outcome.path, '.gitmodules'));
742
843
  if (clean && !hasSubmodules) {
743
844
  r = await this.git(['-C', repo.main, 'worktree', 'remove', '--force', outcome.path]);
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-janitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/worktree/worktree-janitor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-janitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/worktree/worktree-janitor.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Worktree janitor — "has this work landed?" checks that do not depend on the
3
+ * git host.
4
+ *
5
+ * A squash merge (Bitbucket, GitLab, GitHub "squash and merge") leaves the
6
+ * branch tip out of the default branch's history, so `merge-base
7
+ * --is-ancestor` says "not merged" forever. These checks look at CONTENT:
8
+ *
9
+ * 1. Tree containment: merging HEAD into `origin/<default>` changes nothing
10
+ * (`git merge-tree --write-tree` yields exactly the default branch's tree).
11
+ * Needs git >= 2.38; older git falls back to `git cherry`.
12
+ * 2. Squash patch-equivalence: the combined diff `merge-base..HEAD` has the
13
+ * same patch-id as one commit that the default branch gained since — the
14
+ * squash commit. Also catches the case where the default branch has since
15
+ * changed the same files (check 1 then conflicts).
16
+ *
17
+ * Both are read-only (merge-tree writes loose objects only) and bounded by
18
+ * the per-command timeout. Work that is in neither is NOT landed and stays.
19
+ *
20
+ * @module services/worktree/worktree-landed
21
+ */
22
+ import type { CommandResult, RunCommandOptions } from './worktree-janitor.git.js';
23
+ /** Runs `git <args>` (the service binds the git binary). */
24
+ export type GitRunner = (args: string[], options?: RunCommandOptions) => Promise<CommandResult>;
25
+ /** Which content signal proved the work landed. */
26
+ export type LandedSignal = 'tree-contained' | 'squash-equivalent';
27
+ /** Per-repo memo so unsupported features are probed once. */
28
+ export interface LandedRepoState {
29
+ /** False once `git merge-tree --write-tree` proved unsupported (git < 2.38) */
30
+ mergeTreeSupported?: boolean;
31
+ /** Tree object id of the default ref, resolved once per pass */
32
+ defaultTree?: string | null;
33
+ }
34
+ /**
35
+ * Whether merging `head` into `defaultRef` would change nothing.
36
+ *
37
+ * @param git - git runner
38
+ * @param repo - Main worktree of the repo
39
+ * @param defaultRef - e.g. `origin/main`
40
+ * @param head - Worktree HEAD commit
41
+ * @param state - Per-repo memo (mutated)
42
+ * @returns True when HEAD's changes are already in the default branch
43
+ */
44
+ export declare function isTreeContained(git: GitRunner, repo: string, defaultRef: string, head: string, state: LandedRepoState): Promise<boolean>;
45
+ /**
46
+ * Whether the combined change of the branch (`merge-base..head`) equals one
47
+ * commit the default branch gained since — a squash merge, possibly followed
48
+ * by other changes to the same files.
49
+ *
50
+ * @param git - git runner
51
+ * @param repo - Main worktree of the repo
52
+ * @param defaultRef - e.g. `origin/main`
53
+ * @param head - Worktree HEAD commit
54
+ * @returns True when a squash-equivalent commit exists on the default branch
55
+ */
56
+ export declare function isSquashEquivalent(git: GitRunner, repo: string, defaultRef: string, head: string): Promise<boolean>;
57
+ /**
58
+ * Run the content checks in order of cost.
59
+ *
60
+ * @param git - git runner
61
+ * @param repo - Main worktree of the repo
62
+ * @param defaultRef - e.g. `origin/main`
63
+ * @param head - Worktree HEAD commit
64
+ * @param state - Per-repo memo
65
+ * @returns The signal that proved the work landed, or null
66
+ */
67
+ export declare function contentLandedSignal(git: GitRunner, repo: string, defaultRef: string, head: string, state: LandedRepoState): Promise<LandedSignal | null>;
68
+ /**
69
+ * Whether a remote URL is clearly not GitHub (so `gh` cannot know its PRs).
70
+ * Local paths and unknown shapes return false: gh is then still tried.
71
+ *
72
+ * @param url - `remote.origin.url` as configured (not rewritten by insteadOf)
73
+ * @returns True for ssh/http(s) URLs whose host does not contain `github`
74
+ */
75
+ export declare function isNonGithubRemote(url: string): boolean;
76
+ //# sourceMappingURL=worktree-landed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-landed.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/worktree/worktree-landed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAElF,4DAA4D;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAEhG,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAElE,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC/B,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AASD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CA6B9I;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBzH;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAI9J;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGtD"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Worktree janitor — "has this work landed?" checks that do not depend on the
3
+ * git host.
4
+ *
5
+ * A squash merge (Bitbucket, GitLab, GitHub "squash and merge") leaves the
6
+ * branch tip out of the default branch's history, so `merge-base
7
+ * --is-ancestor` says "not merged" forever. These checks look at CONTENT:
8
+ *
9
+ * 1. Tree containment: merging HEAD into `origin/<default>` changes nothing
10
+ * (`git merge-tree --write-tree` yields exactly the default branch's tree).
11
+ * Needs git >= 2.38; older git falls back to `git cherry`.
12
+ * 2. Squash patch-equivalence: the combined diff `merge-base..HEAD` has the
13
+ * same patch-id as one commit that the default branch gained since — the
14
+ * squash commit. Also catches the case where the default branch has since
15
+ * changed the same files (check 1 then conflicts).
16
+ *
17
+ * Both are read-only (merge-tree writes loose objects only) and bounded by
18
+ * the per-command timeout. Work that is in neither is NOT landed and stays.
19
+ *
20
+ * @module services/worktree/worktree-landed
21
+ */
22
+ import { WORKTREE_JANITOR_CONSTANTS } from '../../constants.js';
23
+ /** First line of `git patch-id` output: `<patch-id> <commit-id>`. */
24
+ function patchIdOf(output) {
25
+ const first = output.split('\n').find((l) => l.trim() !== '');
26
+ const id = first?.trim().split(/\s+/)[0];
27
+ return id && /^[0-9a-f]{8,}$/i.test(id) ? id : null;
28
+ }
29
+ /**
30
+ * Whether merging `head` into `defaultRef` would change nothing.
31
+ *
32
+ * @param git - git runner
33
+ * @param repo - Main worktree of the repo
34
+ * @param defaultRef - e.g. `origin/main`
35
+ * @param head - Worktree HEAD commit
36
+ * @param state - Per-repo memo (mutated)
37
+ * @returns True when HEAD's changes are already in the default branch
38
+ */
39
+ export async function isTreeContained(git, repo, defaultRef, head, state) {
40
+ if (state.defaultTree === undefined) {
41
+ const t = await git(['-C', repo, 'rev-parse', '--verify', '--quiet', `${defaultRef}^{tree}`]);
42
+ state.defaultTree = t.code === 0 && t.stdout.trim() ? t.stdout.trim() : null;
43
+ }
44
+ if (!state.defaultTree)
45
+ return false;
46
+ if (state.mergeTreeSupported !== false) {
47
+ const r = await git(['-C', repo, 'merge-tree', '--write-tree', '--no-messages', defaultRef, head]);
48
+ if (r.code === 0) {
49
+ state.mergeTreeSupported = true;
50
+ return r.stdout.split('\n')[0]?.trim() === state.defaultTree;
51
+ }
52
+ // Exit 1 = conflicts: not contained.
53
+ if (r.code === 1) {
54
+ state.mergeTreeSupported = true;
55
+ return false;
56
+ }
57
+ // Usage error = git < 2.38 (fall through to `git cherry`); a timeout or
58
+ // other failure just means "not proven".
59
+ if (!/usage|unknown option|not a git command|unrecognized/i.test(r.stderr))
60
+ return false;
61
+ state.mergeTreeSupported = false;
62
+ }
63
+ // git < 2.38: every commit of HEAD has a patch-equivalent in the default branch.
64
+ const cherry = await git(['-C', repo, 'cherry', defaultRef, head]);
65
+ if (cherry.code !== 0)
66
+ return false;
67
+ const lines = cherry.stdout.split('\n').filter((l) => l.trim() !== '');
68
+ return lines.every((l) => l.startsWith('-'));
69
+ }
70
+ /**
71
+ * Whether the combined change of the branch (`merge-base..head`) equals one
72
+ * commit the default branch gained since — a squash merge, possibly followed
73
+ * by other changes to the same files.
74
+ *
75
+ * @param git - git runner
76
+ * @param repo - Main worktree of the repo
77
+ * @param defaultRef - e.g. `origin/main`
78
+ * @param head - Worktree HEAD commit
79
+ * @returns True when a squash-equivalent commit exists on the default branch
80
+ */
81
+ export async function isSquashEquivalent(git, repo, defaultRef, head) {
82
+ const mb = await git(['-C', repo, 'merge-base', defaultRef, head]);
83
+ const base = mb.code === 0 ? mb.stdout.trim() : '';
84
+ if (!base)
85
+ return false;
86
+ const diff = await git(['-C', repo, 'diff', '--binary', '--no-ext-diff', base, head]);
87
+ if (diff.code !== 0 || diff.stdout.trim() === '')
88
+ return false;
89
+ const mine = await git(['-C', repo, 'patch-id', '--stable'], { input: diff.stdout });
90
+ const wanted = mine.code === 0 ? patchIdOf(mine.stdout) : null;
91
+ if (!wanted)
92
+ return false;
93
+ const log = await git([
94
+ '-C', repo, 'log', '-p', '--binary', '--no-ext-diff', '--no-merges', '--format=commit %H',
95
+ `--max-count=${WORKTREE_JANITOR_CONSTANTS.SQUASH_SEARCH_MAX_COMMITS}`, `${base}..${defaultRef}`,
96
+ ]);
97
+ if (log.code !== 0 || log.stdout === '')
98
+ return false;
99
+ const theirs = await git(['-C', repo, 'patch-id', '--stable'], { input: log.stdout });
100
+ if (theirs.code !== 0)
101
+ return false;
102
+ return theirs.stdout.split('\n').some((l) => l.trim().split(/\s+/)[0] === wanted);
103
+ }
104
+ /**
105
+ * Run the content checks in order of cost.
106
+ *
107
+ * @param git - git runner
108
+ * @param repo - Main worktree of the repo
109
+ * @param defaultRef - e.g. `origin/main`
110
+ * @param head - Worktree HEAD commit
111
+ * @param state - Per-repo memo
112
+ * @returns The signal that proved the work landed, or null
113
+ */
114
+ export async function contentLandedSignal(git, repo, defaultRef, head, state) {
115
+ if (await isTreeContained(git, repo, defaultRef, head, state))
116
+ return 'tree-contained';
117
+ if (await isSquashEquivalent(git, repo, defaultRef, head))
118
+ return 'squash-equivalent';
119
+ return null;
120
+ }
121
+ /**
122
+ * Whether a remote URL is clearly not GitHub (so `gh` cannot know its PRs).
123
+ * Local paths and unknown shapes return false: gh is then still tried.
124
+ *
125
+ * @param url - `remote.origin.url` as configured (not rewritten by insteadOf)
126
+ * @returns True for ssh/http(s) URLs whose host does not contain `github`
127
+ */
128
+ export function isNonGithubRemote(url) {
129
+ const m = /^(?:[\w.+-]+@|(?:ssh|https?|git):\/\/(?:[^@/]+@)?)([^:/\s]+)/.exec(url.trim());
130
+ return !!m && !/github/i.test(m[1]);
131
+ }
132
+ //# sourceMappingURL=worktree-landed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-landed.js","sourceRoot":"","sources":["../../../../../../backend/src/services/worktree/worktree-landed.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  {
2
- "commit": "d639a98ef796b4ad9fc82c3f1a979a1fe9455ad1",
3
- "builtAt": "2026-10-11T05:00:45.524Z"
2
+ "commit": "467a93b68e9f61f645339b42e4e0347c506b41ac",
3
+ "builtAt": "2026-10-11T14:10:15.002Z"
4
4
  }