@coralai/sps-cli 0.37.1 → 0.37.3

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 (50) hide show
  1. package/dist/commands/agentCommand.js +1 -1
  2. package/dist/commands/agentCommand.js.map +1 -1
  3. package/dist/commands/doctor.js +2 -12
  4. package/dist/commands/doctor.js.map +1 -1
  5. package/dist/commands/projectInit.js.map +1 -1
  6. package/dist/commands/reset.d.ts.map +1 -1
  7. package/dist/commands/reset.js +4 -85
  8. package/dist/commands/reset.js.map +1 -1
  9. package/dist/commands/tick.d.ts +1 -1
  10. package/dist/commands/tick.d.ts.map +1 -1
  11. package/dist/commands/tick.js +37 -5
  12. package/dist/commands/tick.js.map +1 -1
  13. package/dist/core/sessionCleanup.d.ts +18 -0
  14. package/dist/core/sessionCleanup.d.ts.map +1 -0
  15. package/dist/core/sessionCleanup.js +97 -0
  16. package/dist/core/sessionCleanup.js.map +1 -0
  17. package/dist/core/sessionCleanup.test.d.ts +2 -0
  18. package/dist/core/sessionCleanup.test.d.ts.map +1 -0
  19. package/dist/core/sessionCleanup.test.js +158 -0
  20. package/dist/core/sessionCleanup.test.js.map +1 -0
  21. package/dist/core/sessionLiveness.d.ts.map +1 -1
  22. package/dist/core/sessionLiveness.js.map +1 -1
  23. package/dist/core/taskPrompts.d.ts.map +1 -1
  24. package/dist/core/taskPrompts.js +18 -73
  25. package/dist/core/taskPrompts.js.map +1 -1
  26. package/dist/engines/EventHandler.d.ts +0 -1
  27. package/dist/engines/EventHandler.d.ts.map +1 -1
  28. package/dist/engines/EventHandler.js +1 -33
  29. package/dist/engines/EventHandler.js.map +1 -1
  30. package/dist/engines/MonitorEngine.d.ts +1 -0
  31. package/dist/engines/MonitorEngine.d.ts.map +1 -1
  32. package/dist/engines/MonitorEngine.js +64 -1
  33. package/dist/engines/MonitorEngine.js.map +1 -1
  34. package/dist/engines/MonitorEngine.test.d.ts +2 -0
  35. package/dist/engines/MonitorEngine.test.d.ts.map +1 -0
  36. package/dist/engines/MonitorEngine.test.js +171 -0
  37. package/dist/engines/MonitorEngine.test.js.map +1 -0
  38. package/dist/engines/StageEngine.d.ts +3 -3
  39. package/dist/engines/StageEngine.d.ts.map +1 -1
  40. package/dist/engines/StageEngine.js +20 -23
  41. package/dist/engines/StageEngine.js.map +1 -1
  42. package/dist/manager/runtime-coordinator.d.ts +11 -16
  43. package/dist/manager/runtime-coordinator.d.ts.map +1 -1
  44. package/dist/manager/runtime-coordinator.js +20 -330
  45. package/dist/manager/runtime-coordinator.js.map +1 -1
  46. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  47. package/dist/manager/worker-manager-impl.js +2 -3
  48. package/dist/manager/worker-manager-impl.js.map +1 -1
  49. package/package.json +1 -1
  50. package/skills/sps-pipeline/SKILL.md +154 -205
@@ -1,8 +1,29 @@
1
+ /**
2
+ * @module tick
3
+ * @description 主 tick 循环命令,协调调度、流水线、QA 和监控引擎的周期性执行
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-03-19
10
+ * @updated 2026-04-03
11
+ *
12
+ * @role command
13
+ * @layer command
14
+ * @boundedContext pipeline
15
+ *
16
+ * @trigger sps tick <project> [--interval N] [--once] [--json]
17
+ * @inputs 项目名、执行间隔、单次/循环模式、JSON 输出标志
18
+ * @outputs 每轮 tick 的调度/流水线/QA/监控结果
19
+ * @workflow 1. 获取锁 → 2. 加载引擎 → 3. 循环执行 scheduler→pipeline→QA→monitor → 4. 释放锁
20
+ */
1
21
  import { ProjectContext } from '../core/context.js';
