crewly 1.20.379 → 1.20.381
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/dist/backend/backend/src/constants.d.ts +2 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +2 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +8 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +1 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.d.ts +21 -1
- package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js +94 -41
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts +2 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js +3 -2
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +14 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +20 -5
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
- package/dist/backend/backend/src/services/system/scheduled-commands.service.d.ts +24 -0
- package/dist/backend/backend/src/services/system/scheduled-commands.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/system/scheduled-commands.service.js +48 -1
- package/dist/backend/backend/src/services/system/scheduled-commands.service.js.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts +18 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js +35 -4
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +2 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +2 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.d.ts +21 -1
- package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.js +94 -41
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,6 +20,9 @@
|
|
|
20
20
|
* credential is minted in memory per spawn and is never written to a file or
|
|
21
21
|
* a log.
|
|
22
22
|
* - Every skip is logged at debug; a run is logged at info only when spawned.
|
|
23
|
+
* The one exception is a missing cwd: it is logged at error and sent to the
|
|
24
|
+
* owner once (not every tick) until the directory comes back, because the job
|
|
25
|
+
* is silently not running.
|
|
23
26
|
*
|
|
24
27
|
* Config shape: `[{name, cwd, command, args?, intervalMinutes, enabled?, lockFile?}]`.
|
|
25
28
|
*
|
|
@@ -76,6 +79,12 @@ export interface ScheduledCommandsDeps {
|
|
|
76
79
|
openLog?: (file: string) => number;
|
|
77
80
|
/** Closes an fd */
|
|
78
81
|
closeLog?: (fd: number) => void;
|
|
82
|
+
/** Owner/TL alert path (default: none); returns true when delivered */
|
|
83
|
+
notify?: (notice: {
|
|
84
|
+
title: string;
|
|
85
|
+
message: string;
|
|
86
|
+
urgent: boolean;
|
|
87
|
+
}) => Promise<boolean>;
|
|
79
88
|
}
|
|
80
89
|
/**
|
|
81
90
|
* True when a process with this pid exists (signal 0 probe).
|
|
@@ -93,6 +102,19 @@ export declare function defaultIsPidAlive(pid: number): boolean;
|
|
|
93
102
|
* @returns Entries, disabled count and warnings
|
|
94
103
|
*/
|
|
95
104
|
export declare function parseScheduledCommands(text: string): LoadedScheduledCommands;
|
|
105
|
+
/**
|
|
106
|
+
* Read the working directories of the enabled scheduled commands.
|
|
107
|
+
*
|
|
108
|
+
* Used by the worktree janitor so it never removes a worktree a scheduled
|
|
109
|
+
* command runs in. A missing file is a normal "no jobs" (empty list); an
|
|
110
|
+
* unreadable or invalid file is reported as null so the caller can tell
|
|
111
|
+
* "nothing configured" from "could not read".
|
|
112
|
+
*
|
|
113
|
+
* @param configPath - Path of scheduled-commands.json
|
|
114
|
+
* @param readFile - File reader (default fs.readFileSync)
|
|
115
|
+
* @returns Absolute cwds of enabled entries (`~` expanded), or null when the file could not be read or parsed
|
|
116
|
+
*/
|
|
117
|
+
export declare function readScheduledCommandCwds(configPath: string, readFile?: (file: string) => string): string[] | null;
|
|
96
118
|
/** Outcome of one tick for one entry (also returned to tests). */
|
|
97
119
|
export type RunOutcome = 'spawned' | 'skipped-running' | 'skipped-lock' | 'skipped-no-cwd' | 'spawn-failed';
|
|
98
120
|
/**
|
|
@@ -104,6 +126,8 @@ export declare class ScheduledCommandsService {
|
|
|
104
126
|
private timers;
|
|
105
127
|
/** Last spawned pid per entry name */
|
|
106
128
|
private readonly lastPid;
|
|
129
|
+
/** Entries whose missing cwd was already reported (cleared when the cwd returns) */
|
|
130
|
+
private readonly missingCwdAlerted;
|
|
107
131
|
/**
|
|
108
132
|
* @param deps - Paths, logger and optional process/filesystem overrides
|
|
109
133
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-commands.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/system/scheduled-commands.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scheduled-commands.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/system/scheduled-commands.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,9 @@
|
|
|
20
20
|
* credential is minted in memory per spawn and is never written to a file or
|
|
21
21
|
* a log.
|
|
22
22
|
* - Every skip is logged at debug; a run is logged at info only when spawned.
|
|
23
|
+
* The one exception is a missing cwd: it is logged at error and sent to the
|
|
24
|
+
* owner once (not every tick) until the directory comes back, because the job
|
|
25
|
+
* is silently not running.
|
|
23
26
|
*
|
|
24
27
|
* Config shape: `[{name, cwd, command, args?, intervalMinutes, enabled?, lockFile?}]`.
|
|
25
28
|
*
|
|
@@ -138,6 +141,31 @@ export function parseScheduledCommands(text) {
|
|
|
138
141
|
});
|
|
139
142
|
return out;
|
|
140
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Read the working directories of the enabled scheduled commands.
|
|
146
|
+
*
|
|
147
|
+
* Used by the worktree janitor so it never removes a worktree a scheduled
|
|
148
|
+
* command runs in. A missing file is a normal "no jobs" (empty list); an
|
|
149
|
+
* unreadable or invalid file is reported as null so the caller can tell
|
|
150
|
+
* "nothing configured" from "could not read".
|
|
151
|
+
*
|
|
152
|
+
* @param configPath - Path of scheduled-commands.json
|
|
153
|
+
* @param readFile - File reader (default fs.readFileSync)
|
|
154
|
+
* @returns Absolute cwds of enabled entries (`~` expanded), or null when the file could not be read or parsed
|
|
155
|
+
*/
|
|
156
|
+
export function readScheduledCommandCwds(configPath, readFile = (f) => readFileSync(f, 'utf-8')) {
|
|
157
|
+
let text;
|
|
158
|
+
try {
|
|
159
|
+
text = readFile(configPath);
|
|
160
|
+
}
|
|
161
|
+
catch (err) {
|
|
162
|
+
return err.code === 'ENOENT' ? [] : null;
|
|
163
|
+
}
|
|
164
|
+
const loaded = parseScheduledCommands(text);
|
|
165
|
+
if (loaded.entries.length === 0 && loaded.warnings.length > 0)
|
|
166
|
+
return null;
|
|
167
|
+
return loaded.entries.map((e) => e.cwd);
|
|
168
|
+
}
|
|
141
169
|
/**
|
|
142
170
|
* Interval runner for owner-configured host commands.
|
|
143
171
|
*/
|
|
@@ -147,6 +175,8 @@ export class ScheduledCommandsService {
|
|
|
147
175
|
timers = [];
|
|
148
176
|
/** Last spawned pid per entry name */
|
|
149
177
|
lastPid = new Map();
|
|
178
|
+
/** Entries whose missing cwd was already reported (cleared when the cwd returns) */
|
|
179
|
+
missingCwdAlerted = new Set();
|
|
150
180
|
/**
|
|
151
181
|
* @param deps - Paths, logger and optional process/filesystem overrides
|
|
152
182
|
*/
|
|
@@ -161,6 +191,7 @@ export class ScheduledCommandsService {
|
|
|
161
191
|
return openSync(f, 'a');
|
|
162
192
|
},
|
|
163
193
|
closeLog: closeSync,
|
|
194
|
+
notify: async () => false,
|
|
164
195
|
...deps,
|
|
165
196
|
};
|
|
166
197
|
}
|
|
@@ -249,9 +280,25 @@ export class ScheduledCommandsService {
|
|
|
249
280
|
}
|
|
250
281
|
}
|
|
251
282
|
if (!this.deps.pathExists(entry.cwd)) {
|
|
252
|
-
|
|
283
|
+
if (!this.missingCwdAlerted.has(entry.name)) {
|
|
284
|
+
this.missingCwdAlerted.add(entry.name);
|
|
285
|
+
logger.error(`scheduled-commands: ${entry.name} not run, cwd missing`, { cwd: entry.cwd });
|
|
286
|
+
void this.deps
|
|
287
|
+
.notify({
|
|
288
|
+
title: `Scheduled command "${entry.name}" is not running`,
|
|
289
|
+
message: `Its working directory is missing: ${entry.cwd}. The job is skipped every ${entry.intervalMinutes} min until the directory is restored (this alert is sent once).`,
|
|
290
|
+
urgent: true,
|
|
291
|
+
})
|
|
292
|
+
.catch((err) => logger.error(`scheduled-commands: ${entry.name} missing-cwd alert failed`, {
|
|
293
|
+
error: err instanceof Error ? err.message : String(err),
|
|
294
|
+
}));
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
logger.debug(`scheduled-commands: ${entry.name} not run, cwd still missing`, { cwd: entry.cwd });
|
|
298
|
+
}
|
|
253
299
|
return 'skipped-no-cwd';
|
|
254
300
|
}
|
|
301
|
+
this.missingCwdAlerted.delete(entry.name);
|
|
255
302
|
let fd = -1;
|
|
256
303
|
try {
|
|
257
304
|
const logFile = path.join(this.deps.logDir, SCHEDULED_COMMANDS.LOG_FILE_TEMPLATE.replace('{name}', entry.name));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-commands.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/system/scheduled-commands.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scheduled-commands.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/system/scheduled-commands.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
* a known repo is a candidate, wherever it lives and whatever its branch.
|
|
24
24
|
* 2. It is not locked (`git worktree lock`; Claude Code locks the worktree of
|
|
25
25
|
* a running subagent).
|
|
26
|
+
* 2b. It is not the cwd (or a parent of the cwd) of an enabled scheduled
|
|
27
|
+
* command in `<CREWLY_HOME>/scheduled-commands.json` (reason
|
|
28
|
+
* `scheduled-command`); removing it would silently stop that job. The pass
|
|
29
|
+
* reports how many scheduled cwds it read. If the file cannot be read, every
|
|
30
|
+
* clean worktree is kept for that pass (`scheduled-probe-failed`).
|
|
26
31
|
* 3. It is not under `<repo>/.crewly/worktrees/` — that directory belongs to
|
|
27
32
|
* the per-WorkItem worktree feature (#814), which does its own
|
|
28
33
|
* WorkItem-aware cleanup.
|
|
@@ -140,7 +145,7 @@ import { type DirCapSummary, type TmpSweepSummary } from './tmp-janitor.js';
|
|
|
140
145
|
* Why a worktree is kept, or why it may go. (`not-agent-worktree` is retired:
|
|
141
146
|
* location no longer decides eligibility, only the idle threshold.)
|
|
142
147
|
*/
|
|
143
|
-
export type WorktreeReason = 'main-worktree' | 'bare' | 'prunable' | 'locked' | 'managed-by-workitem-worktrees' | 'agent-session-inside' | 'process-inside' | 'cwd-probe-failed' | 'recent' | 'dirty' | 'status-failed' | 'not-merged' | 'merged' | 'pr-merged' | 'content-landed' | 'archived';
|
|
148
|
+
export type WorktreeReason = 'main-worktree' | 'bare' | 'prunable' | 'locked' | 'scheduled-command' | 'scheduled-probe-failed' | 'managed-by-workitem-worktrees' | 'agent-session-inside' | 'process-inside' | 'cwd-probe-failed' | 'recent' | 'dirty' | 'status-failed' | 'not-merged' | 'merged' | 'pr-merged' | 'content-landed' | 'archived';
|
|
144
149
|
/** What the age tier did (or would do) to a kept worktree. */
|
|
145
150
|
export interface WorktreeTierOutcome {
|
|
146
151
|
/** The tier reached */
|
|
@@ -213,6 +218,8 @@ export interface JanitorRunSummary {
|
|
|
213
218
|
wouldRemove: number;
|
|
214
219
|
/** Worktrees kept */
|
|
215
220
|
kept: number;
|
|
221
|
+
/** Number of scheduled-command cwds read for the keep check (null = unreadable) */
|
|
222
|
+
scheduledCwdsRead?: number | null;
|
|
216
223
|
/** Bytes freed by deleting regenerable dirs (node_modules, .next, dist, …) from kept worktrees (strip tier) */
|
|
217
224
|
reclaimedBytes: number;
|
|
218
225
|
/** Worktrees archived as a patch and removed (archive tier) */
|
|
@@ -282,6 +289,8 @@ export interface WorktreeJanitorOptions {
|
|
|
282
289
|
listRepoPaths?: () => Promise<string[]>;
|
|
283
290
|
/** Where Crewly agents and processes are working; null = probe failed (default: sessions + lsof) */
|
|
284
291
|
listBusyCwds?: () => Promise<BusyCwd[] | null>;
|
|
292
|
+
/** cwds of enabled scheduled commands; null = could not be read (default: scheduled-commands.json) */
|
|
293
|
+
listScheduledCwds?: () => Promise<string[] | null>;
|
|
285
294
|
/** git executable (default `git`) */
|
|
286
295
|
gitBin?: string;
|
|
287
296
|
/** gh executable (default `gh`); set to null to never use gh */
|
|
@@ -538,6 +547,7 @@ export declare class WorktreeJanitorService {
|
|
|
538
547
|
private readUnmergedState;
|
|
539
548
|
private writeUnmergedState;
|
|
540
549
|
private resolveRepos;
|
|
550
|
+
private safeScheduledCwds;
|
|
541
551
|
private safeBusyCwds;
|
|
542
552
|
/** Known agent location (short idle threshold) vs anywhere else (long one). */
|
|
543
553
|
private isAgentLocation;
|
|
@@ -592,4 +602,11 @@ export declare function defaultLiveSessionNames(): Promise<string[]>;
|
|
|
592
602
|
* @returns Busy directories, or null when the process probe failed
|
|
593
603
|
*/
|
|
594
604
|
export declare function defaultListBusyCwds(): Promise<BusyCwd[] | null>;
|
|
605
|
+
/**
|
|
606
|
+
* Default scheduled-command probe: the cwds of the enabled entries in
|
|
607
|
+
* `<CREWLY_HOME>/scheduled-commands.json`.
|
|
608
|
+
*
|
|
609
|
+
* @returns Absolute cwds (empty when no config file), or null when the file is unreadable
|
|
610
|
+
*/
|
|
611
|
+
export declare function defaultListScheduledCwds(): Promise<string[] | null>;
|
|
595
612
|
//# sourceMappingURL=worktree-janitor.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-janitor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/worktree/worktree-janitor.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"worktree-janitor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/worktree/worktree-janitor.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
* a known repo is a candidate, wherever it lives and whatever its branch.
|
|
24
24
|
* 2. It is not locked (`git worktree lock`; Claude Code locks the worktree of
|
|
25
25
|
* a running subagent).
|
|
26
|
+
* 2b. It is not the cwd (or a parent of the cwd) of an enabled scheduled
|
|
27
|
+
* command in `<CREWLY_HOME>/scheduled-commands.json` (reason
|
|
28
|
+
* `scheduled-command`); removing it would silently stop that job. The pass
|
|
29
|
+
* reports how many scheduled cwds it read. If the file cannot be read, every
|
|
30
|
+
* clean worktree is kept for that pass (`scheduled-probe-failed`).
|
|
26
31
|
* 3. It is not under `<repo>/.crewly/worktrees/` — that directory belongs to
|
|
27
32
|
* the per-WorkItem worktree feature (#814), which does its own
|
|
28
33
|
* WorkItem-aware cleanup.
|
|
@@ -130,7 +135,7 @@
|
|
|
130
135
|
import * as fs from 'fs';
|
|
131
136
|
import * as os from 'os';
|
|
132
137
|
import * as path from 'path';
|
|
133
|
-
import { LOG_ROTATION_CONSTANTS, ORCHESTRATOR_SESSION_NAME, WORKTREE_JANITOR_CONSTANTS } from '../../constants.js';
|
|
138
|
+
import { LOG_ROTATION_CONSTANTS, ORCHESTRATOR_SESSION_NAME, SCHEDULED_COMMANDS, WORKTREE_JANITOR_CONSTANTS } from '../../constants.js';
|
|
134
139
|
import { LoggerService } from '../core/logger.service.js';
|
|
135
140
|
import { getCrewlyHomePath } from '../core/crewly-home.utils.js';
|
|
136
141
|
import { safeReadJson, modifyJsonFile } from '../../utils/file-io.utils.js';
|
|
@@ -649,6 +654,7 @@ export class WorktreeJanitorService {
|
|
|
649
654
|
removed: 0,
|
|
650
655
|
wouldRemove: 0,
|
|
651
656
|
kept: 0,
|
|
657
|
+
scheduledCwdsRead: null,
|
|
652
658
|
reclaimedBytes: 0,
|
|
653
659
|
archived: 0,
|
|
654
660
|
archivedBytes: 0,
|
|
@@ -688,12 +694,14 @@ export class WorktreeJanitorService {
|
|
|
688
694
|
const busy = await this.safeBusyCwds();
|
|
689
695
|
let tierState = await this.readTierState();
|
|
690
696
|
const existing = new Set();
|
|
697
|
+
const scheduled = await this.safeScheduledCwds();
|
|
698
|
+
summary.scheduledCwdsRead = scheduled === null ? null : scheduled.length;
|
|
691
699
|
for (const repo of repos) {
|
|
692
700
|
let removedHere = 0;
|
|
693
701
|
const unmerged = [];
|
|
694
702
|
for (const entry of repo.entries) {
|
|
695
703
|
existing.add(canonicalPath(entry.path));
|
|
696
|
-
const verdict = await this.evaluate(repo, entry, busy, summary.lowDisk, idleOverrideMs);
|
|
704
|
+
const verdict = await this.evaluate(repo, entry, busy, scheduled, summary.lowDisk, idleOverrideMs);
|
|
697
705
|
const outcome = { ...verdict, removed: false, forced: false, branchDeleted: false };
|
|
698
706
|
if (verdict.decision === 'keep') {
|
|
699
707
|
tierState = await this.applyTier(repo, entry, outcome, busy, tierState, summary, dryRun);
|
|
@@ -756,7 +764,7 @@ export class WorktreeJanitorService {
|
|
|
756
764
|
const wouldText = would.length > 0
|
|
757
765
|
? `; not yet armed: would strip ${wouldStrip.length} (${formatBytes(wouldStrip.reduce((n, w) => n + (w.tier?.freedBytes ?? 0), 0))}), archive ${would.length - wouldStrip.length}`
|
|
758
766
|
: '';
|
|
759
|
-
this.logger.info(`Worktree janitor: removed ${summary.removed}${summary.archived > 0 ? ` (${summary.archived} archived as patches, ${formatBytes(summary.archivedBytes)})` : ''}, kept ${summary.kept}${reasons ? ` (${reasons})` : ''}${summary.reclaimedBytes > 0 ? `, stripped ${formatBytes(summary.reclaimedBytes)} of node_modules/build output from idle kept worktrees` : ''}${wouldText} across ${summary.repos.length} repo(s) in ${summary.durationMs}ms`, { removed: summary.worktrees.filter((w) => w.removed).map((w) => w.path), lowDisk: summary.lowDisk, retentionArmed: summary.retentionArmed });
|
|
767
|
+
this.logger.info(`Worktree janitor: removed ${summary.removed}${summary.archived > 0 ? ` (${summary.archived} archived as patches, ${formatBytes(summary.archivedBytes)})` : ''}, kept ${summary.kept}${reasons ? ` (${reasons})` : ''}${summary.reclaimedBytes > 0 ? `, stripped ${formatBytes(summary.reclaimedBytes)} of node_modules/build output from idle kept worktrees` : ''}${wouldText} across ${summary.repos.length} repo(s) in ${summary.durationMs}ms; ${summary.scheduledCwdsRead == null ? 'scheduled-command cwds unreadable (all clean worktrees kept)' : `${summary.scheduledCwdsRead} scheduled-command cwd(s) read`}`, { removed: summary.worktrees.filter((w) => w.removed).map((w) => w.path), lowDisk: summary.lowDisk, retentionArmed: summary.retentionArmed });
|
|
760
768
|
const sc = summary.scratch;
|
|
761
769
|
if (sc) {
|
|
762
770
|
const scReasons = Object.entries(sc.keptReasons)
|
|
@@ -1119,6 +1127,14 @@ export class WorktreeJanitorService {
|
|
|
1119
1127
|
}
|
|
1120
1128
|
return [...seen.values()];
|
|
1121
1129
|
}
|
|
1130
|
+
async safeScheduledCwds() {
|
|
1131
|
+
try {
|
|
1132
|
+
return await (this.opts.listScheduledCwds ?? defaultListScheduledCwds)();
|
|
1133
|
+
}
|
|
1134
|
+
catch {
|
|
1135
|
+
return null;
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1122
1138
|
async safeBusyCwds() {
|
|
1123
1139
|
try {
|
|
1124
1140
|
return await (this.opts.listBusyCwds ?? defaultListBusyCwds)();
|
|
@@ -1141,7 +1157,7 @@ export class WorktreeJanitorService {
|
|
|
1141
1157
|
/**
|
|
1142
1158
|
* Apply the removal rules to one worktree (read-only apart from fetch).
|
|
1143
1159
|
*/
|
|
1144
|
-
async evaluate(repo, entry, busy, lowDisk, idleOverrideMs) {
|
|
1160
|
+
async evaluate(repo, entry, busy, scheduled, lowDisk, idleOverrideMs) {
|
|
1145
1161
|
const base = { repo: repo.main, path: entry.path, branch: entry.branch, head: entry.head };
|
|
1146
1162
|
const keep = (reason, detail, idleMs) => ({
|
|
1147
1163
|
...base,
|
|
@@ -1161,6 +1177,11 @@ export class WorktreeJanitorService {
|
|
|
1161
1177
|
if (isPathInside(entry.path, path.join(repo.main, WORKTREE_JANITOR_CONSTANTS.MANAGED_WORKTREE_DIR))) {
|
|
1162
1178
|
return keep('managed-by-workitem-worktrees');
|
|
1163
1179
|
}
|
|
1180
|
+
if (scheduled === null)
|
|
1181
|
+
return keep('scheduled-probe-failed');
|
|
1182
|
+
const sched = scheduled.find((c) => isPathInside(c, entry.path));
|
|
1183
|
+
if (sched)
|
|
1184
|
+
return keep('scheduled-command', sched);
|
|
1164
1185
|
if (busy === null)
|
|
1165
1186
|
return keep('cwd-probe-failed');
|
|
1166
1187
|
const hit = busy.find((b) => isPathInside(b.cwd, entry.path));
|
|
@@ -1466,4 +1487,14 @@ export async function defaultListBusyCwds() {
|
|
|
1466
1487
|
out.push({ cwd, source: 'process' });
|
|
1467
1488
|
return out;
|
|
1468
1489
|
}
|
|
1490
|
+
/**
|
|
1491
|
+
* Default scheduled-command probe: the cwds of the enabled entries in
|
|
1492
|
+
* `<CREWLY_HOME>/scheduled-commands.json`.
|
|
1493
|
+
*
|
|
1494
|
+
* @returns Absolute cwds (empty when no config file), or null when the file is unreadable
|
|
1495
|
+
*/
|
|
1496
|
+
export async function defaultListScheduledCwds() {
|
|
1497
|
+
const { readScheduledCommandCwds } = await import('../system/scheduled-commands.service.js');
|
|
1498
|
+
return readScheduledCommandCwds(path.join(getCrewlyHomePath(), SCHEDULED_COMMANDS.CONFIG_FILE));
|
|
1499
|
+
}
|
|
1469
1500
|
//# sourceMappingURL=worktree-janitor.service.js.map
|