2
22
  import { acquireTickLock, releaseTickLock } from '../core/lock.js';
3
23
  import { Logger } from '../core/logger.js';
4
24
  import { ProjectPipelineAdapter } from '../core/projectPipelineAdapter.js';
5
25
  import { RuntimeStore } from '../core/runtimeStore.js';
26
+ import { cleanupOrphanAcpSessions } from '../core/sessionCleanup.js';
6
27
  import { readState } from '../core/state.js';
7
28
  import { SPSEventHandler } from '../engines/EventHandler.js';
8
29
  import { MonitorEngine } from '../engines/MonitorEngine.js';
@@ -130,7 +151,7 @@ function createRunner(project) {
130
151
  * sps tick project-a project-b project-c
131
152
  *
132
153
  * Each project is fully isolated (own context, providers, engines, lock, state).
133
- * Manager modules (Supervisor, ResourceLimiter, CompletionJudge) are shared globally.
154
+ * Manager modules (Supervisor, CompletionJudge) are shared globally.
134
155
  * Projects are ticked sequentially within each cycle. One project's error
135
156
  * does not affect others.
136
157
  *
@@ -174,6 +195,20 @@ export async function executeTick(projects, flags) {
174
195
  globalLog.info(`Managing ${runners.length} projects: ${runners.map((r) => r.project).join(', ')}`);
175
196
  }
176
197
  const { supervisor } = getSharedModules();
198
+ // ─── Orphan cleanup: kill leftover ACP shims from prior crashed runs ──
199
+ // Must run BEFORE recovery so the new tick never tries to reattach to a
200
+ // dead/orphan shim. Safe for harness mode — only touches worker-* slots.
201
+ for (const runner of runners) {
202
+ try {
203
+ const result = await cleanupOrphanAcpSessions(runner.ctx, runner.log);
204
+ if (result.killed > 0 || result.cleaned > 0) {
205
+ runner.log.info(`Orphan cleanup: killed ${result.killed} process(es), cleared ${result.cleaned} stale session record(s)`);
206
+ }
207
+ }
208
+ catch (err) {
209
+ runner.log.warn(`Orphan cleanup failed (non-fatal): ${err instanceof Error ? err.message : String(err)}`);
210
+ }
211
+ }
177
212
  // ─── Recovery: restore active workers via WorkerManager ────────
178
213
  for (const runner of runners) {
179
214
  try {
@@ -285,6 +320,7 @@ async function runOneTick(runner, dryRun) {
285
320
  const opts = { dryRun };
286
321
  // ── Failure halt: check for NEEDS-FIX cards before doing anything ──
287
322
  // If any card has NEEDS-FIX, the pipeline is halted until resolved.
323
+ // TODO: This halts globally. Should only halt if the failed card's stage has halt: true.
288
324
  {
289
325
  const needsFixCards = [];
290
326
  for (const cardState of pipelineAdapter.activeStates) {
@@ -375,10 +411,6 @@ async function checkAllDone(ctx, taskBackend, pipelineAdapter) {
375
411
  return false;
376
412
  }
377
413
  }
378
- // Don't exit while worktree cleanup is pending — one more tick needed
379
- const cleanupQueue = state.worktreeCleanup ?? [];
380
- if (cleanupQueue.length > 0)
381
- return false;
382
414
  return true;
383
415
  }
384
416
  async function runStep(name, fn, log) {
@@ -1 +1 @@
1
- {"version":3,"file":"tick.js","sourceRoot":"","sources":["../../src/commands/tick.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tick.js","sourceRoot":"","sources":["../../src/commands/tick.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ProjectContext } from './context.js';
2
+ import type { Logger } from './logger.js';
3
+ export interface OrphanCleanupResult {
4
+ /** Number of session records removed from state.json */
5
+ cleaned: number;
6
+ /** Number of orphan processes killed */
7
+ killed: number;
8
+ }
9
+ /**
10
+ * Scan state.json for ACP sessions on pipeline slots (worker-*). If the recorded
11
+ * pid is still alive, kill the process (+ its descendants) — the new sps tick
12
+ * instance cannot reattach to a stdio-connected shim, so any survivor is an
13
+ * orphan. Clear all worker-* session records regardless of pid liveness.
14
+ *
15
+ * Preserves harness-mode sessions (slot prefix `session-`).
16
+ */
17
+ export declare function cleanupOrphanAcpSessions(ctx: ProjectContext, log: Logger): Promise<OrphanCleanupResult>;
18
+ //# sourceMappingURL=sessionCleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionCleanup.d.ts","sourceRoot":"","sources":["../../src/core/sessionCleanup.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC,CA6C9B"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @module sessionCleanup
3
+ * @description 启动时清理 ACP 孤儿 session,防止 sps tick 崩溃后残留的 shim+claude 进程堆积
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-04-17
10
+ * @updated 2026-04-17
11
+ *
12
+ * @role core
13
+ * @layer core
14
+ * @boundedContext session-lifecycle
15
+ *
16
+ * @trigger sps tick 启动时调用一次,在 WorkerManager.recover 之前
17
+ * @inputs ProjectContext, Logger
18
+ * @outputs { cleaned: number, killed: number }
19
+ * @workflow 读 state.sessions → 对每个 worker-* slot 检查 pid → 活则 kill → 清状态
20
+ */
21
+ import { execFileSync } from 'node:child_process';
22
+ import { isProcessAlive, killProcessGroup } from '../providers/outputParser.js';
23
+ import { RuntimeStore } from './runtimeStore.js';
24
+ /**
25
+ * Kill descendants of a PID using pgrep -P recursively. Best effort — ignores failures.
26
+ * Used as a safety net after killProcessGroup, since orphan processes may no longer
27
+ * be in their original process group (adopted by init).
28
+ */
29
+ function killDescendantsRecursive(parentPid, signal = 'SIGTERM') {
30
+ let children = [];
31
+ try {
32
+ const out = execFileSync('pgrep', ['-P', String(parentPid)], { encoding: 'utf-8', timeout: 2000 });
33
+ children = out.trim().split('\n').map(n => parseInt(n, 10)).filter(n => n > 0);
34
+ }
35
+ catch {
36
+ return;
37
+ }
38
+ for (const childPid of children) {
39
+ try {
40
+ process.kill(childPid, signal);
41
+ }
42
+ catch { /* already dead */ }
43
+ killDescendantsRecursive(childPid, signal);
44
+ }
45
+ }
46
+ /**
47
+ * Scan state.json for ACP sessions on pipeline slots (worker-*). If the recorded
48
+ * pid is still alive, kill the process (+ its descendants) — the new sps tick
49
+ * instance cannot reattach to a stdio-connected shim, so any survivor is an
50
+ * orphan. Clear all worker-* session records regardless of pid liveness.
51
+ *
52
+ * Preserves harness-mode sessions (slot prefix `session-`).
53
+ */
54
+ export async function cleanupOrphanAcpSessions(ctx, log) {
55
+ const store = new RuntimeStore(ctx);
56
+ const state = store.readState();
57
+ const sessions = state.sessions ?? {};
58
+ const pipelineSlots = [];
59
+ const liveOrphans = [];
60
+ for (const [slot, session] of Object.entries(sessions)) {
61
+ if (!slot.startsWith('worker-'))
62
+ continue;
63
+ pipelineSlots.push(slot);
64
+ if (session.pid && isProcessAlive(session.pid)) {
65
+ liveOrphans.push({ slot, pid: session.pid });
66
+ }
67
+ }
68
+ // Kill live orphans
69
+ for (const { slot, pid } of liveOrphans) {
70
+ log.warn(`Orphan ACP session detected: slot=${slot} pid=${pid} — killing`);
71
+ try {
72
+ // killProcessGroup handles SIGTERM → wait → SIGKILL for the process group
73
+ await killProcessGroup(pid, 3_000);
74
+ // Safety net: kill any remaining descendants (orphans adopted by init
75
+ // may not be in the original process group anymore)
76
+ killDescendantsRecursive(pid, 'SIGKILL');
77
+ }
78
+ catch (err) {
79
+ log.error(`Failed to kill orphan pid=${pid}: ${err instanceof Error ? err.message : String(err)}`);
80
+ }
81
+ }
82
+ // Clear all pipeline session records (regardless of pid liveness).
83
+ // The new AcpSdkAdapter has a fresh in-memory session Map and cannot
84
+ // reattach to old stdio, so old records are all stale.
85
+ if (pipelineSlots.length > 0) {
86
+ store.updateState('orphan-session-cleanup', (draft) => {
87
+ for (const slot of pipelineSlots) {
88
+ delete draft.sessions[slot];
89
+ }
90
+ });
91
+ }
92
+ return {
93
+ cleaned: pipelineSlots.length,
94
+ killed: liveOrphans.length,
95
+ };
96
+ }
97
+ //# sourceMappingURL=sessionCleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionCleanup.js","sourceRoot":"","sources":["../../src/core/sessionCleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,SAAiB,EAAE,SAAyB,SAAS;IACrF,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnG,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACpE,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAmB,EACnB,GAAW;IAEX,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IAEtC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,WAAW,GAAyC,EAAE,CAAC;IAE7D,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS;QAC1C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,KAAK,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,qCAAqC,IAAI,QAAQ,GAAG,YAAY,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,0EAA0E;YAC1E,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACnC,sEAAsE;YACtE,oDAAoD;YACpD,wBAAwB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,6BAA6B,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,qEAAqE;IACrE,uDAAuD;IACvD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC,KAAK,EAAE,EAAE;YACpD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,MAAM;QAC7B,MAAM,EAAE,WAAW,CAAC,MAAM;KAC3B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sessionCleanup.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionCleanup.test.d.ts","sourceRoot":"","sources":["../../src/core/sessionCleanup.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * @module sessionCleanup.test
3
+ * @description 孤儿 ACP session 清理的单元测试
4
+ *
5
+ * @author eddy
6
+ * @organization wykj
7
+ * @ownership wykj/eddy
8
+ *
9
+ * @created 2026-04-17
10
+ * @updated 2026-04-17
11
+ *
12
+ * @role test
13
+ * @layer core
14
+ * @boundedContext session-lifecycle
15
+ */
16
+ import { spawn } from 'node:child_process';
17
+ import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
18
+ import { tmpdir } from 'node:os';
19
+ import { join } from 'node:path';
20
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
21
+ import { Logger } from './logger.js';
22
+ import { cleanupOrphanAcpSessions } from './sessionCleanup.js';
23
+ function makeTempDir() {
24
+ return mkdtempSync(join(tmpdir(), 'sps-session-cleanup-test-'));
25
+ }
26
+ function makeCtx(tempDir) {
27
+ return {
28
+ projectName: 'test',
29
+ maxWorkers: 1,
30
+ paths: { stateFile: join(tempDir, 'state.json') },
31
+ };
32
+ }
33
+ function writeState(tempDir, sessions) {
34
+ const state = {
35
+ version: 3,
36
+ updatedAt: new Date().toISOString(),
37
+ updatedBy: 'test-setup',
38
+ workers: {},
39
+ leases: {},
40
+ activeCards: {},
41
+ worktreeEvidence: {},
42
+ pendingPMActions: [],
43
+ sessions,
44
+ };
45
+ writeFileSync(join(tempDir, 'state.json'), JSON.stringify(state));
46
+ }
47
+ function readSessions(tempDir) {
48
+ const content = JSON.parse(readFileSync(join(tempDir, 'state.json'), 'utf-8'));
49
+ return content.sessions ?? {};
50
+ }
51
+ /** Spawn a long-lived child process for use as a live orphan target. */
52
+ function spawnVictim() {
53
+ const child = spawn('sleep', ['30'], { detached: false, stdio: 'ignore' });
54
+ if (!child.pid)
55
+ throw new Error('failed to spawn test victim');
56
+ return {
57
+ pid: child.pid,
58
+ kill: () => { try {
59
+ child.kill('SIGKILL');
60
+ }
61
+ catch { /* noop */ } },
62
+ };
63
+ }
64
+ describe('cleanupOrphanAcpSessions', () => {
65
+ let tempDir;
66
+ beforeEach(() => { tempDir = makeTempDir(); });
67
+ afterEach(() => { rmSync(tempDir, { recursive: true, force: true }); });
68
+ it('clears stale session records whose pid is already dead', async () => {
69
+ // Pid 1 (init) is always alive, but we want "already dead" — use a clearly
70
+ // invalid pid (e.g. one that would fail isProcessAlive).
71
+ // A PID so large it can't exist. Linux defaults cap at 4194304.
72
+ const DEAD_PID = 9_999_999;
73
+ writeState(tempDir, {
74
+ 'worker-1': {
75
+ slot: 'worker-1', tool: 'claude', sessionId: 'old-session',
76
+ sessionName: 'sps-acp-test-worker-1', pid: DEAD_PID, cwd: '/tmp',
77
+ status: 'idle', sessionState: 'ready', currentRun: null, pendingInput: null,
78
+ createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(),
79
+ lastSeenAt: null, lastPaneText: '',
80
+ },
81
+ });
82
+ const ctx = makeCtx(tempDir);
83
+ const log = new Logger('test', 'test');
84
+ const result = await cleanupOrphanAcpSessions(ctx, log);
85
+ expect(result.cleaned).toBe(1);
86
+ expect(result.killed).toBe(0);
87
+ expect(readSessions(tempDir)).toEqual({});
88
+ });
89
+ it('kills live orphan process and clears its record', async () => {
90
+ const victim = spawnVictim();
91
+ try {
92
+ writeState(tempDir, {
93
+ 'worker-1': {
94
+ slot: 'worker-1', tool: 'claude', sessionId: 's1',
95
+ sessionName: 'sps-acp-test-worker-1', pid: victim.pid, cwd: '/tmp',
96
+ status: 'active', sessionState: 'busy', currentRun: null, pendingInput: null,
97
+ createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(),
98
+ lastSeenAt: null, lastPaneText: '',
99
+ },
100
+ });
101
+ const ctx = makeCtx(tempDir);
102
+ const log = new Logger('test', 'test');
103
+ const result = await cleanupOrphanAcpSessions(ctx, log);
104
+ expect(result.cleaned).toBe(1);
105
+ expect(result.killed).toBe(1);
106
+ expect(readSessions(tempDir)).toEqual({});
107
+ // Give kill some time, then verify the victim is actually dead
108
+ await new Promise((r) => setTimeout(r, 500));
109
+ let alive = true;
110
+ try {
111
+ process.kill(victim.pid, 0);
112
+ }
113
+ catch {
114
+ alive = false;
115
+ }
116
+ expect(alive).toBe(false);
117
+ }
118
+ finally {
119
+ victim.kill();
120
+ }
121
+ });
122
+ it('does NOT touch harness session-* slots', async () => {
123
+ const harnessSession = {
124
+ slot: 'session-my-chat', tool: 'claude', sessionId: 'chat-session',
125
+ sessionName: 'sps-session-my-chat', pid: 9_999_999, cwd: '/tmp',
126
+ status: 'idle', sessionState: 'ready', currentRun: null, pendingInput: null,
127
+ createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(),
128
+ lastSeenAt: null, lastPaneText: '',
129
+ };
130
+ writeState(tempDir, {
131
+ 'worker-1': {
132
+ slot: 'worker-1', tool: 'claude', sessionId: 'old',
133
+ sessionName: 'sps-acp-test-worker-1', pid: 9_999_999, cwd: '/tmp',
134
+ status: 'idle', sessionState: 'ready', currentRun: null, pendingInput: null,
135
+ createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(),
136
+ lastSeenAt: null, lastPaneText: '',
137
+ },
138
+ 'session-my-chat': harnessSession,
139
+ });
140
+ const ctx = makeCtx(tempDir);
141
+ const log = new Logger('test', 'test');
142
+ const result = await cleanupOrphanAcpSessions(ctx, log);
143
+ expect(result.cleaned).toBe(1); // only worker-1
144
+ expect(result.killed).toBe(0);
145
+ const remaining = readSessions(tempDir);
146
+ expect(remaining['worker-1']).toBeUndefined();
147
+ expect(remaining['session-my-chat']).toBeDefined();
148
+ });
149
+ it('returns zero counts when no pipeline sessions exist', async () => {
150
+ writeState(tempDir, {});
151
+ const ctx = makeCtx(tempDir);
152
+ const log = new Logger('test', 'test');
153
+ const result = await cleanupOrphanAcpSessions(ctx, log);
154
+ expect(result.cleaned).toBe(0);
155
+ expect(result.killed).toBe(0);
156
+ });
157
+ });
158
+ //# sourceMappingURL=sessionCleanup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionCleanup.test.js","sourceRoot":"","sources":["../../src/core/sessionCleanup.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionLiveness.d.ts","sourceRoot":"","sources":["../../src/core/sessionLiveness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG,OAAO,CAM1F;AAED,wBAAgB,0BAA0B,CACxC,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,WAAW,CAAC,GAAG,IAAI,GAC3D,MAAM,GAAG,IAAI,CAGf;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,YAAY,CAAC,GAAG,IAAI,GACrE,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,MAAM,CAAC,EACjD,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,cAAc,GAAG,KAAK,CAAC,GAAG,IAAI,GAC5E,OAAO,CAQT;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,MAAM,GAAG,cAAc,CAAC,EAClE,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,cAAc,GAAG,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC,GAAG,IAAI,GAC5G,OAAO,CAGT"}
1
+ {"version":3,"file":"sessionLiveness.d.ts","sourceRoot":"","sources":["../../src/core/sessionLiveness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG,OAAO,CAM1F;AAED,wBAAgB,0BAA0B,CACxC,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,WAAW,CAAC,GAAG,IAAI,GAC3D,MAAM,GAAG,IAAI,CAGf;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,YAAY,CAAC,GAAG,IAAI,GACrE,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,MAAM,CAAC,EACjD,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,cAAc,GAAG,KAAK,CAAC,GAAG,IAAI,GAC5E,OAAO,CAQT;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,MAAM,GAAG,cAAc,CAAC,EAClE,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,cAAc,GAAG,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC,GAAG,IAAI,GAC5G,OAAO,CAGT"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionLiveness.js","sourceRoot":"","sources":["../../src/core/sessionLiveness.ts"],"names":[],"mappings":"AAkBA,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,UAAU,eAAe,CAAC,IAAiD;IAC/E,OAAO,CACL,IAAI,CAAC,SAAS,KAAK,SAAS;QAC5B,IAAI,CAAC,IAAI,KAAK,KAAK;QACnB,IAAI,CAAC,IAAI,KAAK,SAAS,CACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA4D;IAE5D,IAAI,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAA2C,EAC3C,OAAsE;IAEtE,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACxF,CAAC;IACD,OAAO,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,OAAO,CAAC,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAiD,EACjD,OAA6E;IAE7E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEjE,wCAAwC;IACxC,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAEpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAkE,EAClE,OAA6G;IAE7G,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"sessionLiveness.js","sourceRoot":"","sources":["../../src/core/sessionLiveness.ts"],"names":[],"mappings":"AAkBA,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,UAAU,eAAe,CAAC,IAAiD;IAC/E,OAAO,CACL,IAAI,CAAC,SAAS,KAAK,SAAS;QAC5B,IAAI,CAAC,IAAI,KAAK,KAAK;QACnB,IAAI,CAAC,IAAI,KAAK,SAAS,CACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA4D;IAE5D,IAAI,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAA2C,EAC3C,OAAsE;IAEtE,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACxF,CAAC;IACD,OAAO,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,OAAO,CAAC,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAiD,EACjD,OAA6E;IAE7E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEjE,wCAAwC;IACxC,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAEpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAkE,EAClE,OAA6G;IAE7G,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACnF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"taskPrompts.d.ts","sourceRoot":"","sources":["../../src/core/taskPrompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,aAAa,CAAC;AAE5D,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,kBAAmB,SAAQ,mBAAmB;IACtD,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAsBhE;AAwGD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CA4ChE"}
1
+ {"version":3,"file":"taskPrompts.d.ts","sourceRoot":"","sources":["../../src/core/taskPrompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,aAAa,CAAC;AAE5D,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,kBAAmB,SAAQ,mBAAmB;IACtD,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAsBhE;AAgDD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CA4ChE"}
@@ -21,99 +21,44 @@ function buildTaskSection(ctx) {
21
21
 
22
22
  Task ID: ${ctx.taskSeq}
23
23
  Task: ${ctx.taskTitle}
24
- Branch: ${ctx.branchName}
24
+ Working Directory: ${ctx.worktreePath}
25
25
  Target Branch: ${ctx.targetBranch}
26
26
  Card Full ID: ${ctx.cardId}
27
27
  GitLab Project ID: ${ctx.gitlabProjectId}
28
28
  MR Mode: ${ctx.mergeMode}
29
- Worktree: ${ctx.worktreePath}
30
29
 
31
30
  Description:
32
31
  ${ctx.taskDescription || '(no description)'}`;
33
32
  }
34
33
  function buildPhaseInstructions(ctx) {
35
- if (ctx.phase === 'integration') {
36
- return `# Integration Phase Instructions
37
-
38
- You are in the integration phase for this task.
39
-
40
- Your responsibility is to merge branch ${ctx.branchName} into ${ctx.targetBranch}.
41
-
42
- ## CRITICAL: Worktree Checkout Limitation
34
+ return `# Development Instructions
43
35
 
44
- You are working inside a git worktree at: ${ctx.worktreePath}
45
- The target branch "${ctx.targetBranch}" is checked out in the main repository.
46
- Git does NOT allow the same branch to be checked out in two worktrees simultaneously.
36
+ You are working on this task in the current directory: ${ctx.worktreePath}
47
37
 
48
- DO NOT run:
49
- git checkout ${ctx.targetBranch} ← will fail with "already used by worktree"
50
- git switch ${ctx.targetBranch} ← same error
51
- git branch -f ${ctx.targetBranch} ← same error
52
-
53
- Instead, use this merge strategy:
54
- 1. Stay on branch ${ctx.branchName}
55
- 2. Rebase onto origin/${ctx.targetBranch}: git fetch origin && git rebase origin/${ctx.targetBranch}
56
- 3. Resolve any conflicts during rebase
57
- 4. Push the rebased branch: git push origin ${ctx.branchName} --force-with-lease
58
- 5. Push to target: git push origin ${ctx.branchName}:${ctx.targetBranch}
38
+ This is a single-worker pipeline. You work directly in the project directory on the current branch.
59
39
 
60
40
  ## Steps
61
41
 
62
- 1. Confirm the current branch (should be ${ctx.branchName})
63
- 2. Check git status look for in-progress rebase/merge
64
- 3. Fetch latest: git fetch origin
65
- 4. Rebase onto origin/${ctx.targetBranch}
66
- 5. Resolve any conflicts based on the task intent and codebase
67
- 6. Complete rebase: git add . && git rebase --continue
68
- 7. Push: git push origin ${ctx.branchName}:${ctx.targetBranch}
69
- 8. Validate the final state
42
+ 1. Confirm the current branch and check git status
43
+ 2. Inspect the current code and determine what remains to finish the task
44
+ 3. Complete the implementation
45
+ 4. Run appropriate validation or tests when needed
46
+ 5. Commit and push to the current branch when done
70
47
 
71
48
  ## Rules
72
49
 
73
- 1. Work only in this worktree: ${ctx.worktreePath}
74
- 2. Never checkout or switch to ${ctx.targetBranch} — use rebase + push instead
75
- 3. If conflicts exist, resolve them carefully based on the task intent
76
- 4. Before finishing, update docs/CHANGELOG.md with integration summary
77
- 5. If you made architecture decisions, append to docs/DECISIONS.md
78
- 6. Do not restart development from scratch
79
- 7. If blocked by permissions or external policy, report the exact blocker
80
- 8. Say "done" only after the push to ${ctx.targetBranch} succeeds
50
+ 1. Work only in the current directory: ${ctx.worktreePath}
51
+ 2. Complete the implementation for this task
52
+ 3. Commit frequently with conventional commit messages (feat:, fix:, refactor:, etc.)
53
+ 4. Push to the current branch: git push
54
+ 5. Before finishing, update docs/CHANGELOG.md with a concise summary
55
+ 6. If you made architecture or technical decisions, append them to docs/DECISIONS.md
56
+ 7. If you are blocked by permissions, confirmations, or missing environment requirements, report the exact blocker
57
+ 8. Say "done" only after all changes are committed and pushed
81
58
 
82
59
  ## Completion
83
60
 
84
- The task is complete when: git push origin ${ctx.branchName}:${ctx.targetBranch} succeeds.`;
85
- }
86
- return `# Development Phase Instructions
87
-
88
- You are in the development phase for this task.
89
-
90
- Your responsibility in this phase is to complete the implementation work in the current task branch.
91
-
92
- First inspect the repository state yourself in this worktree:
93
- 1. Confirm the current branch
94
- 2. Check git status
95
- 3. Check whether a rebase or merge is already in progress
96
- 4. Inspect the current code and determine what remains to finish the task
97
-
98
- Rules:
99
- 1. Work only in the current worktree: ${ctx.worktreePath}
100
- 2. Complete the implementation for this task
101
- 3. Run appropriate validation or tests when needed
102
- 4. Commit the finished work to the current task branch ${ctx.branchName}
103
- 5. Push the branch: git push origin ${ctx.branchName}
104
- 6. Before finishing, update docs/CHANGELOG.md with a concise summary of the implementation completed in this phase
105
- 7. If you made architecture or technical decisions, append them to docs/DECISIONS.md
106
- 8. FORBIDDEN: Do NOT push to or merge into ${ctx.targetBranch}. Specifically:
107
- - Do NOT run: git push origin ${ctx.branchName}:${ctx.targetBranch}
108
- - Do NOT run: git merge ${ctx.targetBranch}
109
- - Do NOT run: git checkout ${ctx.targetBranch}
110
- Integration is handled by a separate QA worker in the next phase.
111
- 9. If you are blocked by permissions, confirmations, or missing environment requirements, report the exact blocker
112
- 10. Say "done" only after the implementation work is committed and pushed on ${ctx.branchName}
113
-
114
- Completion rule:
115
- - Push the feature branch: git push origin ${ctx.branchName}
116
- - Do NOT push to ${ctx.targetBranch} — a separate integration worker handles merging.`;
61
+ The task is complete when all changes are committed and pushed to the current branch.`;
117
62
  }
118
63
  /**
119
64
  * Build prompt for non-git task (git: false pipeline).
@@ -1 +1 @@
1
- {"version":3,"file":"taskPrompts.js","sourceRoot":"","sources":["../../src/core/taskPrompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taskPrompts.js","sourceRoot":"","sources":["../../src/core/taskPrompts.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,6 @@ export declare class SPSEventHandler {
59
59
  private executePMAction;
60
60
  private savePendingAction;
61
61
  private safeNotify;
62
- private markWorktreeCleanup;
63
62
  private log;
64
63
  private logError;
65
64
  }